Updating branch refs/heads/master to 52f2c69912b5c503f2307a280db32cee23f77529 (commit) from 40bda5ac7af96684177512a87436796b205f713e (commit)
commit 52f2c69912b5c503f2307a280db32cee23f77529 Author: Nick Schermer <n...@xfce.org> Date: Tue May 31 21:06:30 2011 +0200 Change packing. .../merge-with-xfrun/demo-code/c/Makefile | 2 +- .../demo-code/c/appfinder-window.c | 100 ++++++++++++++------ 2 files changed, 73 insertions(+), 29 deletions(-) diff --git a/xfce4-appfinder/merge-with-xfrun/demo-code/c/Makefile b/xfce4-appfinder/merge-with-xfrun/demo-code/c/Makefile index b92b7db..794912b 100644 --- a/xfce4-appfinder/merge-with-xfrun/demo-code/c/Makefile +++ b/xfce4-appfinder/merge-with-xfrun/demo-code/c/Makefile @@ -1,6 +1,6 @@ all: - gcc -Wall -Werror -O0 -g -ggdb -pipe \ + gcc -Wall -Werror -O2 -pipe \ `pkg-config --libs --cflags gtk+-2.0` \ `pkg-config --libs --cflags libxfce4util-1.0` \ `pkg-config --libs --cflags garcon-1` \ diff --git a/xfce4-appfinder/merge-with-xfrun/demo-code/c/appfinder-window.c b/xfce4-appfinder/merge-with-xfrun/demo-code/c/appfinder-window.c index eff77dc..1ad6fd8 100644 --- a/xfce4-appfinder/merge-with-xfrun/demo-code/c/appfinder-window.c +++ b/xfce4-appfinder/merge-with-xfrun/demo-code/c/appfinder-window.c @@ -9,11 +9,15 @@ -static void xfce_appfinder_window_finalize (GObject *object); -static void xfce_appfinder_window_entry_icon_released (GtkEntry *entry, - GtkEntryIconPosition icon_pos, - GdkEvent *event, - XfceAppfinderWindow *window); +static void xfce_appfinder_window_finalize (GObject *object); +static void xfce_appfinder_window_set_padding (GtkWidget *entry, + GtkWidget *align); +static GtkWidget *xfce_appfinder_window_buttonbox (void); +static void xfce_appfinder_window_entry_icon_released (GtkEntry *entry, + GtkEntryIconPosition icon_pos, + GdkEvent *event, + XfceAppfinderWindow *window); + struct _XfceAppfinderWindowClass @@ -28,6 +32,8 @@ struct _XfceAppfinderWindow GtkWidget *paned; GtkWidget *entry; GtkWidget *vbox; + GtkWidget *bbox1; + GtkWidget *bbox2; }; @@ -50,16 +56,15 @@ xfce_appfinder_window_class_init (XfceAppfinderWindowClass *klass) static void xfce_appfinder_window_init (XfceAppfinderWindow *window) { - GtkWidget *vbox; + GtkWidget *vbox, *vbox2; GtkWidget *entry; GtkWidget *pane; GtkWidget *scroll; GtkWidget *sidepane; - GtkWidget *bbox; - GtkWidget *button; GtkWidget *treeview; GtkWidget *image; GtkWidget *hbox; + GtkWidget *align; /*GtkTreeViewColumn *column; GtkCellRenderer *renderer;*/ @@ -68,7 +73,7 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window) gtk_window_set_icon_name (GTK_WINDOW (window), GTK_STOCK_EXECUTE); g_signal_connect (G_OBJECT (window), "delete-event", G_CALLBACK (gtk_main_quit), NULL); - window->vbox = vbox = gtk_vbox_new (FALSE, 0); + window->vbox = vbox = gtk_vbox_new (FALSE, 6); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 6); gtk_widget_show (vbox); @@ -77,16 +82,31 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window) gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0); gtk_widget_show (hbox); - image = gtk_image_new_from_icon_name ("terminal", GTK_ICON_SIZE_DIALOG); - gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0); + align = gtk_alignment_new (0.5, 0.0, 0.0, 0.0); + gtk_box_pack_start (GTK_BOX (hbox), align, FALSE, FALSE, 0); + gtk_widget_show (align); + + image = gtk_image_new_from_icon_name ("preferences-desktop-theme", GTK_ICON_SIZE_DIALOG); + gtk_container_add (GTK_CONTAINER (align), image); gtk_widget_show (image); + vbox2 = gtk_vbox_new (FALSE, 6); + gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 0); + gtk_widget_show (vbox2); + + align = gtk_alignment_new (0.0, 0.0, 1.0, 0.0); + gtk_box_pack_start (GTK_BOX (vbox2), align, TRUE, TRUE, 0); + gtk_widget_show (align); + window->entry = entry = gtk_entry_new (); - gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); - g_signal_connect (G_OBJECT (entry), "icon-release", - G_CALLBACK (xfce_appfinder_window_entry_icon_released), window); + gtk_container_add (GTK_CONTAINER (align), entry); + g_signal_connect (G_OBJECT (entry), "icon-release", G_CALLBACK (xfce_appfinder_window_entry_icon_released), window); + g_signal_connect (G_OBJECT (entry), "realize", G_CALLBACK (xfce_appfinder_window_set_padding), align); gtk_widget_show (entry); + window->bbox1 = xfce_appfinder_window_buttonbox (); + gtk_box_pack_start (GTK_BOX (vbox2), window->bbox1, FALSE, TRUE, 0); + window->paned = pane = gtk_hpaned_new (); gtk_box_pack_start (GTK_BOX (vbox), pane, TRUE, TRUE, 0); gtk_paned_set_position (GTK_PANED (pane), 180 /* todo remember */); @@ -143,16 +163,47 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window) column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "markup", XFCE_APPFINDER_MODEL_COLUMN_NAME, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), GTK_TREE_VIEW_COLUMN (column));*/ + window->bbox2 = xfce_appfinder_window_buttonbox (); + gtk_box_pack_start (GTK_BOX (vbox), window->bbox2, FALSE, TRUE, 0); +} + + + +static void +xfce_appfinder_window_finalize (GObject *object) +{ + //XfceAppfinderWindow *window = XFCE_APPFINDER_WINDOW (object); + + (*G_OBJECT_CLASS (xfce_appfinder_window_parent_class)->finalize) (object); +} + + + +static void +xfce_appfinder_window_set_padding (GtkWidget *entry, + GtkWidget *align) +{ + gint padding; + + padding = (48 - entry->allocation.height) / 2; + gtk_alignment_set_padding (GTK_ALIGNMENT (align), MAX (0, padding), 0, 0, 0); +} + +static GtkWidget * +xfce_appfinder_window_buttonbox (void) +{ + + GtkWidget *image; + GtkWidget *button; + GtkWidget *bbox; + bbox = gtk_hbutton_box_new (); - gtk_box_pack_start (GTK_BOX (vbox), bbox, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), GTK_BUTTONBOX_END); gtk_button_box_set_spacing (GTK_BUTTON_BOX (bbox), 6); - gtk_widget_show (bbox); button = gtk_button_new_from_stock (GTK_STOCK_CLOSE); gtk_container_add (GTK_CONTAINER (bbox), button); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (gtk_main_quit), NULL); + g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (gtk_main_quit), NULL); gtk_widget_show (button); button = gtk_button_new_with_mnemonic ("La_unch"); @@ -162,16 +213,8 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window) image = gtk_image_new_from_stock (GTK_STOCK_EXECUTE, GTK_ICON_SIZE_BUTTON); gtk_button_set_image (GTK_BUTTON (button), image); gtk_widget_show (image); -} - - -static void -xfce_appfinder_window_finalize (GObject *object) -{ - //XfceAppfinderWindow *window = XFCE_APPFINDER_WINDOW (object); - - (*G_OBJECT_CLASS (xfce_appfinder_window_parent_class)->finalize) (object); + return bbox; } @@ -217,7 +260,8 @@ xfce_appfinder_window_set_expanded (XfceAppfinderWindow *window, } gtk_widget_set_visible (window->paned, expanded); - gtk_box_set_spacing (GTK_BOX (window->vbox), expanded ? 6 : 0); + gtk_widget_set_visible (window->bbox1, !expanded); + gtk_widget_set_visible (window->bbox2, expanded); gtk_entry_set_icon_from_icon_name (GTK_ENTRY (window->entry), GTK_ENTRY_ICON_SECONDARY, expanded ? GTK_STOCK_GO_UP : GTK_STOCK_GO_DOWN); gtk_entry_set_icon_tooltip_text (GTK_ENTRY (window->entry), GTK_ENTRY_ICON_SECONDARY, _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits