X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyx_main.h;h=6c53bc6a01dd8ee1c2f853a0cf2b9c1c8b572c53;hb=e5a46922e916a06ad1b958d5895cc3cfb4f13d2c;hp=c79a2c08f7ef295c8118ee091815e2b191f2b79f;hpb=7b2cce9d5d19fd6e05cf0373b51807da19d4e82b;p=lyx.git diff --git a/src/lyx_main.h b/src/lyx_main.h index c79a2c08f7..6c53bc6a01 100644 --- a/src/lyx_main.h +++ b/src/lyx_main.h @@ -14,18 +14,16 @@ #ifndef LYX_MAIN_H #define LYX_MAIN_H -#include "support/filename.h" - #include #include #include -#include namespace lyx { class Buffer; class BufferList; +class Converters; class ErrorItem; class IconvProcessor; class InsetBase; @@ -33,6 +31,9 @@ class LyXFunc; class LyXServer; class LyXServerSocket; class LyXView; +class Messages; +class Mover; +class Movers; class Session; class kb_keymap; @@ -47,17 +48,7 @@ public: LyX(); ~LyX(); - /** - * Execute LyX. The startup sequence is as follows: - * -# LyX::exec() - * -# LyX::priv_exec() - * -# lyx::createApplication() - * Step 3 is omitted if no gui is wanted. We need lyx::createApplication() - * only to create the QApplication object in the qt frontend. All - * attempts with static and dynamically allocated QApplication - * objects lead either to harmless error messages on exit - * ("Mutex destroy failure") or crashes (OS X). - */ + /// Execute LyX. int exec(int & argc, char * argv[]); static LyX & ref(); @@ -89,6 +80,17 @@ public: /// kb_keymap & topLevelKeymap(); kb_keymap const & topLevelKeymap() const; + + /// + Converters & converters(); + Converters & systemConverters(); + + /// + Messages & getMessages(std::string const & language); + /// + Messages & getGuiMessages(); + /// + void setGuiLanguage(std::string const & language); /// IconvProcessor & iconvProcessor(); @@ -110,16 +112,20 @@ private: /// Early exit during the initialisation process. void earlyExit(int status); - /// Initialise LyX and load files if asked. + /// Initialise LyX and fills-in the vector of files to be loaded. /** - \param files is filled in with the command-line file names. \return exit code failure if any. */ - int loadFiles(int & argc, char * argv[], - std::vector & files); + int init(int & argc, char * argv[]); + + /// Load files passed at command-line. + /** + This method is used only in non-GUI mode. + */ + void loadFiles(); - /// Create a View and restore GUI Session. - void restoreGuiSession(std::vector const & files); + /// Create a View, load files and restore GUI Session. + void restoreGuiSession(); /// Initialize RC font for the GUI. void initGuiFont(); @@ -140,11 +146,14 @@ private: /// read lyxrc/preferences bool readRcFile(std::string const & name); /// read the given ui (menu/toolbar) file - bool readUIFile(std::string const & name); + bool readUIFile(std::string const & name, bool include = false); /// read the given languages file bool readLanguagesFile(std::string const & name); - /// read the given encodings file - bool readEncodingsFile(std::string const & name); + /// read the encodings. + /// \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); /// parsing of non-gui LyX options. void easyParse(int & argc, char * argv[]); /// shows up a parsing error on screen @@ -158,6 +167,12 @@ private: /// 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(); }; } // namespace lyx