Overte C++ Documentation
MainWindow.h
1 //
2 // MainWindow.h
3 // interface
4 //
5 // Created by Mohammed Nafees on 04/06/2014.
6 // Copyright (c) 2014 High Fidelity, Inc. All rights reserved.
7 //
8 // Distributed under the Apache License, Version 2.0.
9 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10 //
11 
12 #ifndef __hifi__MainWindow__
13 #define __hifi__MainWindow__
14 
15 #include <QMainWindow>
16 
17 #include <SettingHandle.h>
18 
19 class DockWidget;
20 class MainWindow : public QMainWindow {
21  Q_OBJECT
22 public:
23  explicit MainWindow(QWidget* parent = NULL);
24  ~MainWindow();
25 
26  static QWindow* findMainWindow();
27 
28  // This offset is used for positioning children window relative to the main window.
29  void setDockedWidgetRelativePositionOffset(const QSize& newOffset) { _dockedWidgetRelativePositionOffset.setWidth(newOffset.width()); _dockedWidgetRelativePositionOffset.setHeight(newOffset.height()); }
30  QSize getDockedWidgetRelativePositionOffset() { return _dockedWidgetRelativePositionOffset; }
31 public slots:
32  void restoreGeometry();
33  void saveGeometry();
34 
35 signals:
36  void windowGeometryChanged(QRect geometry);
37  void windowShown(bool shown);
38  void windowMinimizedChanged(bool minimized);
39 
40 protected:
41  virtual void closeEvent(QCloseEvent* event) override;
42  virtual void moveEvent(QMoveEvent* event) override;
43  virtual void resizeEvent(QResizeEvent* event) override;
44  virtual void showEvent(QShowEvent* event) override;
45  virtual void hideEvent(QHideEvent* event) override;
46  virtual void changeEvent(QEvent* event) override;
47  virtual void dragEnterEvent(QDragEnterEvent *e) override;
48  virtual void dropEvent(QDropEvent *e) override;
49 
50 private:
51  Setting::Handle<QRect> _windowGeometry;
52  Setting::Handle<int> _windowState;
53  QSize _dockedWidgetRelativePositionOffset{ 0, 0 };
54 };
55 
56 #endif /* defined(__hifi__MainWindow__) */