X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=src%2Fgrip.c;h=1183d87ed9563732aa798370f0027f52b8f6a58a;hb=5862f0a7518439cde4ba73f08baabd5a972c2873;hp=3b74664fd7fb47fdb5a72607e0f70c24ce18f0cb;hpb=64cdc5a741a2ab7cb8666e81be138657a0fea46e;p=hvgrip.git diff --git a/src/grip.c b/src/grip.c index 3b74664..1183d87 100644 --- a/src/grip.c +++ b/src/grip.c @@ -30,7 +30,6 @@ #include #include #include "grip.h" -#include #include "discdb.h" #include "cdplay.h" #include "discedit.h" @@ -53,6 +52,9 @@ static void LoadImages(GripGUI *uinfo); static void DoLoadConfig(GripInfo *ginfo); void DoSaveConfig(GripInfo *ginfo); +#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},\ {"cd_device",CFG_ENTRY_STRING,256,ginfo->cd_device},\ @@ -129,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},\ @@ -176,10 +180,8 @@ GtkWidget *GripNew(const gchar* geometry,char *device,char *scsi_device, int major,minor,point; char buf[256]; - gnome_window_icon_set_default_from_file(GNOME_ICONDIR"/gripicon.png"); + app = gtk_window_new(GTK_WINDOW_TOPLEVEL); - app=gnome_app_new(PACKAGE,_("Grip")); - ginfo=g_new0(GripInfo,1); gtk_object_set_user_data(GTK_OBJECT(app),(gpointer)ginfo); @@ -268,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); @@ -299,17 +304,19 @@ GtkWidget *GripNew(const gchar* geometry,char *device,char *scsi_device, uinfo->playopts=MakePlayOpts(ginfo); gtk_box_pack_start(GTK_BOX(uinfo->winbox),uinfo->playopts,FALSE,FALSE,0); if(uinfo->track_prog_visible) gtk_widget_show(uinfo->playopts); - + uinfo->controls=MakeControls(ginfo); if(uinfo->minimized) gtk_box_pack_start(GTK_BOX(uinfo->winbox),uinfo->controls,TRUE,TRUE,0); else gtk_box_pack_start(GTK_BOX(uinfo->winbox),uinfo->controls,FALSE,FALSE,0); gtk_widget_show(uinfo->controls); - - gnome_app_set_contents(GNOME_APP(app),uinfo->winbox); + + gtk_container_add(GTK_CONTAINER(app), uinfo->winbox); gtk_widget_show(uinfo->winbox); + gtk_window_set_icon_from_file(GTK_WINDOW(app), GNOME_ICONDIR"/gripicon.png", NULL); + CheckNewDisc(ginfo,FALSE); /* Check if we're running this version for the first time */ @@ -352,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); @@ -363,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(); @@ -468,10 +480,23 @@ void LogStatus(GripInfo *ginfo,char *fmt,...) static void DoHelp(GtkWidget *widget,gpointer data) { char *section; + char *uri; section=(char *)data; - gnome_help_display("grip.xml",section,NULL); + 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) @@ -580,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); @@ -623,7 +648,7 @@ static void MakeStyles(GripGUI *uinfo) static void Homepage(void) { - system("gnome-moz-remote http://www.nostatic.org/grip"); + g_app_info_launch_default_for_uri(GRIP_URL, NULL, NULL); } static void LoadImages(GripGUI *uinfo)