X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=gtk-gui.c;h=7c8e36423660253958835d10f5f1775c34841171;hb=d81553e1514e158f59c1d7aba6ece46de9764163;hp=754a77772e9ac70e7bc8ee2aa72b62f3ca012504;hpb=c0adfdc41bc5bea580f85a29dc073678fcb617e8;p=ext%2Fsubsurface.git diff --git a/gtk-gui.c b/gtk-gui.c index 754a777..7c8e364 100644 --- a/gtk-gui.c +++ b/gtk-gui.c @@ -246,7 +246,7 @@ UNITCALLBACK(set_fahrenheit, temperature, FAHRENHEIT) static void preferences_dialog(GtkWidget *w, gpointer data) { int result; - GtkWidget *dialog, *font, *frame, *box; + GtkWidget *dialog, *font, *frame, *box, *vbox; menu_units = output_units; @@ -258,7 +258,8 @@ static void preferences_dialog(GtkWidget *w, gpointer data) NULL); frame = gtk_frame_new("Units"); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), frame, FALSE, FALSE, 5); + vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); + gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 5); box = gtk_vbox_new(FALSE, 6); gtk_container_add(GTK_CONTAINER(frame), box); @@ -284,7 +285,7 @@ static void preferences_dialog(GtkWidget *w, gpointer data) NULL); font = gtk_font_button_new_with_font(divelist_font); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), font, FALSE, FALSE, 5); + gtk_box_pack_start(GTK_BOX(vbox), font, FALSE, FALSE, 5); gtk_widget_show_all(dialog); result = gtk_dialog_run(GTK_DIALOG(dialog)); @@ -310,7 +311,7 @@ static void preferences_dialog(GtkWidget *w, gpointer data) static void renumber_dialog(GtkWidget *w, gpointer data) { int result; - GtkWidget *dialog, *frame, *button; + GtkWidget *dialog, *frame, *button, *vbox; dialog = gtk_dialog_new_with_buttons("Renumber", GTK_WINDOW(main_window), @@ -319,8 +320,10 @@ static void renumber_dialog(GtkWidget *w, gpointer data) GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL); + vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); + frame = gtk_frame_new("New starting number"); - gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), frame); + gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 5); button = gtk_spin_button_new_with_range(1, 50000, 1); gtk_container_add(GTK_CONTAINER(frame), button); @@ -335,9 +338,32 @@ static void renumber_dialog(GtkWidget *w, gpointer data) gtk_widget_destroy(dialog); } +static void about_dialog(GtkWidget *w, gpointer data) +{ + const char *logo_property = NULL; + GdkPixbuf *logo = NULL; + GtkWidget *image = gtk_image_new_from_file("icon.svg"); + + if (image) { + logo = gtk_image_get_pixbuf(GTK_IMAGE(image)); + logo_property = "logo"; + } + + gtk_show_about_dialog(NULL, + "program-name", "SubSurface", + "comments", "Half-arsed divelog software in C", + "license", "GPLv2", + "version", "1.0", + "copyright", "Linus Torvalds 2011", + /* Must be last: */ + logo_property, logo, + NULL); +} + static GtkActionEntry menu_items[] = { { "FileMenuAction", GTK_STOCK_FILE, "File", NULL, NULL, NULL}, { "LogMenuAction", GTK_STOCK_FILE, "Log", NULL, NULL, NULL}, + { "HelpMenuAction", GTK_STOCK_HELP, "Help", NULL, NULL, NULL}, { "OpenFile", GTK_STOCK_OPEN, NULL, "O", NULL, G_CALLBACK(file_open) }, { "SaveFile", GTK_STOCK_SAVE, NULL, "S", NULL, G_CALLBACK(file_save) }, { "Print", GTK_STOCK_PRINT, NULL, "P", NULL, G_CALLBACK(do_print) }, @@ -345,6 +371,7 @@ static GtkActionEntry menu_items[] = { { "Preferences", NULL, "Preferences", NULL, NULL, G_CALLBACK(preferences_dialog) }, { "Renumber", NULL, "Renumber", NULL, NULL, G_CALLBACK(renumber_dialog) }, { "Quit", GTK_STOCK_QUIT, NULL, "Q", NULL, G_CALLBACK(quit) }, + { "About", GTK_STOCK_ABOUT, NULL, NULL, NULL, G_CALLBACK(about_dialog) }, }; static gint nmenu_items = sizeof (menu_items) / sizeof (menu_items[0]); @@ -365,6 +392,9 @@ static const gchar* ui_string = " \ \ \ \ + \ + \ + \ \ \ "; @@ -576,12 +606,13 @@ static void fill_computer_list(GtkListStore *store) static GtkComboBox *dive_computer_selector(GtkWidget *dialog) { - GtkWidget *hbox, *combo_box; + GtkWidget *hbox, *combo_box, *vbox; GtkListStore *model; GtkCellRenderer *renderer; hbox = gtk_hbox_new(FALSE, 6); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, FALSE, FALSE, 3); + vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 3); model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT); fill_computer_list(model); @@ -599,7 +630,7 @@ static GtkComboBox *dive_computer_selector(GtkWidget *dialog) void import_dialog(GtkWidget *w, gpointer data) { int result; - GtkWidget *dialog, *hbox; + GtkWidget *dialog, *hbox, *vbox; GtkComboBox *computer; device_data_t devicedata = { .devname = "/dev/ttyUSB0", @@ -615,7 +646,8 @@ void import_dialog(GtkWidget *w, gpointer data) computer = dive_computer_selector(dialog); hbox = gtk_hbox_new(FALSE, 6); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, FALSE, TRUE, 3); + vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 3); devicedata.progress.bar = gtk_progress_bar_new(); gtk_container_add(GTK_CONTAINER(hbox), devicedata.progress.bar);