X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=equipment.c;h=b9b9259b5a8cd0631816842e95d513e14d1066e3;hb=9cf8d98711dff888f5bfa8efd52ca7b8cf8bfa07;hp=7e52f980a4852baf8439d149f4c1471cf8761b39;hpb=c7b9387d4bf624230ca2e317e7ac8cf5b4b81f0c;p=ext%2Fsubsurface.git diff --git a/equipment.c b/equipment.c index 7e52f98..b9b9259 100644 --- a/equipment.c +++ b/equipment.c @@ -224,11 +224,31 @@ static void record_cylinder_changes(cylinder_t *cyl, struct cylinder_widget *cyl } void flush_dive_equipment_changes(struct dive *dive) +{ + /* We do nothing: we require the "Ok" button press */ +} + +static void apply_cb(GtkButton *button, gpointer data) { int i; + struct dive *dive = current_dive; + + if (!dive) + return; for (i = 0; i < MAX_CYLINDERS; i++) record_cylinder_changes(dive->cylinder+i, gtk_cylinder+i); + flush_divelist(dive); +} + +static void cancel_cb(GtkButton *button, gpointer data) +{ + struct dive *dive = current_dive; + + if (!dive) + return; + + show_dive_equipment(current_dive); } /* @@ -370,7 +390,8 @@ static GtkListStore *create_tank_size_model(void) GtkWidget *equipment_widget(void) { int i; - GtkWidget *vbox; + GtkWidget *vbox, *hbox; + GtkWidget *apply, *cancel; GtkListStore *model; vbox = gtk_vbox_new(FALSE, 3); @@ -387,5 +408,16 @@ GtkWidget *equipment_widget(void) gtk_box_pack_start(GTK_BOX(vbox), cylinder->hbox, FALSE, TRUE, 0); } + hbox = gtk_hbox_new(TRUE, 3); + gtk_box_pack_end(GTK_BOX(vbox), hbox, TRUE, FALSE, 0); + + apply = gtk_button_new_from_stock(GTK_STOCK_APPLY); + cancel = gtk_button_new_from_stock(GTK_STOCK_CANCEL); + gtk_box_pack_start(GTK_BOX(hbox), apply, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(hbox), cancel, FALSE, FALSE, 0); + + g_signal_connect(apply, "clicked", G_CALLBACK(apply_cb), NULL); + g_signal_connect(cancel, "clicked", G_CALLBACK(cancel_cb), NULL); + return vbox; }