/// 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;
///
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;
* 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".
docstring_list & names) 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;
+
};
/// Return the list of loadable formats.
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