новые иконки в OpenBoard
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
OpenBoard/src/board/UBBoardPaletteManager.h

196 lines
5.9 KiB

/*
* This program 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, either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef UBBOARDPALETTEMANAGER_H_
#define UBBOARDPALETTEMANAGER_H_
#include <QtGui>
#include <QtWebKit>
#include "web/UBRoutedMouseEventWebView.h"
#include "gui/UBLeftPalette.h"
#include "gui/UBRightPalette.h"
#include "gui/UBPageNavigationWidget.h"
#include "gui/UBLibWidget.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 UBDockTeacherGuideWidget;
// Uncomment this to use old-styles lib paletter
// #define USE_WEB_WIDGET
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;}
void showVirtualKeyboard(bool show = true);
void initPalettesPosAtStartup();
void connectToDocumentController();
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();
signals:
void connectToDocController();
void signal_changeMode(eUBDockPaletteWidgetMode newMode);
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;
/** 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;
#ifdef USE_WEB_WIDGET
/** The library widget */
UBLibWidget* mpLibWidget;
#endif
/** The cache properties widget */
UBCachePropertiesWidget* mpCachePropWidget;
UBFeaturesWidget *mpFeaturesWidget;
/** The download widget */
UBDockDownloadWidget* mpDownloadWidget;
// HACK: here we duplicate the lib widget for the desktop mode
// we MUST refactor the architecture in order to use only one
// lib widget!
UBLibWidget* mpDesktopLibWidget;
UBDockTeacherGuideWidget* mpTeacherGuideWidget;
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_ */