Quassel IRC  Pre-Release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
graphicalui.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2005-2015 by the Quassel Project *
3  * devel@quassel-irc.org *
4  * *
5  * This program is free software; you can redistribute it and/or modify *
6  * it under the terms of the GNU General Public License as published by *
7  * the Free Software Foundation; either version 2 of the License, or *
8  * (at your option) version 3. *
9  * *
10  * This program is distributed in the hope that it will be useful, *
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13  * GNU General Public License for more details. *
14  * *
15  * You should have received a copy of the GNU General Public License *
16  * along with this program; if not, write to the *
17  * Free Software Foundation, Inc., *
18  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
19  ***************************************************************************/
20 
21 #ifndef GRAPHICALUI_H_
22 #define GRAPHICALUI_H_
23 
24 #include "abstractui.h"
25 
26 class ActionCollection;
29 class UiStyle;
30 
31 #ifdef Q_OS_WIN
32 # include <windows.h>
33 #endif
34 
35 class GraphicalUi : public AbstractUi
36 {
37  Q_OBJECT
38 
39 public:
40  GraphicalUi(QObject *parent = 0);
41  virtual void init();
42 
44 
49  static ActionCollection *actionCollection(const QString &category = "General", const QString &translatedCategory = QString());
50  static QHash<QString, ActionCollection *> actionCollections();
51 
53 
55  static void loadShortcuts();
56 
58  static void saveShortcuts();
59 
62  inline static UiStyle *uiStyle();
63  inline static QWidget *mainWidget();
64 
66  static void activateMainWidget();
67 
69  static void hideMainWidget();
70 
72  static void toggleMainWidget();
73 
75  static bool isMainWidgetVisible();
76 
77 protected:
79  void setMainWidget(QWidget *);
80 
82 
88  bool checkMainWidgetVisibility(bool performToggle);
89 
91  virtual void minimizeRestore(bool show);
92 
94 
97  virtual inline bool isHidingMainWidgetAllowed() const;
98 
101  void setUiStyle(UiStyle *);
102 
103  virtual bool eventFilter(QObject *obj, QEvent *event);
104 
105 protected slots:
106  virtual void disconnectedFromCore();
107 
108 private:
109  static inline GraphicalUi *instance();
110 
112  static QWidget *_mainWidget;
113  static QHash<QString, ActionCollection *> _actionCollections;
116  static UiStyle *_uiStyle;
117  static bool _onAllDesktops;
118 
119 #ifdef Q_OS_WIN
120  DWORD _dwTickCount;
121 #endif
122 };
123 
124 
125 // inlines
126 
131 QWidget *GraphicalUi::mainWidget() { return _mainWidget; }
132 bool GraphicalUi::isHidingMainWidgetAllowed() const { return false; }
133 
134 #endif