Move application data files to data folder
[hvgrip.git] / src / main.c
index 3629b07..ba35a4b 100644 (file)
  */
 
 #include <config.h>
-#include <gnome.h>
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <popt.h>
 #include <stdlib.h>
 
 #include "grip.h"
 
-static gint KillSession(GnomeClient* client, gpointer client_data);
-static gint SaveSession(GnomeClient *client, gint phase, 
-                       GnomeSaveStyle save_style,
-                       gint is_shutdown, GnomeInteractStyle interact_style,
-                       gint is_fast, gpointer client_data);
 static gint TimeOut(gpointer data);
 
 gboolean do_debug=TRUE;
@@ -45,6 +42,7 @@ static int force_small=FALSE;
 static int local_mode=FALSE;
 static int no_redirect=FALSE;
 static int verbose=FALSE;
+static int version=FALSE;
 
 struct poptOption options[] = {
   { 
@@ -119,6 +117,16 @@ struct poptOption options[] = {
     N_("Run in verbose (debug) mode"),
     NULL
   },
+  {
+    "version",
+    '\0',
+    POPT_ARG_NONE,
+    &version,
+    0,
+    N_("Print version number"),
+    NULL
+  },
+  POPT_AUTOHELP
   {
     NULL,
     '\0',
@@ -150,31 +158,38 @@ void Debug(char *fmt,...)
 
 int Cmain(int argc, char* argv[])
 {
-  GnomeClient *client;
+  poptContext context;
+  int status;
 
   /* Unbuffer stdout */
   setvbuf(stdout, 0, _IONBF, 0);
 
   /* setup locale, i18n */
   gtk_set_locale();
-  bindtextdomain(GETTEXT_PACKAGE,GNOMELOCALEDIR);
-  textdomain(GETTEXT_PACKAGE);
+  bindtextdomain(PACKAGE_TARNAME, LOCALEDIR);
+  textdomain(PACKAGE_TARNAME);
 
-  gnome_program_init(PACKAGE,VERSION,LIBGNOMEUI_MODULE,argc,argv, 
-                    GNOME_PARAM_POPT_TABLE,options,
-                    GNOME_PROGRAM_STANDARD_PROPERTIES,NULL);
+  gtk_init(&argc, &argv);
+  context = poptGetContext(NULL, argc, (const char **) argv, options, 0);
+  status = poptGetNextOpt(context);
+  if (status != -1) {
+    fprintf(stderr, "Error with option [%s]:\n  %s\n",
+           poptBadOption(context, POPT_BADOPTION_NOALIAS),
+           poptStrerror(status));
 
-  bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF8");
-  setenv("CHARSET","UTF-8",1);
+    /* Print a short usage message. */
+    poptPrintUsage(context, stderr, 0);
 
-  /* Session Management */
-  
-  client=gnome_master_client();
-  gtk_signal_connect(GTK_OBJECT(client),"save_yourself",
-                    GTK_SIGNAL_FUNC(SaveSession),argv[0]);
-  gtk_signal_connect(GTK_OBJECT(client),"die",
-                    GTK_SIGNAL_FUNC(KillSession),NULL);
-  
+    exit(1);
+  }
+
+  if (version) {
+    printf("%s\n", PACKAGE_VERSION);
+    exit(0);
+  }
+
+  bind_textdomain_codeset(PACKAGE_TARNAME, "UTF8");
+  setenv("CHARSET","UTF-8",1);
 
   do_debug=verbose;
 
@@ -194,35 +209,6 @@ int Cmain(int argc, char* argv[])
   return 0;
 }
 
-/* Save the session */
-static gint SaveSession(GnomeClient *client, gint phase,
-                       GnomeSaveStyle save_style,
-                       gint is_shutdown, GnomeInteractStyle interact_style,
-                       gint is_fast, gpointer client_data)
-{
-  gchar** argv;
-  guint argc;
-
-  /* allocate 0-filled, so it will be NULL-terminated */
-  argv = g_malloc0(sizeof(gchar*)*4);
-  argc = 1;
-
-  argv[0] = client_data;
-
-  gnome_client_set_clone_command(client, argc, argv);
-  gnome_client_set_restart_command(client, argc, argv);
-
-  return TRUE;
-}
-
-/* Kill Session */
-static gint KillSession(GnomeClient* client, gpointer client_data)
-{
-  gtk_main_quit();
-
-  return TRUE;
-}
-
 static gint TimeOut(gpointer data)
 {
   GripUpdate(grip_app);