static void clear_tip (GtkMenuItem *item, gpointer user_data) { GList *children; GtkWidget *image; GIcon *icon, *icon2; const char *filename; /* Not a stock icon? */ filename = g_object_get_data (G_OBJECT (item), "filename"); if (filename == NULL) return; children = gtk_container_get_children (GTK_CONTAINER (item)); image = children->data; g_assert (image != NULL); g_list_free (children); gtk_image_get_gicon (GTK_IMAGE (image), &icon, NULL); if (G_IS_EMBLEMED_ICON (icon)) icon2 = g_emblemed_icon_get_icon (G_EMBLEMED_ICON (icon)); else return; gtk_image_set_from_gicon (GTK_IMAGE (image), icon2, GTK_ICON_SIZE_DIALOG); g_object_unref (icon); }
static GtkWidget * clone_image_menu_size (GtkImage *image) { GtkImageType storage_type = gtk_image_get_storage_type (image); if (storage_type == GTK_IMAGE_STOCK) { gchar *stock_id; GtkWidget *widget; G_GNUC_BEGIN_IGNORE_DEPRECATIONS; gtk_image_get_stock (image, &stock_id, NULL); widget = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU); G_GNUC_END_IGNORE_DEPRECATIONS; return widget; } else if (storage_type == GTK_IMAGE_ICON_NAME) { const gchar *icon_name; gtk_image_get_icon_name (image, &icon_name, NULL); return gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_MENU); } else if (storage_type == GTK_IMAGE_ICON_SET) { GtkWidget *widget; GtkIconSet *icon_set; G_GNUC_BEGIN_IGNORE_DEPRECATIONS; gtk_image_get_icon_set (image, &icon_set, NULL); widget = gtk_image_new_from_icon_set (icon_set, GTK_ICON_SIZE_MENU); G_GNUC_END_IGNORE_DEPRECATIONS; return widget; } else if (storage_type == GTK_IMAGE_GICON) { GIcon *icon; gtk_image_get_gicon (image, &icon, NULL); return gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_MENU); } else if (storage_type == GTK_IMAGE_PIXBUF) { gint width, height; if (gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &width, &height)) { GdkPixbuf *src_pixbuf, *dest_pixbuf; GtkWidget *cloned_image; src_pixbuf = gtk_image_get_pixbuf (image); dest_pixbuf = gdk_pixbuf_scale_simple (src_pixbuf, width, height, GDK_INTERP_BILINEAR); cloned_image = gtk_image_new_from_pixbuf (dest_pixbuf); g_object_unref (dest_pixbuf); return cloned_image; } } return NULL; }
static void gtk_places_view_row_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { GtkPlacesViewRow *self; GIcon *icon; self = GTK_PLACES_VIEW_ROW (object); icon = NULL; switch (prop_id) { case PROP_ICON: gtk_image_get_gicon (self->icon_image, &icon, NULL); g_value_set_object (value, icon); break; case PROP_NAME: g_value_set_string (value, gtk_label_get_label (self->name_label)); break; case PROP_PATH: g_value_set_string (value, gtk_label_get_label (self->path_label)); break; case PROP_VOLUME: g_value_set_object (value, self->volume); break; case PROP_MOUNT: g_value_set_object (value, self->mount); break; case PROP_FILE: g_value_set_object (value, self->file); break; case PROP_IS_NETWORK: g_value_set_boolean (value, self->is_network); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } }
static void set_tip (GtkWidget *item, const char *tip, GEmblem *emblem) { GList *children; GtkWidget *image; GIcon *icon, *icon2; children = gtk_container_get_children (GTK_CONTAINER (item)); image = children->data; g_assert (image != NULL); g_list_free (children); gtk_image_get_gicon (GTK_IMAGE (image), &icon, NULL); if (G_IS_EMBLEMED_ICON (icon)) { return; } icon2 = g_emblemed_icon_new (icon, emblem); gtk_image_set_from_gicon (GTK_IMAGE (image), icon2, GTK_ICON_SIZE_DIALOG); gtk_widget_set_tooltip_text (GTK_WIDGET (item), tip); }