gtk-demo: Port appwindow example to resources

This commit is contained in:
Benjamin Otte
2013-01-29 17:14:34 +01:00
parent 4f93194039
commit cf6a40830c
3 changed files with 21 additions and 39 deletions

View File

@ -117,6 +117,7 @@ RESOURCES= application.ui \
theming.ui \ theming.ui \
gtk-logo-24.png \ gtk-logo-24.png \
gtk-logo-48.png \ gtk-logo-48.png \
gtk-logo-rgb.gif \
css_accordion.css \ css_accordion.css \
css_basics.css \ css_basics.css \
css_multiplebgs.css \ css_multiplebgs.css \

View File

@ -82,7 +82,6 @@ about_cb (GtkAction *action,
GtkWidget *window) GtkWidget *window)
{ {
GdkPixbuf *pixbuf, *transparent; GdkPixbuf *pixbuf, *transparent;
gchar *filename;
const gchar *authors[] = { const gchar *authors[] = {
"Peter Mattis", "Peter Mattis",
@ -100,16 +99,11 @@ about_cb (GtkAction *action,
NULL NULL
}; };
pixbuf = NULL; pixbuf = gdk_pixbuf_new_from_resource ("/appwindow/gtk-logo-rgb.gif", NULL);
transparent = NULL; /* We asser the existence of the pixbuf as we load it from a custom resource. */
filename = demo_find_file ("gtk-logo-rgb.gif", NULL); g_assert (pixbuf);
if (filename) transparent = gdk_pixbuf_add_alpha (pixbuf, TRUE, 0xff, 0xff, 0xff);
{ g_object_unref (pixbuf);
pixbuf = gdk_pixbuf_new_from_file (filename, NULL);
g_free (filename);
transparent = gdk_pixbuf_add_alpha (pixbuf, TRUE, 0xff, 0xff, 0xff);
g_object_unref (pixbuf);
}
gtk_show_about_dialog (GTK_WINDOW (window), gtk_show_about_dialog (GTK_WINDOW (window),
"program-name", "GTK+ Code Demos", "program-name", "GTK+ Code Demos",
@ -309,7 +303,8 @@ register_stock_icons (void)
{ {
GdkPixbuf *pixbuf; GdkPixbuf *pixbuf;
GtkIconFactory *factory; GtkIconFactory *factory;
char *filename; GtkIconSet *icon_set;
GdkPixbuf *transparent;
static GtkStockItem items[] = { static GtkStockItem items[] = {
{ "demo-gtk-logo", { "demo-gtk-logo",
@ -326,35 +321,18 @@ register_stock_icons (void)
factory = gtk_icon_factory_new (); factory = gtk_icon_factory_new ();
gtk_icon_factory_add_default (factory); gtk_icon_factory_add_default (factory);
/* demo_find_file() looks in the current directory first, pixbuf = gdk_pixbuf_new_from_resource ("/appwindow/gtk-logo-rgb.gif", NULL);
* so you can run gtk-demo without installing GTK, then looks /* We assert the existence of the pixbuf as we load it from a custom resource. */
* in the location where the file is installed. g_assert (pixbuf);
*/
pixbuf = NULL;
filename = demo_find_file ("gtk-logo-rgb.gif", NULL);
if (filename)
{
pixbuf = gdk_pixbuf_new_from_file (filename, NULL);
g_free (filename);
}
/* Register icon to accompany stock item */ /* The gtk-logo-rgb icon has a white background, make it transparent */
if (pixbuf != NULL) transparent = gdk_pixbuf_add_alpha (pixbuf, TRUE, 0xff, 0xff, 0xff);
{
GtkIconSet *icon_set;
GdkPixbuf *transparent;
/* The gtk-logo-rgb icon has a white background, make it transparent */ icon_set = gtk_icon_set_new_from_pixbuf (transparent);
transparent = gdk_pixbuf_add_alpha (pixbuf, TRUE, 0xff, 0xff, 0xff); gtk_icon_factory_add (factory, "demo-gtk-logo", icon_set);
gtk_icon_set_unref (icon_set);
icon_set = gtk_icon_set_new_from_pixbuf (transparent); g_object_unref (pixbuf);
gtk_icon_factory_add (factory, "demo-gtk-logo", icon_set); g_object_unref (transparent);
gtk_icon_set_unref (icon_set);
g_object_unref (pixbuf);
g_object_unref (transparent);
}
else
g_warning ("failed to load GTK logo for toolbar");
/* Drop our reference to the factory, GTK will hold a reference. */ /* Drop our reference to the factory, GTK will hold a reference. */
g_object_unref (factory); g_object_unref (factory);

View File

@ -8,6 +8,9 @@
<file preprocess="xml-stripblanks">application.ui</file> <file preprocess="xml-stripblanks">application.ui</file>
<file preprocess="xml-stripblanks">menus.ui</file> <file preprocess="xml-stripblanks">menus.ui</file>
</gresource> </gresource>
<gresource prefix="/appwindow">
<file preprocess="to-pixdata">gtk-logo-rgb.gif</file>
</gresource>
<gresource prefix="/"> <gresource prefix="/">
<file>cssview.css</file> <file>cssview.css</file>
<file>reset.css</file> <file>reset.css</file>