* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
* \author Jean-Marc Lasgouttes
* \author John Levon
*
#include "support/strfwd.h"
+#include <vector>
+
namespace lyx {
class BufferList;
class CmdDef;
class Converters;
+class DispatchResult;
class ErrorItem;
class FuncRequest;
class FuncStatus;
class KeyMap;
-class LyXFunc;
+class LaTeXFonts;
class Messages;
class Mover;
class Movers;
class Server;
class ServerSocket;
class Session;
+class SpellChecker;
+
+enum RunMode {
+ NEW_INSTANCE,
+ USE_REMOTE,
+ PREFERRED
+};
+
+enum OverwriteFiles {
+ NO_FILES,
+ MAIN_FILE,
+ ALL_FILES,
+ UNSPECIFIED
+};
extern bool use_gui;
+extern RunMode run_mode;
+extern OverwriteFiles force_overwrite;
namespace frontend {
class Application;
-class LyXView;
-}
-
-namespace graphics {
-class Previews;
}
/// initial startup
class LyX {
+ friend class LyXConsoleApp;
public:
-
LyX();
~LyX();
/// Execute LyX.
int exec(int & argc, char * argv[]);
- ///
- frontend::LyXView * newLyXView();
-
private:
/// noncopyable
LyX(LyX const &);
*/
int init(int & argc, char * argv[]);
+ /// Execute commandline commands if no GUI was requested.
+ int execWithoutGui(int & argc, char * argv[]);
+
/// Execute batch commands if available.
void execCommands();
*/
bool queryUserLyXDir(bool explicit_userdir);
/// read lyxrc/preferences
- bool readRcFile(std::string const & name);
+ /// \param check_format: whether to try to convert the format of
+ /// the file, if there is a mismatch.
+ bool readRcFile(std::string const & name, bool check_format = false);
/// read the given languages file
bool readLanguagesFile(std::string const & name);
/// read the encodings.
bool first_start;
friend FuncStatus getStatus(FuncRequest const & action);
- friend void dispatch(FuncRequest const & action);
+ friend DispatchResult const & dispatch(FuncRequest const & action);
+ friend void dispatch(FuncRequest const & action, DispatchResult & dr);
+ friend std::vector<std::string> & theFilesToLoad();
friend BufferList & theBufferList();
- friend LyXFunc & theLyXFunc();
friend Server & theServer();
friend ServerSocket & theServerSocket();
friend Converters & theConverters();
friend Converters & theSystemConverters();
- friend Messages & getMessages(std::string const & language);
- friend Messages & getGuiMessages();
+ friend Messages const & getMessages(std::string const & language);
+ friend Messages const & getGuiMessages();
friend KeyMap & theTopLevelKeymap();
friend Movers & theMovers();
- friend Mover const & getMover(std::string const & fmt);
+ 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 graphics::Previews & thePreviews();
friend Session & theSession();
+ friend LaTeXFonts & theLaTeXFonts();
friend CmdDef & theTopLevelCmdDef();
- /// Set the language defined by the user.
- friend void setRcGuiLanguage();
- /// in the case of failure
+ friend SpellChecker * theSpellChecker();
+ friend void setSpellChecker();
friend void emergencyCleanup();
- /// Execute batch commands if available.
friend void execBatchCommands();
- /// 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.
- friend void lyx_exit(int exit_code = 0);
+ friend void lyx_exit(int exit_code);
};
+
+/// in the case of failure
+void emergencyCleanup();
+/// 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 lyx_exit(int exit_code);
+/// Execute batch commands if available.
+void execBatchCommands();
+
+///
+FuncStatus getStatus(FuncRequest const & action);
+
+///
+DispatchResult const & dispatch(FuncRequest const & action);
+
+///
+void dispatch(FuncRequest const & action, DispatchResult & dr);
+
} // namespace lyx
#endif // LYX_H