#include "acidlaunch.h" time_t last_config_read_mtime=0; /* re-read config file every few seconds */ gint reread_config(gpointer data) { LauncherWindow* window = (LauncherWindow*)data; AcidLaunchNode* config; struct stat filestat; char* filename = prefsFileName("config.xml"); /* get the last modified date of the config file */ stat(filename, &filestat); /* re-read the config file if it's been modified */ if(filestat.st_mtime > last_config_read_mtime) { if(config = readConfig("config.xml")) { list::const_iterator iter; /* just do the first launcher for now */ iter=config->children().begin(); window->setPrefs((LauncherNode*)(*iter)); window->show(); } last_config_read_mtime = filestat.st_mtime; delete config; } delete[] filename; } int main(int argc, char **argv) { AcidLaunchNode* config; LauncherWindow* window; gtk_init (&argc, &argv); gdk_rgb_init (); if(!createInitialConfig()) { cerr << "Error initialising your configuration\n"; exit(10); } if(config = readConfig("config.xml")) { list::const_iterator iter; /* just do the first launcher for now */ iter=config->children().begin(); window = new LauncherWindow(); window->setPrefs((LauncherNode*)(*iter)); window->show(); gtk_timeout_add(5000, reread_config, window); delete config; last_config_read_mtime = time(NULL); } gtk_main(); }