]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/Application.h
Use <cstdint> instead of <boost/cstdint.hpp>
[lyx.git] / src / frontends / Application.h
index 5e1a12cdca33b1a0b835effa94ec519b8bc21c5c..cf82776039e98217d779f2a013475fd395c27f8e 100644 (file)
@@ -18,7 +18,7 @@
 
 #include "support/strfwd.h"
 
-#include <boost/function.hpp>
+#include <functional>
 
 #include <vector>
 
@@ -59,7 +59,7 @@ initialisation should be done before the instanciation of this class.
    |
    GuiView-1 (one or more in case of split-view mode).
    |  |
-   |  <tab-widget-1-1> 
+   |  <tab-widget-1-1>
    |  |  |
    |  |  WorkArea-1-1-1 (M1-1 WorkAreas, M1-1 <= N)
    |  |  | |
@@ -73,7 +73,7 @@ initialisation should be done before the instanciation of this class.
    |  |  |   |
    |  |  |   Cursor
    |  |
-   |  <tab-widget-1-2> 
+   |  <tab-widget-1-2>
    |
    GuiView-2 (one or more in case of split-view mode).
    |  |
@@ -177,7 +177,7 @@ public:
        /// Every user command is processed here, either invocated from
        /// keyboard or from the GUI. All GUI objects, including buttons and
        /// menus should use this class and never call kernel functions directly.
-       virtual void dispatch(FuncRequest const &) = 0;
+       virtual DispatchResult const & dispatch(FuncRequest const &) = 0;
 
        /// LyX dispatcher: executes lyx actions and returns result.
        virtual void dispatch(FuncRequest const &, DispatchResult & dr) = 0;
@@ -185,14 +185,9 @@ public:
        ///
        virtual FuncStatus getStatus(FuncRequest const & cmd) const = 0;
 
-       ///
-       virtual void resetGui() = 0;
-
        /// Load files and restore GUI Session.
        virtual void restoreGuiSession() = 0;
 
-       ///
-       virtual void hideDialogs(std::string const & name, Inset * inset) const = 0;
        ///
        virtual Buffer const * updateInset(Inset const * inset) const = 0;
 
@@ -214,17 +209,19 @@ public:
        * It returns false on failure and sets r, g, b to 0.
        */
        virtual bool getRgbColor(ColorCode col, RGBColor & rgbcol) = 0;
+       /// Like getRgbColor(), but static and slower
+       static bool getRgbColorUncached(ColorCode col, RGBColor & rgbcol);
 
        /** Eg, passing Color_black returns "000000",
        *      passing Color_white returns "ffffff".
        */
        virtual std::string const hexName(ColorCode col) = 0;
-       
+
        /**
        * add a callback for socket read notification
        * @param fd socket descriptor (file/socket/etc)
        */
-       typedef boost::function<void()> SocketCallback;
+       typedef std::function<void()> SocketCallback;
        virtual void registerSocketCallback(int fd, SocketCallback func) = 0;
 
        /**
@@ -236,12 +233,28 @@ public:
        virtual bool searchMenu(FuncRequest const & func,
                docstring_list & names) const = 0;
 
+       virtual bool hasBufferView() const = 0;
+
        /// \return the icon file name for the given action.
-       virtual docstring iconName(FuncRequest const & f, bool unknown) = 0;
+       static docstring iconName(FuncRequest const & f, bool unknown);
+       /// \return the math icon name for the given command.
+       static docstring mathIcon(docstring const & c);
 
        /// Handle a accented char key sequence
        /// FIXME: this is only needed for LFUN_ACCENT_* in Text::dispatch()
        virtual void handleKeyFunc(FuncCode action) = 0;
+
+       /// Start a long operation with some cancel possibility (button or ESC)
+       virtual void startLongOperation() = 0;
+       /// This needs to be periodically called to avoid freezing the GUI
+       virtual bool longOperationCancelled() = 0;
+       /// Stop the long operation mode (i.e., release the GUI)
+       virtual void stopLongOperation() = 0;
+       /// A started long operation is still in progress ?
+       virtual bool longOperationStarted() = 0;
+
+       // Add a buffer to the current view, do not switch to it.
+       virtual bool unhide(Buffer * buf) = 0;
 };
 
 /// Return the list of loadable formats.
@@ -252,6 +265,8 @@ std::vector<std::string> loadableImageFormats();
 frontend::Application * theApp();
 frontend::Application * createApplication(int & argc, char * argv[]);
 void hideDialogs(std::string const & name, Inset * inset);
+/// Set locale correctly using LyXRC::gui_language
+void setLocale();
 
 } // namespace lyx