[gtk+] Add gtk_button_new_from_icon_name



commit 2f77a61e61d6eb1d99f74b262c63059726a2ec08
Author: Yosef Or Boczko <yoseforb gmail com>
Date:   Wed Aug 14 10:41:42 2013 +0300

    Add gtk_button_new_from_icon_name
    
    This function is a convenience wrapper around
    gtk_button_new() and gtk_button_set_image().
    
    https://bugzilla.gnome.org/show_bug.cgi?id=705918
    
    Signed-off-by: Yosef Or Boczko <yoseforb gmail com>

 docs/reference/gtk/gtk3-sections.txt |    1 +
 gtk/gtkbutton.c                      |   36 ++++++++++++++++++++++++++++++++++
 gtk/gtkbutton.h                      |    3 ++
 3 files changed, 40 insertions(+), 0 deletions(-)
---
diff --git a/docs/reference/gtk/gtk3-sections.txt b/docs/reference/gtk/gtk3-sections.txt
index 9da9ada..affd743 100644
--- a/docs/reference/gtk/gtk3-sections.txt
+++ b/docs/reference/gtk/gtk3-sections.txt
@@ -636,6 +636,7 @@ GtkButton
 gtk_button_new
 gtk_button_new_with_label
 gtk_button_new_with_mnemonic
+gtk_button_new_from_icon_name
 gtk_button_new_from_stock
 gtk_button_pressed
 gtk_button_released
diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c
index 7396cb8..3074e7e 100644
--- a/gtk/gtkbutton.c
+++ b/gtk/gtkbutton.c
@@ -1298,6 +1298,42 @@ gtk_button_new_with_label (const gchar *label)
 }
 
 /**
+ * gtk_button_new_from_icon_name:
+ * @icon_name: an icon name
+ * @size: (type int): an icon size
+ *
+ * Creates a new #GtkButton containing an icon from the current icon theme.
+ * 
+ * If the icon name isn't known, a "broken image" icon will be
+ * displayed instead. If the current icon theme is changed, the icon
+ * will be updated appropriately.
+ * 
+ * This function is a convenience wrapper around gtk_button_new() and
+ * gtk_button_set_image().
+ * 
+ * Returns: a new #GtkButton displaying the themed icon
+ * 
+ * Since: 3.10
+ **/
+GtkWidget*
+gtk_button_new_from_icon_name (const gchar *icon_name,
+                              GtkIconSize  size)
+{
+  GtkStyleContext *context;
+  GtkWidget *button;
+  GtkWidget *image;
+
+  image = gtk_image_new_from_icon_name (icon_name, size);
+  button =  g_object_new (GTK_TYPE_BUTTON,
+                         "image", image,
+                         NULL);
+  context = gtk_widget_get_style_context (button);
+  gtk_style_context_add_class (context, "image-button"));
+
+  return button;
+}
+
+/**
  * gtk_button_new_from_stock:
  * @stock_id: the name of the stock item 
  *
diff --git a/gtk/gtkbutton.h b/gtk/gtkbutton.h
index 7c31994..1837988 100644
--- a/gtk/gtkbutton.h
+++ b/gtk/gtkbutton.h
@@ -80,6 +80,9 @@ GDK_AVAILABLE_IN_ALL
 GtkWidget*     gtk_button_new               (void);
 GDK_AVAILABLE_IN_ALL
 GtkWidget*     gtk_button_new_with_label    (const gchar    *label);
+GDK_AVAILABLE_IN_3_10
+GtkWidget*     gtk_button_new_from_icon_name (const gchar    *icon_name,
+                                             GtkIconSize     size);
 GDK_DEPRECATED_IN_3_10_FOR(gtk_button_new_with_label)
 GtkWidget*     gtk_button_new_from_stock    (const gchar    *stock_id);
 GDK_AVAILABLE_IN_ALL


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