]> git.lyx.org Git - lyx.git/blobdiff - src/main.C
small changes to ButtonController usage
[lyx.git] / src / main.C
index cb1e53a451287937ab92d5f421da2eb1fbc4e660..e1b01f06bba1247521e0527b39b0cb0b852da16e 100644 (file)
@@ -1,40 +1,85 @@
 /* This file is part of
- * ======================================================
+ * ====================================================== 
  * 
  *           LyX, The Document Processor
  *      
- *         Copyright (C) 1995 Matthias Ettrich
- *          Copyright (C) 1995-1999 The LyX Team.
+ *         Copyright 1995 Matthias Ettrich
+ *          Copyright 1995-2000 The LyX Team.
  *
- *======================================================*/
+ * ====================================================== */
 
 #include <config.h>
+#include <iostream>
+
+#ifdef KDEGUI
+#    include <kapp.h>
+#endif
+#ifdef GTKGUI
+#    include <gnome--/main.h>
+#    include "frontends/gnome/mainapp.h"
+GLyxAppWin * mainAppWin;
+#endif
+
 #include FORMS_H_LOCATION
+
 #include "lyx_main.h"
 #include "gettext.h"
 #include "LString.h"
-#include "filetools.h"
-
-//     $Id: main.C,v 1.1 1999/09/27 18:44:38 larsbj Exp $      
+#include "support/filetools.h"
 
-#if !defined(lint) && !defined(WITH_WARNINGS)
-static char vcid[] = "$Id: main.C,v 1.1 1999/09/27 18:44:38 larsbj Exp $";
-#endif /* lint */
 
 // I keep these here so that it will be processed as early in
 // the compilation process as possible.
-#if !defined(FL_REVISION) || (FL_REVISION != 88 && FL_REVISION != 89) \
-                         || FL_VERSION != 0
+#if !defined(FL_REVISION) || FL_REVISION < 88 || FL_VERSION != 0
 #error LyX will not compile with this version of XForms.\
        Please get version 0.89.\
        If you want to try to compile anyway, delete this test in src/main.C.
 #endif
 
+using std::cerr;
+using std::endl;
 
-int main(int argc, char *argv[]) {
+static int const xforms_include_version = FL_INCLUDE_VERSION;
+
+int main(int argc, char * argv[])
+{
+       // Check the XForms version in the forms.h header against
+       // the one in the libforms. If they don't match quit the
+       // execution of LyX. Better with a clean fast exit than
+       // a strange segfault later.
+       // I realize that this check have to be moved when we
+       // support several toolkits, but IMO all the toolkits
+       // should try to have the same kind of check. This could
+       // be done by having a CheckHeaderAndLib function in
+       // all the toolkit implementations, this function is
+       // responsible for notifing the user.
+       // if (!CheckHeaderAndLib()) {
+       //         // header vs. lib version failed
+       //         return 1;
+       // }
+       int xforms_lib_version = fl_library_version(0, 0);
+       if (xforms_include_version != xforms_lib_version) {
+               cerr << "You are either running LyX with wrong "
+                       "version of a dynamic XForms library\n"
+                       "or you have build LyX with conflicting header "
+                       "and library (different\n"
+                       "versions of XForms. Sorry but there is no point "
+                       "in continuing executing LyX!" << endl;
+               return 1;
+       }
+
+#ifdef KDEGUI
+       KApplication a( argc, argv );
+#endif
+#ifdef GTKGUI
+       Gnome::Main  a(PACKAGE,VERSION,1,argv); //argc, argv );
+       GLyxAppWin   appWin;
+       mainAppWin = &appWin;
+#endif
+       
        // lyx_localedir is used by gettext_init() is we have
        //   i18n support built-in
-       LString lyx_localedir = getEnvPath("LYX_LOCALEDIR");
+       string lyx_localedir = GetEnvPath("LYX_LOCALEDIR");
        if (lyx_localedir.empty())
                lyx_localedir = LOCALEDIR;
        
@@ -46,6 +91,6 @@ int main(int argc, char *argv[]) {
        _wildcard(&argc, &argv);
 #endif
 
-       LyX lyx(&argc,argv);
-       return 0; // ok
+       LyX lyx(&argc, argv);
+       return 0; // SUCCESS
 }