X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FLyX.h;h=3d98e42b8edb5100c719d27152f7e0c6e6018969;hb=7f461f4392a19cf488dec005d2f12cfea83655d9;hp=0a0602e3864f98de5562a1656a32a7c94fded661;hpb=1becd845c1d78b0ff93736d7596be88414c5cbb4;p=lyx.git diff --git a/src/LyX.h b/src/LyX.h index 0a0602e386..3d98e42b8e 100644 --- a/src/LyX.h +++ b/src/LyX.h @@ -14,38 +14,32 @@ #ifndef LYX_H #define LYX_H -#include -#include - -#include +#include "support/strfwd.h" namespace lyx { -namespace support { -class FileName; -} - -class Buffer; class BufferList; +class CmdDef; class Converters; class ErrorItem; -class Inset; +class KeyMap; class LyXFunc; -class Server; -class ServerSocket; -class LyXView; class Messages; class Mover; class Movers; +class Server; +class ServerSocket; class Session; -class KeyMap; extern bool use_gui; -namespace frontend { class Application; } +namespace frontend { +class Application; +class LyXView; +} /// initial startup -class LyX : boost::noncopyable { +class LyX { public: LyX(); @@ -54,6 +48,11 @@ public: /// Execute LyX. int exec(int & argc, char * argv[]); + /// Try to exit LyX properly. + /// \p exit_code is 0 by default, if a non zero value is passed, + /// emergencyCleanup() will be called before exiting. + void exit(int exit_code = 0) const; + static LyX & ref(); static LyX const & cref(); @@ -81,9 +80,8 @@ public: frontend::Application const & application() const; /// - KeyMap & topLevelKeymap(); - KeyMap const & topLevelKeymap() const; - + CmdDef & topLevelCmdDef(); + /// Converters & converters(); Converters & systemConverters(); @@ -96,20 +94,19 @@ public: void setGuiLanguage(std::string const & language); /// - LyXView * newLyXView(); - - /** redraw \c inset in all the BufferViews in which it is currently - * visible. If successful return a pointer to the owning Buffer. - */ - Buffer const * const updateInset(Inset const *) const; + frontend::LyXView * newLyXView(); /// Execute batch commands if available. void execBatchCommands(); /// - void addFileToLoad(support::FileName const &); + void addFileToLoad(std::string const &); private: + /// noncopyable + LyX(LyX const &); + void operator=(LyX const &); + /// Do some cleanup in preparation of an exit. void prepareExit(); @@ -128,18 +125,8 @@ private: */ void loadFiles(); - /// Create a View, load files and restore GUI Session. - void restoreGuiSession(); - - /// Initialize RC font for the GUI. - void initGuiFont(); - /// initial LyX set up bool init(); - /// set up the default key bindings - void defaultKeyBindings(KeyMap * kbmap); - /// set up the default dead key bindings if requested - void deadKeyBindings(KeyMap * kbmap); /** Check for the existence of the user's support directory and, * if not present, create it. Exits the program if the directory * cannot be created. @@ -157,26 +144,26 @@ private: /// \param enc_name encodings definition file /// \param symbols_name unicode->LaTeX mapping file bool readEncodingsFile(std::string const & enc_name, - std::string const & symbols_name); + std::string const & symbols_name); /// parsing of non-gui LyX options. void easyParse(int & argc, char * argv[]); /// shows up a parsing error on screen void printError(ErrorItem const &); + /// Use the Pimpl idiom to hide the internals. + // Mostly used for singletons. + struct Impl; + Impl * pimpl_; + /// has this user started lyx for the first time? bool first_start; - /// the parsed command line batch command if any - std::string batch_command; - - /// Use the Pimpl idiom to hide the internals. - struct Singletons; - boost::scoped_ptr pimpl_; friend Movers & theMovers(); friend Mover const & getMover(std::string const & fmt); friend void setMover(std::string const & fmt, std::string const & command); friend Movers & theSystemMovers(); friend frontend::Application * theApp(); + friend KeyMap & theTopLevelKeymap(); }; } // namespace lyx