X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=gtk-gui.c;h=f4212b41c01f8838914fda21b9224df408ce3e9a;hb=0d1f8f9a5db6f3433d8deb6cdab7ffa3ebc10a87;hp=b160508383b66c8d287e1900baf23966c4f99f05;hpb=43601f654675c8734c9ca5850cc41dac16d1989a;p=ext%2Fsubsurface.git diff --git a/gtk-gui.c b/gtk-gui.c index b160508..f4212b4 100644 --- a/gtk-gui.c +++ b/gtk-gui.c @@ -694,23 +694,21 @@ static GtkNotebook *create_new_notebook_window(GtkNotebook *source, return GTK_NOTEBOOK(notebook); } -static void drag_cb(GtkWidget *widget, GdkDragContext *context, +static gboolean drag_cb(GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time, gpointer user_data) { GtkWidget *source; notebook_data_t *nbdp; + gtk_drag_finish(context, TRUE, TRUE, time); source = gtk_drag_get_source_widget(context); if (nbd[0].name && ! strcmp(nbd[0].name,gtk_widget_get_name(source))) nbdp = nbd; else if (nbd[1].name && ! strcmp(nbd[1].name,gtk_widget_get_name(source))) nbdp = nbd + 1; - else - /* HU? */ - return; - - gtk_drag_finish(context, TRUE, TRUE, time); + else /* just on ourselves */ + return TRUE; /* we no longer need the widget - but getting rid of this is hard; * remove the signal handler, remove the notebook from the box @@ -722,6 +720,8 @@ static void drag_cb(GtkWidget *widget, GdkDragContext *context, nbdp->widget = NULL; free(nbdp->name); nbdp->name = NULL; + + return TRUE; } #ifdef WIN32 @@ -739,15 +739,17 @@ static int get_from_registry(HKEY hkey, const char *key) } #endif -void init_ui(int argc, char **argv) +void init_ui(int *argcp, char ***argvp) { GtkWidget *win; GtkWidget *notebook; GtkWidget *dive_info; GtkWidget *dive_list; GtkWidget *equipment; + GtkWidget *stats; GtkWidget *menubar; GtkWidget *vbox; + GtkWidget *hpane, *vpane; GdkScreen *screen; GtkIconTheme *icon_theme=NULL; GtkSettings *settings; @@ -755,7 +757,7 @@ void init_ui(int argc, char **argv) "GTK_NOTEBOOK_TAB", GTK_TARGET_SAME_APP, 0 }; - gtk_init(&argc, &argv); + gtk_init(argcp, argvp); settings = gtk_settings_get_default(); gtk_settings_set_long_property(settings, "gtk_tooltip_timeout", 10, "subsurface setting"); @@ -844,9 +846,15 @@ void init_ui(int argc, char **argv) menubar = get_menubar_menu(win); gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0); + vpane = gtk_vpaned_new(); + gtk_box_pack_start(GTK_BOX(vbox), vpane, TRUE, TRUE, 3); + + hpane = gtk_hpaned_new(); + gtk_paned_add1(GTK_PANED(vpane), hpane); + /* Notebook for dive info vs profile vs .. */ notebook = gtk_notebook_new(); - gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 6); + gtk_paned_add1(GTK_PANED(hpane), notebook); gtk_notebook_set_group(GTK_NOTEBOOK(notebook), GRP_ID); g_signal_connect(notebook, "create-window", G_CALLBACK(create_new_notebook_window), NULL); gtk_drag_dest_set(notebook, GTK_DEST_DEFAULT_ALL, ¬ebook_target, 1, GDK_ACTION_MOVE); @@ -856,16 +864,12 @@ void init_ui(int argc, char **argv) /* Create the actual divelist */ dive_list = dive_list_create(); gtk_widget_set_name(dive_list, "Dive List"); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), dive_list, gtk_label_new("Dive List")); - gtk_notebook_set_tab_detachable(GTK_NOTEBOOK(notebook), dive_list, 1); - gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(notebook), dive_list, 1); + gtk_paned_add2(GTK_PANED(vpane), dive_list); /* Frame for dive profile */ dive_profile = dive_profile_widget(); gtk_widget_set_name(dive_profile, "Dive Profile"); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), dive_profile, gtk_label_new("Dive Profile")); - gtk_notebook_set_tab_detachable(GTK_NOTEBOOK(notebook), dive_profile, 1); - gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(notebook), dive_profile, 1); + gtk_paned_add2(GTK_PANED(hpane), dive_profile); /* Frame for extended dive info */ dive_info = extended_dive_info_widget(); @@ -875,6 +879,10 @@ void init_ui(int argc, char **argv) equipment = equipment_widget(); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), equipment, gtk_label_new("Equipment")); + /* Frame for dive statistics */ + stats = stats_widget(); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), stats, gtk_label_new("Info & Stats")); + gtk_widget_set_app_paintable(win, TRUE); gtk_widget_show_all(win);