X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fgraphicalui.h;h=9832d104f743fabd4069e0787695330cf4352fac;hp=55dfd069fcc1882304684fd874ae6c3736e96557;hb=49813fa53b34ffa35837d30fd022e2fc72f57eb5;hpb=a540a0285feef171e16fd6225b0e045fc5fc52e4 diff --git a/src/uisupport/graphicalui.h b/src/uisupport/graphicalui.h index 55dfd069..9832d104 100644 --- a/src/uisupport/graphicalui.h +++ b/src/uisupport/graphicalui.h @@ -23,7 +23,10 @@ #include "abstractui.h" +class ActionCollection; class ContextMenuActionProvider; +class ToolBarActionProvider; +class UiStyle; class GraphicalUi : public AbstractUi { Q_OBJECT @@ -31,18 +34,56 @@ class GraphicalUi : public AbstractUi { public: GraphicalUi(QObject *parent = 0); + //! Access global ActionCollections. + /** These ActionCollections are associated with the main window, i.e. they contain global + * actions (and thus, shortcuts). Widgets providing application-wide shortcuts should + * create appropriate Action objects using GraphicalUi::actionCollection(cat)->add\(). + * @param category The category (default: "General") + */ + static ActionCollection *actionCollection(const QString &category = "General"); + inline static ContextMenuActionProvider *contextMenuActionProvider(); + inline static ToolBarActionProvider *toolBarActionProvider(); + inline static UiStyle *uiStyle(); + inline static QWidget *mainWidget(); + + //! Force the main widget to the front and focus it (may not work in all window systems) + static void activateMainWidget(); + + //! Hide main widget (storing the current desktop if possible) + static void hideMainWidget(); protected: + //! This is the widget we associate global actions with, typically the main window + void setMainWidget(QWidget *); + void setContextMenuActionProvider(ContextMenuActionProvider *); + void setToolBarActionProvider(ToolBarActionProvider *); + void setUiStyle(UiStyle *); private: + static QWidget *_mainWidget; + static QHash _actionCollections; static ContextMenuActionProvider *_contextMenuActionProvider; - + static ToolBarActionProvider *_toolBarActionProvider; + static UiStyle *_uiStyle; + static bool _onAllDesktops; }; ContextMenuActionProvider *GraphicalUi::contextMenuActionProvider() { return _contextMenuActionProvider; } +ToolBarActionProvider *GraphicalUi::toolBarActionProvider() { + return _toolBarActionProvider; +} + +UiStyle *GraphicalUi::uiStyle() { + return _uiStyle; +} + +QWidget *GraphicalUi::mainWidget() { + return _mainWidget; +} + #endif