#ifndef LYX_H
#define LYX_H
-#include <boost/scoped_ptr.hpp>
-#include <boost/noncopyable.hpp>
-
-#include <string>
+#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 Messages;
class Mover;
class Movers;
+class Server;
+class ServerSocket;
class Session;
-class KeyMap;
-class CmdDef;
extern bool use_gui;
}
/// initial startup
-class LyX : boost::noncopyable {
+class LyX {
public:
LyX();
/// 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();
frontend::Application & application();
frontend::Application const & application() const;
- ///
- KeyMap & topLevelKeymap();
- KeyMap const & topLevelKeymap() const;
-
///
CmdDef & topLevelCmdDef();
///
frontend::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 * updateInset(Inset const *) const;
-
- void hideDialogs(std::string const & name, Inset * inset) const;
-
/// 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();
*/
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.
/// 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<Singletons> 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