#include <boost/function.hpp>
+
namespace lyx {
class BufferView;
+class Buffer;
+class FuncRequest;
+class FuncStatus;
+class Inset;
+class MenuBackend;
struct RGBColor;
namespace frontend {
{
public:
///
- Application() : current_view_(0) {}
+ Application() {}
///
virtual ~Application() {}
///
- virtual Gui & gui() = 0;
+ virtual FuncStatus getStatus(FuncRequest const & cmd) = 0;
+ /// dispatch command.
+ /// \return true if the \c FuncRequest has been dispatched.
+ virtual bool dispatch(FuncRequest const & cmd) = 0;
+
+ ///
+ virtual void resetGui() = 0;
+
+ ///
+ virtual void hideDialogs(std::string const & name, Inset * inset) const = 0;
+ ///
+ virtual Buffer const * updateInset(Inset const * inset) const = 0;
/// Start the main event loop.
/// The batch command is programmed to be execute once
*/
virtual void exit(int status) = 0;
- /**
- * Synchronise all pending events.
- */
- virtual void syncEvents() = 0;
- ///
- virtual Clipboard & clipboard() = 0;
- ///
- virtual Selection & selection() = 0;
- ///
- virtual FontLoader & fontLoader() = 0;
-
- /// return a suitable serif font name.
- virtual std::string const romanFontName() = 0;
-
- /// return a suitable sans serif font name.
- virtual std::string const sansFontName() = 0;
-
- /// return a suitable monospaced font name.
- virtual std::string const typewriterFontName() = 0;
-
/**
* Given col, fills r, g, b in the range 0-255.
* The function returns true if successful.
*/
virtual void unregisterSocketCallback(int fd) = 0;
- /// Create the main window with given geometry settings.
- /// \param geometry_arg: only for Windows platform.
- virtual LyXView & createView(std::string const & geometry_arg) = 0;
-
- ///
- LyXView const * currentView() const { return current_view_; }
- ///
- LyXView * currentView() { return current_view_; }
///
- void setCurrentView(LyXView & view) { current_view_ = &view; }
-
-private:
- /// This LyXView is the one receiving Clipboard and Selection
- /// events
- LyXView * current_view_;
+ virtual MenuBackend const & menuBackend() const = 0;
+ virtual MenuBackend & menuBackend() = 0;
};
} // namespace frontend
frontend::Application * theApp();
frontend::Application * createApplication(int & argc, char * argv[]);
-
} // namespace lyx