Put demo window in another process to prevent some bugs of gtk+.
[lxde/lxappearance.git] / src / main.c
index 24ffb7b..e0dad15 100644 (file)
@@ -8,35 +8,42 @@
 #endif
 
 #include <gtk/gtk.h>
+#include <string.h>
 
 #include "main-dlg-ui.h"
+#include "demo.h"
 #include "glade-support.h"
 
-int
-main (int argc, char *argv[])
+int main (int argc, char *argv[])
 {
-  GtkWidget *dlg;
+    GtkWidget *dlg;
 
 #ifdef ENABLE_NLS
-  bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
-  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-  textdomain (GETTEXT_PACKAGE);
+    bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+    bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+    textdomain (GETTEXT_PACKAGE);
 #endif
 
-  gtk_set_locale ();
-  gtk_init (&argc, &argv);
+    if( argc >= 3 && strcmp( argv[1], "demo" ) == 0 )
+    {
+        char* files[] = { argv[3], NULL };
+        gtk_rc_set_default_files(files);
 
-  add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps");
+        gtk_set_locale ();
+        gtk_init (&argc, &argv);
+        show_demo( (GdkNativeWindow)atoi( argv[2] ) );
+        gtk_main();
+        return 0;
+    }
 
-  /*
-   * The following code was added by Glade to create one of each component
-   * (except popup menus), just so that you see something after building
-   * the project. Delete any components that you don't want shown initially.
-   */
-  dlg = create_dlg ();
-  gtk_widget_show (dlg);
+    gtk_set_locale ();
+    gtk_init (&argc, &argv);
 
-  gtk_main ();
-  return 0;
+    dlg = create_dlg ();
+    main_dlg_init( dlg );
+    gtk_widget_show (dlg);
+
+    gtk_main ();
+    return 0;
 }