[gthumb] added ability to add extra widgets to the filterbar



commit 956d857d6bc20c0c08bf1ee01ab8f674df4dd143
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Sun Jul 14 12:07:33 2013 +0200

    added ability to add extra widgets to the filterbar

 gthumb/gth-filterbar.c |   36 +++++++++++++-----------------------
 gthumb/gth-filterbar.h |   15 ++++++++-------
 2 files changed, 21 insertions(+), 30 deletions(-)
---
diff --git a/gthumb/gth-filterbar.c b/gthumb/gth-filterbar.c
index fcaacb3..2da03f2 100644
--- a/gthumb/gth-filterbar.c
+++ b/gthumb/gth-filterbar.c
@@ -60,6 +60,7 @@ struct _GthFilterbarPrivate
        GthTest      *test;
        GtkWidget    *control_box;
        GtkWidget    *control;
+       GtkWidget    *extra_area;
        GtkTreeIter   current_iter;
        gulong        filters_changed_id;
        gulong        test_changed_id;
@@ -147,14 +148,6 @@ gth_filterbar_changed (GthFilterbar *filterbar)
 
 
 static void
-close_button_clicked_cb (GtkWidget    *button,
-                        GthFilterbar *filterbar)
-{
-       g_signal_emit (filterbar, gth_filterbar_signals[CLOSE_BUTTON_CLICKED], 0);
-}
-
-
-static void
 _gth_filterbar_set_test_control (GthFilterbar *filterbar,
                                  GtkWidget    *control)
 {
@@ -345,8 +338,6 @@ gth_filterbar_construct (GthFilterbar *filterbar,
 {
        GtkCellRenderer *renderer;
        GtkWidget       *label;
-       GtkWidget       *button;
-       GtkWidget       *image;
 
        gtk_box_set_spacing (GTK_BOX (filterbar), 6);
        gtk_container_set_border_width (GTK_CONTAINER (filterbar), 2);
@@ -403,18 +394,10 @@ gth_filterbar_construct (GthFilterbar *filterbar,
        filterbar->priv->control_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
        gtk_widget_show (filterbar->priv->control_box);
 
-       /* close button */
-
-       button = gtk_button_new ();
-       image = gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU);
-       gtk_container_add (GTK_CONTAINER (button), image);
-       gtk_widget_hide (button);
-       gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
-       gtk_widget_set_tooltip_text (button, _("Hide the filterbar"));
-       g_signal_connect (G_OBJECT (button),
-                         "clicked",
-                         G_CALLBACK (close_button_clicked_cb),
-                         filterbar);
+       /* extra widgets container */
+
+       filterbar->priv->extra_area = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+       gtk_widget_show (filterbar->priv->extra_area);
 
        /* view label */
 
@@ -433,7 +416,7 @@ gth_filterbar_construct (GthFilterbar *filterbar,
        gtk_box_pack_start (GTK_BOX (filterbar), label, FALSE, FALSE, 0);
        gtk_box_pack_start (GTK_BOX (filterbar), filterbar->priv->test_combo_box, FALSE, FALSE, 0);
        gtk_box_pack_start (GTK_BOX (filterbar), filterbar->priv->control_box, FALSE, FALSE, 0);
-       gtk_box_pack_end (GTK_BOX (filterbar), button, FALSE, FALSE, 0);
+       gtk_box_pack_end (GTK_BOX (filterbar), filterbar->priv->extra_area, FALSE, FALSE, 0);
 }
 
 
@@ -567,3 +550,10 @@ gth_filterbar_load_filter (GthFilterbar *filterbar,
        g_free (buffer);
        g_object_unref (filter_file);
 }
+
+
+GtkWidget *
+gth_filterbar_get_extra_area (GthFilterbar *filterbar)
+{
+       return filterbar->priv->extra_area;
+}
diff --git a/gthumb/gth-filterbar.h b/gthumb/gth-filterbar.h
index 3b9ac3b..5917aac 100644
--- a/gthumb/gth-filterbar.h
+++ b/gthumb/gth-filterbar.h
@@ -55,13 +55,14 @@ struct _GthFilterbarClass
        void (* close_button_clicked) (GthFilterbar *filterbar);
 };
 
-GType         gth_filterbar_get_type    (void) G_GNUC_CONST;
-GtkWidget *   gth_filterbar_new         (const char   *selected_filter);
-GthTest *     gth_filterbar_get_test    (GthFilterbar *filterbar);
-void          gth_filterbar_save_filter (GthFilterbar *filterbar,
-                                        const char   *filename);
-void          gth_filterbar_load_filter (GthFilterbar *filterbar,
-                                        const char   *filename);
+GType         gth_filterbar_get_type           (void) G_GNUC_CONST;
+GtkWidget *   gth_filterbar_new                        (const char   *selected_filter);
+GthTest *     gth_filterbar_get_test           (GthFilterbar *filterbar);
+void          gth_filterbar_save_filter                (GthFilterbar *filterbar,
+                                                const char   *filename);
+void          gth_filterbar_load_filter                (GthFilterbar *filterbar,
+                                                const char   *filename);
+GtkWidget *   gth_filterbar_get_extra_area     (GthFilterbar *filterbar);
 
 G_END_DECLS
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]