* Full author contact details are available in file CREDITS.
*/
-#ifndef LYX_APPLICATION_H
-#define LYX_APPLICATION_H
+#ifndef APPLICATION_H
+#define APPLICATION_H
#include "ColorCode.h"
+#include "support/strfwd.h"
+#include "support/docstring.h"
+
#include <boost/function.hpp>
-#include <string>
+#include <vector>
+
namespace lyx {
class BufferView;
+class Buffer;
+class FuncRequest;
+class FuncStatus;
+class Inset;
+class Lexer;
struct RGBColor;
namespace frontend {
Application (this is the frontend really, should probably be renamed).
|
- LyXView-1 (M1 WorkAreas, M1 <= N)
+ LyXView-1 (one or more in case of split-view mode).
+ | |
+ | <tab-widget-1-1>
+ | | |
+ | | WorkArea-1-1-1 (M1-1 WorkAreas, M1-1 <= N)
+ | | | |
+ | | | BufferView <-----------> Buffer-c
+ | | | |
+ | | | Cursor
+ | | |
+ | | WorkArea-1-1-2
+ | | | |
+ | | | BufferView <-----------> Buffer-a
+ | | | |
+ | | | Cursor
| |
- | <tab-widget>
- | | (many)
- | WorkArea-1
- | |
- | BufferView <-----------> Buffer-c
- | |
- | Cursor
+ | <tab-widget-1-2>
|
- LyXView-2 (M2 WorkAreas, M2 <= N, M2 independent of M1)
- |
+ LyXView-2 (one or more in case of split-view mode).
+ | |
+ | <tab-widget-2-1>
+ | | |
+ | | WorkArea-2-1-1 (M2-1 WorkAreas, M2-1 <= N, M2-1 independent of M1-1)
...
{
public:
///
- Application(int & argc, char ** argv);
+ 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;
+
+ /// 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;
/// 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 updateColor(ColorCode col) = 0;
+ /**
+ * read and create the menu structure
+ */
+ virtual void readMenus(Lexer & lex) = 0;
+
+ /**
+ * initialize the global menubar on Mac
+ */
+ virtual void initGlobalMenu() = 0;
+
/**
* add a callback for socket read notification
* @param fd socket descriptor (file/socket/etc)
*/
virtual void unregisterSocketCallback(int fd) = 0;
- /// Create the main window with given geometry settings.
- LyXView & createView(unsigned int width, unsigned int height,
- int posx, int posy, int maximized,
- unsigned int iconSizeXY, const std::string & geometryArg);
-
- ///
- LyXView const * currentView() const;
-
- ///
- LyXView * currentView();
-
- ///
- void setCurrentView(LyXView & current_view);
-
-private:
- /// This LyXView is the one receiving Clipboard and Selection
- /// Events
- LyXView * current_view_;
-
-}; // Application
+ virtual bool searchMenu(FuncRequest const & func,
+ std::vector<docstring> & names) const = 0;
+};
} // namespace frontend
frontend::Application * theApp();
frontend::Application * createApplication(int & argc, char * argv[]);
-
} // namespace lyx
-#endif // LYX_APPLICATION_H
+#endif // APPLICATION_H