X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=gtk-gui.c;h=9bd4f131d83e086d142e42877eb242001a32dfbd;hb=03eb488dd238bcec4b4758eab4559b3c40e6435c;hp=18c19c79f1cd377d39ad3f846346ed49ef82b9d0;hpb=76fc14f1b4c62506a6a9a8ee27d21ec992a65993;p=ext%2Fsubsurface.git diff --git a/gtk-gui.c b/gtk-gui.c index 18c19c7..9bd4f13 100644 --- a/gtk-gui.c +++ b/gtk-gui.c @@ -21,6 +21,8 @@ GtkWidget *main_vbox; GtkWidget *error_info_bar; GtkWidget *error_label; GtkWidget *vpane, *hpane; +GtkWidget *notebook; + int error_count; const char *divelist_font; @@ -662,10 +664,21 @@ static void view_info(GtkWidget *w, gpointer data) static void view_three(GtkWidget *w, gpointer data) { GtkAllocation alloc; + GtkRequisition requisition; + gtk_widget_get_allocation(hpane, &alloc); gtk_paned_set_position(GTK_PANED(hpane), alloc.width/2); gtk_widget_get_allocation(vpane, &alloc); - gtk_paned_set_position(GTK_PANED(vpane), alloc.height/2); + gtk_widget_size_request(notebook, &requisition); + /* pick the requested size for the notebook plus 6 pixels for frame */ + gtk_paned_set_position(GTK_PANED(vpane), requisition.height + 6); +} + +static void toggle_zoom(GtkWidget *w, gpointer data) +{ + zoomed_plot = (zoomed_plot)?0 : 1; + /*Update dive*/ + repaint_dive(); } static GtkActionEntry menu_items[] = { @@ -688,7 +701,8 @@ static GtkActionEntry menu_items[] = { { "ViewList", NULL, "List", CTRLCHAR "1", NULL, G_CALLBACK(view_list) }, { "ViewProfile", NULL, "Profile", CTRLCHAR "2", NULL, G_CALLBACK(view_profile) }, { "ViewInfo", NULL, "Info", CTRLCHAR "3", NULL, G_CALLBACK(view_info) }, - { "ViewThree", NULL, "Three", CTRLCHAR "4", NULL, G_CALLBACK(view_three) }, + { "ViewThree", NULL, "Three", CTRLCHAR "4", NULL, G_CALLBACK(view_three) }, + { "ToggleZoom", NULL, "Toggle Zoom", CTRLCHAR "0", NULL, G_CALLBACK(toggle_zoom) }, }; static gint nmenu_items = sizeof (menu_items) / sizeof (menu_items[0]); @@ -710,6 +724,7 @@ static const gchar* ui_string = " \ \ \ \ + \ \ \ \ @@ -750,11 +765,11 @@ static void switch_page(GtkNotebook *notebook, gint arg1, gpointer user_data) void init_ui(int *argcp, char ***argvp) { GtkWidget *win; - GtkWidget *notebook; GtkWidget *nb_page; GtkWidget *dive_list; GtkWidget *menubar; GtkWidget *vbox; + GtkWidget *scrolled; GdkScreen *screen; GtkIconTheme *icon_theme=NULL; GtkSettings *settings; @@ -826,13 +841,16 @@ void init_ui(int *argcp, char ***argvp) 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); + g_signal_connect_after(G_OBJECT(vbox), "realize", G_CALLBACK(view_three), NULL); /* Notebook for dive info vs profile vs .. */ notebook = gtk_notebook_new(); - gtk_paned_add1(GTK_PANED(hpane), notebook); + scrolled = gtk_scrolled_window_new(NULL, NULL); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); + gtk_paned_add1(GTK_PANED(hpane), scrolled); + gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled), notebook); g_signal_connect(notebook, "switch-page", G_CALLBACK(switch_page), NULL); /* Create the actual divelist */