X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyx_main.h;h=6c53bc6a01dd8ee1c2f853a0cf2b9c1c8b572c53;hb=e5a46922e916a06ad1b958d5895cc3cfb4f13d2c;hp=bdbef3b30251f2e70ad0cfb687165542d0abfb28;hpb=ed99f752f9b4ce52cf55cac2a94658fb087c7383;p=lyx.git diff --git a/src/lyx_main.h b/src/lyx_main.h index bdbef3b302..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(); @@ -66,13 +57,6 @@ public: /// in the case of failure void emergencyCleanup() const; - /// Ask the LyX class to exit. - /** - In GUI mode, after this function has been called, application_ leaves - the main event loop and returns from the call to Application::start(). - */ - void quit(); - /// BufferList & bufferList(); BufferList const & bufferList() const; @@ -96,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(); @@ -117,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[]); - /// Create a View and restore GUI Session. - void restoreGuiSession(std::vector const & files); + /// Load files passed at command-line. + /** + This method is used only in non-GUI mode. + */ + void loadFiles(); + + /// Create a View, load files and restore GUI Session. + void restoreGuiSession(); /// Initialize RC font for the GUI. void initGuiFont(); @@ -147,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 @@ -165,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