X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=gtk%2Fsrc%2Ficons.c;h=948213de494df33df2748520f0ea627ff6efb02f;hb=0884cb45aeeb60a46effe1d1056a61fe68300ea7;hp=3d4e7ef0b714558233c6a42cc8cf8b56f6d0271d;hpb=07cc0ebf6a7141a76fd9b6e2da6cf510def1ebc7;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/gtk/src/icons.c b/gtk/src/icons.c index 3d4e7ef0..948213de 100644 --- a/gtk/src/icons.c +++ b/gtk/src/icons.c @@ -1,102 +1,70 @@ #include -#include "hb-activity.32.h" -#include "hb-add-queue.32.h" -#include "hb-canceled.16.h" -#include "hb-complete.16.h" -#include "hb-drawer.32.h" -#include "hb-icon.128.h" -#include "hb-icon.64.h" -#include "hb-pause.32.h" -#include "hb-play.32.h" -#include "hb-pref.32.h" -#include "hb-queue.32.h" -#include "hb-queue-delete.16.h" -#include "hb-queue-job.16.h" -#include "hb-queue-pass1.16.h" -#include "hb-queue-pass2.16.h" -#include "hb-queue-subtitle.16.h" -#include "hb-remove.32.h" -#include "hb-source.32.h" -#include "hb-stop.32.h" -#include "hb-working0.16.h" -#include "hb-working1.16.h" -#include "hb-working2.16.h" -#include "hb-working3.16.h" -#include "hb-working4.16.h" -#include "hb-working5.16.h" +#include "icon_tools.h" +#include "values.h" +#include "resources.h" +#if 0 void ghb_load_icons() { - GdkPixbuf *pb; - - pb = gdk_pixbuf_new_from_inline(-1, hb_activity32, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-activity", 32, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_add_queue32, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-add-queue", 32, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_canceled16, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-canceled", 16, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_complete16, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-complete", 16, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_drawer32, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-drawer", 32, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_icon128, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-icon", 128, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_play32, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-play", 32, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_pref32, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-pref", 32, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_queue32, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-queue", 32, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_queue_delete16, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-queue-delete", 16, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_queue_job16, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-queue-job", 16, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_queue_pass1, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-queue-pass1", 16, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_queue_pass2, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-queue-pass2", 16, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_queue_subtitle16, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-queue-subtitle", 16, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_remove32, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-remove", 32, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_source32, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-source", 32, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_stop32, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-stop", 32, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_working0, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-working0", 16, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_working1, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-working1", 16, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_working2, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-working2", 16, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_working3, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-working3", 16, pb); - - pb = gdk_pixbuf_new_from_inline(-1, hb_working4, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-working4", 16, pb); + 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); + } +} - pb = gdk_pixbuf_new_from_inline(-1, hb_working5, FALSE, NULL); - gtk_icon_theme_add_builtin_icon("hb-working5", 16, pb); +#else +void +ghb_load_icons() +{ + GdkPixbuf *pb; + GHashTableIter iter; + gchar *name; + GValue *gval; + ghb_rawdata_t *rd; + gint size; + + 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)) + { + rd = g_value_get_boxed(gval); + pb = icon_deserialize(rd->data, rd->size); + size = gdk_pixbuf_get_height(pb); + gtk_icon_theme_add_builtin_icon(name, size, pb); + gdk_pixbuf_unref(pb); + } } +#endif