X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyx_main.h;h=908c60119f501ea23f827382f5d64c42f464479b;hb=ff6706002f89b9c10b98ebd08c00962aacf0a4c7;hp=2417b149a40f378eb3f183f64407a05ce9755516;hpb=83acbbd5237373926c629855379e1df9a04209b2;p=lyx.git diff --git a/src/lyx_main.h b/src/lyx_main.h index 2417b149a4..908c60119f 100644 --- a/src/lyx_main.h +++ b/src/lyx_main.h @@ -1,85 +1,91 @@ // -*- C++ -*- -/* This file is part of -* ====================================================== -* -* LyX, The Document Processor -* -* Copyright 1995 Matthias Ettrich -* Copyright 1995-2001 The LyX Team. -* -* ====================================================== */ - -/* This is the declaration of the LyX class, there should only - * exist _one_ instance of this in the application. */ +/** + * \file lyx_main.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Lars Gullik Bjønnes + * \author Jean-Marc Lasgouttes + * \author John Levon + * + * Full author contact details are available in file CREDITS. + */ #ifndef LYX_MAIN_H #define LYX_MAIN_H -#ifdef __GNUG__ -#pragma interface -#endif - -#include - -#include "LString.h" +#include +#include #include -class LyXGUI; -class LyXRC; -class LastFiles; +#include +#include + class Buffer; +class ErrorItem; +class InsetBase; +class LastFiles; +class LyXView; class kb_keymap; -/// -extern string system_lyxdir; -/// -extern string user_lyxdir; -/// -extern string system_tempdir; -/// -extern LastFiles * lastfiles; /* we should hopefully be able to move this - * inside the LyX class */ - -/** - This is the main LyX object it encapsulates most of the other objects. -*/ +/// initial startup class LyX : boost::noncopyable { public: - /// the only allowed constructor - LyX(int * argc, char * argv[]); // constructor - /// Always is useful a destructor - ~LyX(); + static void exec(int & argc, char * argv[]); + static LyX & ref(); + static LyX const & cref(); + + /// in the case of failure + void emergencyCleanup() const; + + LastFiles & lastfiles(); + LastFiles const & lastfiles() const; + + void addLyXView(boost::shared_ptr const & lyxview); + + /** 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(InsetBase const *) const; - /// - LyXGUI * lyxGUI; // should be only one of this private: - /// does this user start lyx for the first time? - bool first_start; - /// - string batch_command; - /// - void runtime(); - /// + static boost::scoped_ptr singleton_; + + LyX(); + void priv_exec(int & argc, char * argv[]); + + /// initial LyX set up void init(bool); - /// + /// set up the default key bindings void defaultKeyBindings(kb_keymap * kbmap); - /// + /// set up the default dead key bindings if requested void deadKeyBindings(kb_keymap * kbmap); - /// + /// check, set up and configure the user dir if necessary void queryUserLyXDir(bool explicit_userdir); - /** Search for and read the LyXRC file name, return - true if successfull. - */ - bool ReadRcFile(string const & name); - /// Read the ui file `name' - void ReadUIFile(string const & name); - /// Read the languages file `name' - void ReadLanguagesFile(string const & name); - /// Read the encodings file `name' - void ReadEncodingsFile(string const & name); - /// - bool easyParse(int * argc, char * argv[]); + /// read lyxrc/preferences + void readRcFile(std::string const & name); + /// read the given ui (menu/toolbar) file + void readUIFile(std::string const & name); + /// read the given languages file + void readLanguagesFile(std::string const & name); + /// read the given encodings file + void readEncodingsFile(std::string const & name); + /// parsing of non-gui LyX options. Returns true if gui + bool easyParse(int & argc, char * argv[]); + /// shows up a parsing error on screen + void printError(ErrorItem const &); + + /// has this user started lyx for the first time? + bool first_start; + /// the parsed command line batch command if any + std::string batch_command; + + /// last files loaded + boost::scoped_ptr lastfiles_; + /// + typedef std::list > ViewList; + ViewList views_; }; -#endif +#endif // LYX_MAIN_H