]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiApplication.h
* fix spelling in comments to please John.
[lyx.git] / src / frontends / qt4 / GuiApplication.h
index 97b6c4622a4a865839d81f819b7d83c1c74823cf..29302a3cf1fd04a4f72433187e8cfdf22220b4a1 100644 (file)
 #include "frontends/Application.h"
 
 #include <QApplication>
-#include <QObject>
-#include <QVector>
+#include <QList>
 
-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<docstring> & 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_; }
        ///
@@ -94,9 +109,7 @@ public:
        ///
        void setCurrentView(GuiView * view) { current_view_ = view; }
        ///
-       size_t viewCount() const;
-       ///
-       QVector<int> viewIds();
+       QList<int> viewIds() const;
 
        ///
        ColorCache & colorCache();
@@ -112,9 +125,13 @@ public:
        /// return a suitable monospaced font name.
        QString const typewriterFontName();
        ///
-       bool unregisterView(int id);
+       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:
        ///
@@ -125,10 +142,18 @@ private Q_SLOTS:
        void handleRegularEvents();
        ///
        void onLastWindowClosed();
-       
+
+       ///
+       void processFuncRequestQueue();
+
 private:
        ///
        bool closeAllViews();
+       /// read the given ui (menu/toolbar) file
+       bool readUIFile(QString const & name, bool include = false);
+       ///
+       void setGuiLanguage();
+
        /// This LyXView is the one receiving Clipboard and Selection
        /// events
        GuiView * current_view_;
@@ -139,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