X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=gtk%2Fsrc%2Ficons.c;h=948213de494df33df2748520f0ea627ff6efb02f;hb=9460d9624a5cf24126bc39605bc47d43330fcdf4;hp=af7d84e05923ad30421874ee661f5beb64b24b78;hpb=d96cade527eefbe66e77e46088f26f97c14d7eeb;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/gtk/src/icons.c b/gtk/src/icons.c index af7d84e0..948213de 100644 --- a/gtk/src/icons.c +++ b/gtk/src/icons.c @@ -3,6 +3,46 @@ #include "values.h" #include "resources.h" +#if 0 +void +ghb_load_icons() +{ + GHashTableIter iter; + gchar *name; + GValue *gval; + + GValue *icons = ghb_resource_get("icons"); + ghb_dict_iter_init(&iter, icons); + // middle (void*) cast prevents gcc warning "defreferencing type-punned + // pointer will break strict-aliasing rules" + while (g_hash_table_iter_next( + &iter, (gpointer*)(void*)&name, (gpointer*)(void*)&gval)) + { + gint colorspace, bps, width, height, rowstride; + gboolean alpha; + ghb_rawdata_t *rd; + gint size; + GdkPixbuf *pb; + + colorspace = ghb_value_int(ghb_dict_lookup(gval, "colorspace")); + alpha = ghb_value_boolean(ghb_dict_lookup(gval, "alpha")); + bps = ghb_value_int(ghb_dict_lookup(gval, "bps")); + width = ghb_value_int(ghb_dict_lookup(gval, "width")); + height = ghb_value_int(ghb_dict_lookup(gval, "height")); + rowstride = ghb_value_int(ghb_dict_lookup(gval, "rowstride")); + rd = g_value_get_boxed(ghb_dict_lookup(gval, "data")); + pb = gdk_pixbuf_new_from_data( + rd->data, colorspace, alpha, bps, + width, height, rowstride, + NULL, NULL); + size = gdk_pixbuf_get_height(pb); + gtk_icon_theme_add_builtin_icon(name, size, pb); + gdk_pixbuf_unref(pb); + } +} + +#else + void ghb_load_icons() { @@ -27,3 +67,4 @@ ghb_load_icons() gdk_pixbuf_unref(pb); } } +#endif