[gtk+] Add gtk_button_new_from_icon_name
- From: Yosef Or Boczko <yoseforb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Add gtk_button_new_from_icon_name
- Date: Wed, 14 Aug 2013 07:42:46 +0000 (UTC)
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]