]> git.lyx.org Git - lyx.git/blobdiff - src/lyx_main.h
Sigh. Why is debugging iterative?
[lyx.git] / src / lyx_main.h
index 3730881715646e295f78e5c4a3f11abdd986f464..c56d5ea9a72b4b4d7c542801aa6d6b911033bd3b 100644 (file)
@@ -1,88 +1,91 @@
 // -*- C++ -*-
 /* This file is part of
 * ======================================================
-* 
+*
 *           LyX, The Document Processor
-*       
-*          Copyright (C) 1995 1996 Matthias Ettrich
-*           and the LyX Team.
 *
-*======================================================*/
+*           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. */
 
-#ifndef _LYX_MAIN_H_
-#define _LYX_MAIN_H_
+#ifndef LYX_MAIN_H
+#define LYX_MAIN_H
+
+#ifdef __GNUG__
+#pragma interface
+#endif
+
+#include <csignal>
+
+#include "LString.h"
 
-#include <signal.h>
+#include <boost/smart_ptr.hpp>
+#include <boost/utility.hpp>
 
 class LyXGUI;
 class LyXRC;
 class LastFiles;
 class Buffer;
-class LString;
-
-extern LString system_lyxdir;
-extern LString user_lyxdir;
-extern LString system_tempdir;
-
-extern LastFiles *lastfiles; /* we should hopefully be able to move this
-                             * inside the LyX class */
+class kb_keymap;
 
-extern LyXRC *lyxrc;
+///
+extern string system_lyxdir;
+///
+extern string user_lyxdir;
+///
+extern string system_tempdir;
+///
+extern boost::scoped_ptr<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.
 */
-class LyX
-{
+class LyX : boost::noncopyable {
 public:
-       /**@name Constructors and Deconstructors */
-       //@{
        /// the only allowed constructor
-       LyX(int *argc, char *argv[]); // constructor
-       // Always is useful a destructor
+       LyX(int * argc, char * argv[]); // constructor
+       /// Always is useful a destructor
        ~LyX();
-       //@}
 
-       /**@name Pointers to... */
-       //@{
-       ///
-       LyXGUI *lyxGUI;  // should be only one of this
-       //@}
-private:
-       /**@name Constructors and Deconstructors */
-       //@{
-       /// not allowed
-       LyX(const LyX &){;} // not allowed
-       /// not allowed
-       LyX(){;} // not allowed
-       //@}
+       /// in the case of failure
+       static void emergencyCleanup();
 
-       /**@name Private variables */
-       //@{
+private:
+       /// Should be a maximum of 1 LyXGUI.
+       boost::scoped_ptr<LyXGUI> lyxGUI;
        /// does this user start lyx for the first time?
        bool first_start;
        ///
-       struct sigaction act_;
-       //@}
-       /**@name Private Members */
-       //@{
+       string batch_command;
        ///
        void runtime();
        ///
-       void init(int *argc, char *argv[]);
+       void init(bool);
+       ///
+       void defaultKeyBindings(kb_keymap * kbmap);
        ///
-       void queryUserLyXDir();
+       void deadKeyBindings(kb_keymap * kbmap);
        ///
-        void ReadRcFile(LString const & name);
-        ///
-       bool easyParse(int *argc, char *argv[]);
-       //@}
+       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[]);
 };
 
 #endif
-
-