/* * Copyright (C) 2015-2016 Département de l'Instruction Publique (DIP-SEM) * * Copyright (C) 2013 Open Education Foundation * * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour * l'Education Numérique en Afrique (GIP ENA) * * This file is part of OpenBoard. * * OpenBoard is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, version 3 of the License, * with a specific linking exception for the OpenSSL project's * "OpenSSL" library (or with modified versions of it that use the * same license as the "OpenSSL" library). * * OpenBoard is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with OpenBoard. If not, see . */ #ifndef UBBOARDPALETTEMANAGER_H_ #define UBBOARDPALETTEMANAGER_H_ #include #include #include "gui/UBLeftPalette.h" #include "gui/UBRightPalette.h" #include "gui/UBPageNavigationWidget.h" #include "gui/UBCachePropertiesWidget.h" #include "gui/UBDockDownloadWidget.h" #include "core/UBApplicationController.h" #include "gui/UBFeaturesWidget.h" class UBWebToolsPalette; class UBStylusPalette; class UBClockPalette; class UBPageNumberPalette; class UBZoomPalette; class UBActionPalette; class UBBoardController; class UBServerXMLHttpRequest; class UBKeyboardPalette; class UBMainWindow; class UBApplicationController; class UBStartupHintsPalette; class UBBoardPaletteManager : public QObject { Q_OBJECT public: UBBoardPaletteManager(QWidget* container, UBBoardController* controller); virtual ~UBBoardPaletteManager(); void setupLayout(); UBLeftPalette* leftPalette(){return mLeftPalette;} UBRightPalette* rightPalette(){return mRightPalette;} UBStylusPalette* stylusPalette(){return mStylusPalette;} UBActionPalette *addItemPalette() {return mAddItemPalette;} void showVirtualKeyboard(bool show = true); void initPalettesPosAtStartup(); void refreshPalettes(); UBKeyboardPalette *mKeyboardPalette; void setCurrentWebToolsPalette(UBWebToolsPalette *palette) {mWebToolsCurrentPalette = palette;} UBWebToolsPalette* mWebToolsCurrentPalette; void processPalettersWidget(UBDockPalette *paletter, eUBDockPaletteWidgetMode mode); void changeMode(eUBDockPaletteWidgetMode newMode, bool isInit = false); void startDownloads(); void stopDownloads(); public slots: void activeSceneChanged(); void containerResized(); void addItem(const QUrl& pUrl); void addItem(const QPixmap& pPixmap, const QPointF& p = QPointF(0.0, 0.0), qreal scale = 1.0, const QUrl& sourceUrl = QUrl()); void slot_changeMainMode(UBApplicationController::MainMode); void slot_changeDesktopMode(bool); void toggleErasePalette(bool ckecked); private: void setupPalettes(); void connectPalettes(); void positionFreeDisplayPalette(); void setupDockPaletteWidgets(); QWidget* mContainer; UBBoardController *mBoardControler; UBStylusPalette *mStylusPalette; UBZoomPalette *mZoomPalette; UBStartupHintsPalette* mTipPalette; /** The left dock palette */ UBLeftPalette* mLeftPalette; /** The right dock palette */ UBRightPalette* mRightPalette; UBActionPalette *mBackgroundsPalette; UBActionPalette *mToolsPalette; UBActionPalette* mAddItemPalette; UBActionPalette* mErasePalette; UBActionPalette* mPagePalette; QUrl mItemUrl; QPixmap mPixmap; QPointF mPos; qreal mScaleFactor; QTime mPageButtonPressedTime; bool mPendingPageButtonPressed; QTime mZoomButtonPressedTime; bool mPendingZoomButtonPressed; QTime mPanButtonPressedTime; bool mPendingPanButtonPressed; QTime mEraseButtonPressedTime; bool mPendingEraseButtonPressed; /** The page navigator widget */ UBPageNavigationWidget* mpPageNavigWidget; /** The cache properties widget */ UBCachePropertiesWidget* mpCachePropWidget; UBFeaturesWidget *mpFeaturesWidget; /** The download widget */ UBDockDownloadWidget* mpDownloadWidget; bool mDownloadInProgress; private slots: void changeBackground(); void toggleBackgroundPalette(bool checked); void backgroundPaletteClosed(); void toggleStylusPalette(bool checked); void tooglePodcastPalette(bool checked); void erasePaletteButtonPressed(); void erasePaletteButtonReleased(); void erasePaletteClosed(); void togglePagePalette(bool ckecked); void pagePaletteClosed(); void pagePaletteButtonPressed(); void pagePaletteButtonReleased(); void addItemToCurrentPage(); void addItemToNewPage(); void addItemToLibrary(); void purchaseLinkActivated(const QString&); void linkClicked(const QUrl& url); void zoomButtonPressed(); void zoomButtonReleased(); void panButtonPressed(); void panButtonReleased(); void changeStylusPaletteOrientation(QVariant var); }; #endif /* UBBOARDPALETTEMANAGER_H_ */