PATH:
usr
/
share
/
gtk-2.0
/
demo
/* Paned Widgets * * The GtkHPaned and GtkVPaned Widgets divide their content * area into two panes with a divider in between that the * user can adjust. A separate child is placed into each * pane. * * There are a number of options that can be set for each pane. * This test contains both a horizontal (HPaned) and a vertical * (VPaned) widget, and allows you to adjust the options for * each side of each widget. */ #include <gtk/gtk.h> void toggle_resize (GtkWidget *widget, GtkWidget *child) { GtkPaned *paned = GTK_PANED (gtk_widget_get_parent (child)); gboolean is_child1 = (child == gtk_paned_get_child1 (paned)); gboolean resize, shrink; gtk_container_child_get (GTK_CONTAINER (paned), child, "resize", &resize, "shrink", &shrink, NULL); g_object_ref (child); gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (child)), child); if (is_child1) gtk_paned_pack1 (paned, child, !resize, shrink); else gtk_paned_pack2 (paned, child, !resize, shrink); g_object_unref (child); } void toggle_shrink (GtkWidget *widget, GtkWidget *child) { GtkPaned *paned = GTK_PANED (gtk_widget_get_parent (child)); gboolean is_child1 = (child == gtk_paned_get_child1 (paned)); gboolean resize, shrink; gtk_container_child_get (GTK_CONTAINER (paned), child, "resize", &resize, "shrink", &shrink, NULL); g_object_ref (child); gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (child)), child); if (is_child1) gtk_paned_pack1 (paned, child, resize, !shrink); else gtk_paned_pack2 (paned, child, resize, !shrink); g_object_unref (child); } GtkWidget * create_pane_options (GtkPaned *paned, const gchar *frame_label, const gchar *label1, const gchar *label2) { GtkWidget *frame; GtkWidget *table; GtkWidget *label; GtkWidget *check_button; GtkWidget *child1; GtkWidget *child2; child1 = gtk_paned_get_child1 (paned); child2 = gtk_paned_get_child2 (paned); frame = gtk_frame_new (frame_label); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); table = gtk_table_new (3, 2, TRUE); gtk_container_add (GTK_CONTAINER (frame), table); label = gtk_label_new (label1); gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 0, 1); check_button = gtk_check_button_new_with_mnemonic ("_Resize"); gtk_table_attach_defaults (GTK_TABLE (table), check_button, 0, 1, 1, 2); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_resize), child1); check_button = gtk_check_button_new_with_mnemonic ("_Shrink"); gtk_table_attach_defaults (GTK_TABLE (table), check_button, 0, 1, 2, 3); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_shrink), child1); label = gtk_label_new (label2); gtk_table_attach_defaults (GTK_TABLE (table), label, 1, 2, 0, 1); check_button = gtk_check_button_new_with_mnemonic ("_Resize"); gtk_table_attach_defaults (GTK_TABLE (table), check_button, 1, 2, 1, 2); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_resize), child2); check_button = gtk_check_button_new_with_mnemonic ("_Shrink"); gtk_table_attach_defaults (GTK_TABLE (table), check_button, 1, 2, 2, 3); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_shrink), child2); return frame; } GtkWidget * do_panes (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *frame; GtkWidget *hpaned; GtkWidget *vpaned; GtkWidget *button; GtkWidget *vbox; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_title (GTK_WINDOW (window), "Panes"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (window), vbox); vpaned = gtk_vpaned_new (); gtk_box_pack_start (GTK_BOX (vbox), vpaned, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER(vpaned), 5); hpaned = gtk_hpaned_new (); gtk_paned_add1 (GTK_PANED (vpaned), hpaned); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_widget_set_size_request (frame, 60, 60); gtk_paned_add1 (GTK_PANED (hpaned), frame); button = gtk_button_new_with_mnemonic ("_Hi there"); gtk_container_add (GTK_CONTAINER(frame), button); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_widget_set_size_request (frame, 80, 60); gtk_paned_add2 (GTK_PANED (hpaned), frame); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_widget_set_size_request (frame, 60, 80); gtk_paned_add2 (GTK_PANED (vpaned), frame); /* Now create toggle buttons to control sizing */ gtk_box_pack_start (GTK_BOX (vbox), create_pane_options (GTK_PANED (hpaned), "Horizontal", "Left", "Right"), FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), create_pane_options (GTK_PANED (vpaned), "Vertical", "Top", "Bottom"), FALSE, FALSE, 0); gtk_widget_show_all (vbox); } if (!gtk_widget_get_visible (window)) { gtk_widget_show (window); } else { gtk_widget_destroy (window); window = NULL; } return window; }
[-] clipboard.c
[edit]
[-] demo.ui
[edit]
[-] assistant.c
[edit]
[-] hypertext.c
[edit]
[-] sizegroup.c
[edit]
[-] infobar.c
[edit]
[-] entry_completion.c
[edit]
[-] expander.c
[edit]
[-] gnome-fs-regular.png
[edit]
[-] apple-red.png
[edit]
[-] gnome-gmush.png
[edit]
[-] alphatest.png
[edit]
[+]
..
[-] iconview_edit.c
[edit]
[-] ui_manager.c
[edit]
[-] combobox.c
[edit]
[-] dialog.c
[edit]
[-] rotated_text.c
[edit]
[-] gnu-keys.png
[edit]
[-] list_store.c
[edit]
[-] entry_buffer.c
[edit]
[-] pickers.c
[edit]
[-] spinner.c
[edit]
[-] appwindow.c
[edit]
[-] gnome-applets.png
[edit]
[-] offscreen_window2.c
[edit]
[-] gnome-gsame.png
[edit]
[-] textview.c
[edit]
[-] drawingarea.c
[edit]
[-] printing.c
[edit]
[-] stock_browser.c
[edit]
[-] floppybuddy.gif
[edit]
[-] gnome-foot.png
[edit]
[-] links.c
[edit]
[-] gtk-logo-rgb.gif
[edit]
[-] menus.c
[edit]
[-] gnome-fs-directory.png
[edit]
[-] toolpalette.c
[edit]
[-] colorsel.c
[edit]
[-] textscroll.c
[edit]
[-] offscreen_window.c
[edit]
[-] button_box.c
[edit]
[-] iconview.c
[edit]
[-] pixbufs.c
[edit]
[-] changedisplay.c
[edit]
[-] images.c
[edit]
[-] gnome-calendar.png
[edit]
[-] gnome-gimp.png
[edit]
[-] builder.c
[edit]
[-] background.jpg
[edit]
[-] search_entry.c
[edit]
[-] panes.c
[edit]
[-] tree_store.c
[edit]
[-] editable_cells.c
[edit]