/* This file is part of
* ======================================================
- *
+ *
* LyX, The Document Processor
- *
+ *
* Copyright 2000 The LyX Team.
*
*======================================================*/
#include "debug.h"
#include <gnome--/main.h>
-#include "mainapp.h"
#include <glade/glade.h>
+// For now we use the xforms image loader if we can.
+// In the future, this will be replaced by a gnome equivalent.
+#if defined(HAVE_FLIMAGE_DUP) && defined(HAVE_FLIMAGE_TO_PIXMAP)
+#include "xforms/xformsGImage.h"
+#else
+#include "graphics/GraphicsImageXPM.h"
+#endif
+
using std::endl;
// I keep these here so that it will be processed as early in
} // namespace anon
-GLyxAppWin * mainAppWin;
int GUIRunTime::initApplication(int &, char * argv[])
{
string app_version(VERSION);
static Gnome::Main a(app_id, app_version, 1, argv);
glade_gnome_init(); // Initialize the glade library.
- static GLyxAppWin appWin;
- mainAppWin = &appWin;
return 0;
}
-void GUIRunTime::processEvents()
+void GUIRunTime::processEvents()
{
- while(Gnome::Main::instance()->events_pending())
+ while (Gnome::Main::instance()->events_pending())
Gnome::Main::instance()->iteration(FALSE);
}
return new XFormsView(w, h);
}
-
+
+// Called by the graphics cache to connect the appropriate frontend
+// image loading routines to the LyX kernel.
+void GUIRunTime::initialiseGraphics()
+{
+ using namespace grfx;
+ using SigC::slot;
+
+#if defined(HAVE_FLIMAGE_DUP) && defined(HAVE_FLIMAGE_TO_PIXMAP)
+ // connect the image loader based on the xforms library
+ GImage::newImage.connect(slot(&xformsGImage::newImage));
+ GImage::loadableFormats.connect(slot(&xformsGImage::loadableFormats));
+#else
+ // connect the image loader based on the XPM library
+ GImage::newImage.connect(slot(&GImageXPM::newImage));
+ GImage::loadableFormats.connect(slot(&GImageXPM::loadableFormats));
+#endif
+}
+
+
Display * GUIRunTime::x11Display()
{
return fl_get_display();
{
return fl_get_visual_depth();
}
+
+float GUIRunTime::getScreenDPI()
+{
+ Screen * scr = ScreenOfDisplay(fl_get_display(), fl_screen);
+ return ((HeightOfScreen(scr) * 25.4 / HeightMMOfScreen(scr)) +
+ (WidthOfScreen(scr) * 25.4 / WidthMMOfScreen(scr))) / 2;
+}