GdkPixbuf object from stock icons

2007-09-23 Thread Zeeshan Ali
Hi!
   I was looking for a non-hackish way of creating a GdkPixbuf object
out of stock icon. The first thing that comes to mind is:

--CODE SNIPPET BEGIN--

image = gtk_image_new_from_stock (stock_id, size);
pixbuf = gtk_image_get_pixbuf (image);

--CODE SNIPPET END-

  However that doesn't work since the created image if of storage type
GTK_IMAGE_STOCK and gtk_image_get_pixbuf() doesn't like that.
Following is the only way i could come up with:

--CODE SNIPPET BEGIN--

image = gtk_image_new ();
pixbuf = gtk_widget_render_icon (image, stock_id, size, NULL);

--CODE SNIPPET END-

This one works quite fine but is obviously hackish, Does anyone
know of any better way of doing the same?

-- 
Regards,

Zeeshan Ali
FSF member#5124
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


GdkPixbuf object from stock icons

2007-09-22 Thread Zeeshan Ali
Hi!
  I was looking for a non-hackish way of creating a GdkPixbuf object
out of stock icon. The first thing that comes to mind is:

--CODE SNIPPET BEGIN--

image = gtk_image_new_from_stock (stock_id, size);
pixbuf = gtk_image_get_pixbuf (image);

--CODE SNIPPET END-

 However that doesn't work since the created image if of storage type
GTK_IMAGE_STOCK and gtk_image_get_pixbuf() doesn't like that.
Following is the only way i could come up with:

--CODE SNIPPET BEGIN--

image = gtk_image_new ();
pixbuf = gtk_widget_render_icon (image, stock_id, size, NULL);

--CODE SNIPPET END-

   This one works quite fine but is obviously hackish, Does anyone
know of any better way of doing the same?

-- 
Regards,

Zeeshan Ali
FSF member#5124
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: GdkPixbuf object from stock icons

2007-09-22 Thread Yeti
On Sat, Sep 22, 2007 at 03:17:51PM +0300, Zeeshan Ali wrote:
   I was looking for a non-hackish way of creating a GdkPixbuf object
 out of stock icon. The first thing that comes to mind is:
 
 --CODE SNIPPET BEGIN--
 
 image = gtk_image_new_from_stock (stock_id, size);
 pixbuf = gtk_image_get_pixbuf (image);
 
 --CODE SNIPPET END-
 
  However that doesn't work since the created image if of storage type
 GTK_IMAGE_STOCK and gtk_image_get_pixbuf() doesn't like that.

Yes, the image is not backed by a pixbuf therefore it cannot
return it (a GtkImage method to render the image to a pixbuf
whatever it is backed with could be perhaps written, but it
would be something different).

 Following is the only way i could come up with:
 
 --CODE SNIPPET BEGIN--
 
 image = gtk_image_new ();
 pixbuf = gtk_widget_render_icon (image, stock_id, size, NULL);
 
 --CODE SNIPPET END-
 
This one works quite fine but is obviously hackish, Does anyone
 know of any better way of doing the same?

Not so obviously.  The primary difficulty is that your
problem is ill-posed.  The stock icon look is affected by
theme, state and whatnot.  It can even differ for different
widgets.

So depending on your preferred amount of manual work you
have the choice of

  gtk_widget_render_icon()
  gtk_icon_set_render_icon()
  gtk_style_render_icon()

The most raw method is

  gtk_icon_theme_lookup_icon() +  gtk_icon_info_load_icon()

However, the icon will probably end up rendered on some
widget -- and then use gtk_widget_render_icon() for this
widget.

Yeti

--
http://gwyddion.net/
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: GdkPixbuf object from stock icons

2007-09-22 Thread Zeeshan Ali
Hi!

 Not so obviously.  The primary difficulty is that your
 problem is ill-posed.  The stock icon look is affected by
 theme, state and whatnot.  It can even differ for different
 widgets.

   I know that and that is why i only using the stock icons where the
change of actual icon image doesn't make any difference to the user of
my app. i-e use GTK_STOCK_DIRECTORY to represent a directory.

 So depending on your preferred amount of manual work you
 have the choice of

   gtk_widget_render_icon()
   gtk_icon_set_render_icon()
   gtk_style_render_icon()

 The most raw method is

   gtk_icon_theme_lookup_icon() +  gtk_icon_info_load_icon()

   I thought icon theme is different from stock icons?

-- 
Regards,

Zeeshan Ali
FSF member#5124
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list