/* * Qt UI * * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. * * Contact: * Jihye Won * SungMin Ha * GiWoong Kim * SeokYeon Hwang * Sangho Park * Stanislav Vorobiov * * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. * * Contributors: * - S-Core Co., Ltd * */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include "menu/contextmenu.h" #include "mainview.h" #include "displaybase.h" #include "rotaryview.h" #include "uiinformation.h" #include "controller/dockingcontroller.h" #include "controller/floatingcontroller.h" #include "input/keyboardshortcut.h" #include "movingwidget.h" class MainWindow : public QWidget { Q_OBJECT public: bool isMovingMode; explicit MainWindow(UiInformation *uiInfo, bool useGL, QWidget *parent = 0); ~MainWindow(); UiInformation *getUiInfo(void); UIState *getUiState(void); const QTransform &getDisplayTransform(); MainView *getMainView(); ContextMenu *getPopupMenu(); DisplayBase *getDisplay(); KeyboardShortcut *getKeyboardShortcut(); QLabel *getScreenWidget(); QMessageBox *showMsgBox(QMessageBox::Icon iconType, const QString &text, QMessageBox::StandardButtons buttons = QMessageBox::NoButton, QMessageBox::StandardButton defaultButton = QMessageBox::NoButton); void updateDisplayTransform(); void switchForm(int angle); void scaleForm(int scale); void capture(void); void setCaptureRequestHandler(void *data, void (*handler)(void *)); void unsetCaptureRequestHandler(void *data); void processCaptured(bool captured, void *pixels, int width, int height); void setTopMost(bool on); void calibratedMove(int x, int y); DockingController *getDockingCon(); FloatingController *getFloatingCon(); void openController(int index, int dockPos); void closeController(); void turnOnMovingMode(); void turnOffMovingMode(); void updateTexture(void *dpy_item); public slots: void slotContextMenu(const QPoint &pos); protected: void showEvent(QShowEvent *event); void resizeEvent(QResizeEvent *event); void setMask(const QRegion ®ion); void closeEvent(QCloseEvent *); void resize(const QSize &); QLabel *screenWidget; private: void createDisplay(bool useGL); RotaryView *createRotary(); UiInformation *uiInfo; /* windowing */ QTransform dpyTransform; QGraphicsScene *mainScene; MainView *mainView; DisplayBase *display; RotaryView *rotary; ContextMenu *popupMenu; KeyboardShortcut *keyboardShortcut; MovingWidget *movingWidget; void (*captureRequestHandler)(void *data); void *captureRequestData; }; #endif // MAINWINDOW_H