Added multipaths loading for datafiles
authorkazer_ <kazer_@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Fri, 13 Jul 2007 12:57:45 +0000 (12:57 +0000)
committerkazer_ <kazer_@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Fri, 13 Jul 2007 12:57:45 +0000 (12:57 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@334 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/src/gui/sdl/gui_sdl_window.cpp

index f70317d..68f8890 100644 (file)
@@ -1,6 +1,5 @@
 #include "glib.h"
 #include <stdio.h>
-// #include <gtk/gtk.h>
 
 //  FIXME temporary fix for enum
 #include "projection.h"
 
 #include "CEGUI.h"
 
-
-// This is for 3d fonts
+// This is for 3d fonts. Needs QuesoGLC. Could probably (and should) be moved to graphics instead
+// since fonts here are handled by CEGUI
 #include "GL/glc.h"
 
-
 #include "sdl_events.h"
 
 #define VM_2D 0
@@ -544,12 +542,37 @@ static void init_sdlgui(void)
                CEGUI::DefaultResourceProvider* rp = static_cast<CEGUI::DefaultResourceProvider*>
                (CEGUI::System::getSingleton().getResourceProvider());
                
-               rp->setResourceGroupDirectory("schemes", "../datafiles/schemes/");
-               rp->setResourceGroupDirectory("imagesets", "../datafiles/imagesets/");
-               rp->setResourceGroupDirectory("fonts", "../datafiles/fonts/");
-               rp->setResourceGroupDirectory("layouts", "../datafiles/layouts/");
-               rp->setResourceGroupDirectory("looknfeels", "../datafiles/looknfeel/");
-               rp->setResourceGroupDirectory("lua_scripts", "../datafiles/lua_scripts/");
+
+               static char *datafiles_path[]={
+                       "./gui/sdl/datafiles",
+                       "/usr/share/navit/datafiles",
+                       "/usr/local/share/navit/datafiles",
+                       NULL,
+               };
+
+               char **filename=datafiles_path;
+
+               while (*filename) {     
+                       if (FILE * file = fopen(*filename, "r"))
+                       {
+                               fclose(file);
+                               break;
+                       }
+                       filename++;
+               }
+
+               if(*filename==NULL){
+                       printf("Can't find the datafiles directory for CEGUI files. Navit will probably crash :)\n");
+               } else {
+                       printf("Loading SDL datafiles from %s\n",*filename);
+               }
+
+               rp->setResourceGroupDirectory("schemes", g_strdup_printf("%s/schemes/",*filename));
+               rp->setResourceGroupDirectory("imagesets", g_strdup_printf("%s/imagesets/",*filename));
+               rp->setResourceGroupDirectory("fonts", g_strdup_printf("%s/fonts/",*filename));
+               rp->setResourceGroupDirectory("layouts", g_strdup_printf("%s/layouts/",*filename));
+               rp->setResourceGroupDirectory("looknfeels", g_strdup_printf("%s/looknfeel/",*filename));
+               rp->setResourceGroupDirectory("lua_scripts", g_strdup_printf("%s/lua_scripts/",*filename));
 
 
                CEGUI::Imageset::setDefaultResourceGroup("imagesets");