Simplify autogen.sh by using autoreconf
[hvgrip.git] / src / grip.c
index 80e859a..1183d87 100644 (file)
@@ -52,7 +52,8 @@ static void LoadImages(GripGUI *uinfo);
 static void DoLoadConfig(GripInfo *ginfo);
 void DoSaveConfig(GripInfo *ginfo);
 
-#define GRIP_URL "http://www.nostatic.org/grip"
+#define GRIP_URL "http://www.hugovil.com/hvgrip"
+#define GRIP_HTML_DOC_URL "file://"DOCDIR"/grip.html"
 
 #define BASE_CFG_ENTRIES \
 {"grip_version",CFG_ENTRY_STRING,256,ginfo->version},\
@@ -130,6 +131,8 @@ void DoSaveConfig(GripInfo *ginfo);
 {"win_height_edit",CFG_ENTRY_INT,0,&uinfo->win_height_edit},\
 {"win_width_min",CFG_ENTRY_INT,0,&uinfo->win_width_min},\
 {"win_height_min",CFG_ENTRY_INT,0,&uinfo->win_height_min},\
+{"win_pos_x",CFG_ENTRY_INT,0,&uinfo->x},\
+{"win_pos_y",CFG_ENTRY_INT,0,&uinfo->y},\
 {"vol_vis",CFG_ENTRY_BOOL,0,&uinfo->volvis},\
 {"track_edit_vis",CFG_ENTRY_BOOL,0,&uinfo->track_edit_visible},\
 {"track_prog_vis",CFG_ENTRY_BOOL,0,&uinfo->track_prog_visible},\
@@ -267,6 +270,9 @@ GtkWidget *GripNew(const gchar* geometry,char *device,char *scsi_device,
     }
   }
 
+  /* Position window from values in config file. */
+  gtk_window_move(GTK_WINDOW(app),uinfo->x, uinfo->y);
+
   gtk_widget_realize(app);
 
   uinfo->winbox=gtk_vbox_new(FALSE,3);
@@ -353,8 +359,10 @@ void GripDie(GtkWidget *widget,gpointer data)
 static void ReallyDie(gpointer data)
 {
   GripInfo *ginfo;
+  GripGUI *uinfo;
 
   ginfo=(GripInfo *)data;
+  uinfo = &(ginfo->gui_info);
 
 #ifndef GRIPCD
   if(ginfo->ripping_a_disc) KillRip(NULL,ginfo);
@@ -364,6 +372,9 @@ static void ReallyDie(gpointer data)
   if(!ginfo->no_interrupt)
     CDStop(&(ginfo->disc));
 
+  /* For saving the window position */
+  gtk_window_get_position(GTK_WINDOW(uinfo->app), &uinfo->x, &uinfo->y);
+
   DoSaveConfig(ginfo);
 
   gtk_main_quit();
@@ -469,12 +480,23 @@ void LogStatus(GripInfo *ginfo,char *fmt,...)
 static void DoHelp(GtkWidget *widget,gpointer data)
 {
   char *section;
+  char *uri;
 
   section=(char *)data;
 
-#ifdef CONVERSION_GNOME_TO_GTK
-  gnome_help_display("grip.xml",section,NULL);
-#endif
+  if (section) {
+    /*
+     * This doesn't work for the moment: the "#section" seems to be
+     * ignored by g_app_info_launch_default_for_uri().
+     */
+    uri = g_strdup_printf("%s#%s", GRIP_HTML_DOC_URL, section);
+  }
+  else {
+    uri = g_strdup_printf("%s", GRIP_HTML_DOC_URL);
+  }
+
+  g_app_info_launch_default_for_uri(uri, NULL, NULL);
+  g_free (uri);
 }
 
 static void MakeHelpPage(GripInfo *ginfo)
@@ -583,7 +605,7 @@ void MakeAboutPage(GripGUI *uinfo)
 
   hbox=gtk_hbox_new(TRUE,0);
 
-  button=gtk_button_new_with_label("http://www.nostatic.org/grip");
+  button=gtk_button_new_with_label(GRIP_URL);
   gtk_widget_set_style(button,uinfo->style_dark_grey);
   gtk_widget_set_style(GTK_BIN(button)->child,
                       uinfo->style_dark_grey);
@@ -626,18 +648,7 @@ static void MakeStyles(GripGUI *uinfo)
 
 static void Homepage(void)
 {
-  int status;
-
-  status = system("firefox " GRIP_URL);
-  if (status != 0) {
-    status = system("opera " GRIP_URL);
-    if (status != 0) {
-      status = system("chromium-browser " GRIP_URL);
-      if (status != 0) {
-       status = system("gnome-moz-remote " GRIP_URL);
-      }
-    }
-  }
+  g_app_info_launch_default_for_uri(GRIP_URL, NULL, NULL);
 }
 
 static void LoadImages(GripGUI *uinfo)