]> git.tdb.fi Git - ext/subsurface.git/blobdiff - gtk-gui.c
Don't colorize the pressure plot when printing
[ext/subsurface.git] / gtk-gui.c
index b160508383b66c8d287e1900baf23966c4f99f05..f4212b41c01f8838914fda21b9224df408ce3e9a 100644 (file)
--- 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, &notebook_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);