X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiApplication.h;h=29302a3cf1fd04a4f72433187e8cfdf22220b4a1;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=e36934d35de54d9179d251721c5e9a26677192eb;hpb=145585dc189203d37dd9eb78e071f8cc2959f82c;p=lyx.git diff --git a/src/frontends/qt4/GuiApplication.h b/src/frontends/qt4/GuiApplication.h index e36934d35d..29302a3cf1 100644 --- a/src/frontends/qt4/GuiApplication.h +++ b/src/frontends/qt4/GuiApplication.h @@ -16,17 +16,19 @@ #include "frontends/Application.h" #include -#include #include -class QSessionManager; class QAbstractItemModel; +class QIcon; +class QObject; +class QSessionManager; class QSortFilterProxyModel; namespace lyx { class BufferView; class ColorCache; +class KeySymbol; namespace frontend { @@ -36,6 +38,7 @@ class GlobalMenuBar; class GuiWorkArea; class Menus; class SocketNotifier; +class Toolbars; /// The Qt main application class /** @@ -50,10 +53,15 @@ public: GuiApplication(int & argc, char ** argv); ~GuiApplication(); - /// Method inherited from \c Application class + /// Clear all session information. + void clearSession(); + + /// \name Methods inherited from Application class //@{ + LyXView * currentWindow(); bool getStatus(FuncRequest const & cmd, FuncStatus & flag) const; - bool dispatch(FuncRequest const &); + void dispatch(FuncRequest const &, DispatchResult & dr); + void dispatchDelayed(FuncRequest const &); void resetGui(); void restoreGuiSession(); Clipboard & clipboard(); @@ -64,17 +72,21 @@ public: bool event(QEvent * e); bool getRgbColor(ColorCode col, RGBColor & rgbcol); std::string const hexName(ColorCode col); - void readMenus(Lexer & lex); void registerSocketCallback(int fd, SocketCallback func); void unregisterSocketCallback(int fd); - bool searchMenu(FuncRequest const & func, std::vector & names) const; + bool searchMenu(FuncRequest const & func, docstring_list & names) const; + docstring iconName(FuncRequest const & f, bool unknown); void hideDialogs(std::string const & name, Inset * inset) const; Buffer const * updateInset(Inset const * inset) const; + void handleKeyFunc(FuncCode action); //@} + Toolbars const & toolbars() const; + Toolbars & toolbars(); Menus const & menus() const; Menus & menus(); - /// Methods inherited from \c QApplication class + + /// \name Methods inherited from QApplication class //@{ bool notify(QObject * receiver, QEvent * event); void commitData(QSessionManager & sm); @@ -85,8 +97,11 @@ public: /// Create the main window with given geometry settings. /// \param geometry_arg: only for Windows platform. + /// \param optional id identifier. void createView(QString const & geometry_arg = QString(), - bool autoShow = true); + bool autoShow = true, int id = 0); + /// FIXME: this method and the one above are quite ugly. + void createView(int id); /// GuiView const * currentView() const { return current_view_; } /// @@ -113,6 +128,10 @@ public: void unregisterView(GuiView * gv); /// GuiView & view(int id) const; + /// + void processKeySym(KeySymbol const & key, KeyModifier state); + /// return the status bar state string + docstring viewStatusMessage(); private Q_SLOTS: /// @@ -123,12 +142,17 @@ private Q_SLOTS: void handleRegularEvents(); /// void onLastWindowClosed(); - + + /// + void processFuncRequestQueue(); + private: /// bool closeAllViews(); /// read the given ui (menu/toolbar) file - bool readUIFile(std::string const & name, bool include = false); + bool readUIFile(QString const & name, bool include = false); + /// + void setGuiLanguage(); /// This LyXView is the one receiving Clipboard and Selection /// events @@ -140,6 +164,18 @@ private: extern GuiApplication * guiApp; +/// \return the icon file name for the given action. +QString iconName(FuncRequest const & f, bool unknown); + + +/// \return the pixmap for the given path, name and extension. +QPixmap getPixmap(QString const & path, QString const & name, QString const & ext); + +/// \return an icon for the given action. +QIcon getIcon(FuncRequest const & f, bool unknown); + +GuiApplication * theGuiApp(); + } // namespace frontend } // namespace lyx