embed icons into binary
authorMaksym Veremeyenko <verem@m1stereo.tv>
Thu, 30 Oct 2014 13:10:59 +0000 (15:10 +0200)
committerMaksym Veremeyenko <verem@m1stereo.tv>
Thu, 30 Oct 2014 13:10:59 +0000 (15:10 +0200)
src/Makefile.am
src/omnplay.cpp
src/support.c
src/support.h
src/ui.c
src/ui_buttons.c

index 9f3edd4..f852e55 100644 (file)
@@ -20,3 +20,39 @@ omnplay_SOURCES = \
        omnplay.cpp omnplay.h
 
 omnplay_LDADD = @GTHREAD_LIBS@ @GTK_LIBS@ @OM_LIBS@ @CURL_LIBS@ -lpthread
+
+pixmap2_internal = \
+    Axialis_Team_item_add_16x116_png            ../pixmaps/Axialis_Team_item_add_16x116.png \
+    Axialis_Team_item_add_from_library_16x16_png ../pixmaps/Axialis_Team_item_add_from_library_16x16.png \
+    Axialis_Team_item_block_16x116_png          ../pixmaps/Axialis_Team_item_block_16x116.png \
+    Axialis_Team_item_delete_16x116_png         ../pixmaps/Axialis_Team_item_delete_16x116.png \
+    Axialis_Team_item_edit_16x116_png           ../pixmaps/Axialis_Team_item_edit_16x116.png \
+    Axialis_Team_item_loop_16x116_png           ../pixmaps/Axialis_Team_item_loop_16x116.png \
+    Axialis_Team_item_move_down_16x116_png      ../pixmaps/Axialis_Team_item_move_down_16x116.png \
+    Axialis_Team_item_move_up_16x116_png        ../pixmaps/Axialis_Team_item_move_up_16x116.png \
+    Axialis_Team_library_refresh_16x16_png      ../pixmaps/Axialis_Team_library_refresh_16x16.png \
+    Axialis_Team_player_cue_32x32_png           ../pixmaps/Axialis_Team_player_cue_32x32.png \
+    Axialis_Team_player_pause_32x32_png         ../pixmaps/Axialis_Team_player_pause_32x32.png \
+    Axialis_Team_player_play_64x32_png          ../pixmaps/Axialis_Team_player_play_64x32.png \
+    Axialis_Team_player_stop_32x32_png          ../pixmaps/Axialis_Team_player_stop_32x32.png \
+    Axialis_Team_playlist_open_16x16_png        ../pixmaps/Axialis_Team_playlist_open_16x16.png \
+    Axialis_Team_playlist_relink_16x16_png      ../pixmaps/Axialis_Team_playlist_relink_16x16.png \
+    Axialis_Team_playlist_save_16x16_png        ../pixmaps/Axialis_Team_playlist_save_16x16.png \
+    Axialis_Team_search_in_library_16x16_png    ../pixmaps/Axialis_Team_search_in_library_16x16.png \
+    Axialis_Team_search_next_16x16_png          ../pixmaps/Axialis_Team_search_next_16x16.png \
+    block_type_block_end_16x16_png              ../pixmaps/block_type_block_end_16x16.png \
+    block_type_block_loop_16x16_png             ../pixmaps/block_type_block_loop_16x16.png \
+    block_type_block_middle_16x16_png           ../pixmaps/block_type_block_middle_16x16.png \
+    block_type_block_single_16x16_png           ../pixmaps/block_type_block_single_16x16.png \
+    block_type_block_start_16x16_png            ../pixmaps/block_type_block_start_16x16.png \
+    block_type_loop_end_16x16_png               ../pixmaps/block_type_loop_end_16x16.png \
+    block_type_loop_middle_16x16_png            ../pixmaps/block_type_loop_middle_16x16.png \
+    block_type_loop_start_16x16_png             ../pixmaps/block_type_loop_start_16x16.png
+
+CLEANFILES = \
+    pixmap2-internal.h
+
+support.c: pixmap2-internal.h
+
+pixmap2-internal.h:
+       gdk-pixbuf-csource --raw --build-list $(pixmap2_internal) > pixmap2-internal.h
index 718ff74..6189862 100644 (file)
 #include "opts.h"
 #include "timecode.h"
 
+#if defined(_WIN32)
+#include <windows.h>
+#endif
+
 #include "omplrclnt.h"
 
 int omnplay_get_content(omnplay_instance_t* app, playlist_item_t *items, int limit,
index 00aff29..59df077 100644 (file)
 
 #include "support.h"
 
+#include "pixmap2-internal.h"
+
+static const void* pixmap2_map[] =
+{
+    "Axialis_Team_item_add_16x116.png", Axialis_Team_item_add_16x116_png,
+    "Axialis_Team_item_add_from_library_16x16.png", Axialis_Team_item_add_from_library_16x16_png,
+    "Axialis_Team_item_block_16x116.png", Axialis_Team_item_block_16x116_png,
+    "Axialis_Team_item_delete_16x116.png", Axialis_Team_item_delete_16x116_png,
+    "Axialis_Team_item_edit_16x116.png", Axialis_Team_item_edit_16x116_png,
+    "Axialis_Team_item_loop_16x116.png", Axialis_Team_item_loop_16x116_png,
+    "Axialis_Team_item_move_down_16x116.png", Axialis_Team_item_move_down_16x116_png,
+    "Axialis_Team_item_move_up_16x116.png", Axialis_Team_item_move_up_16x116_png,
+    "Axialis_Team_library_refresh_16x16.png", Axialis_Team_library_refresh_16x16_png,
+    "Axialis_Team_player_cue_32x32.png", Axialis_Team_player_cue_32x32_png,
+    "Axialis_Team_player_pause_32x32.png", Axialis_Team_player_pause_32x32_png,
+    "Axialis_Team_player_play_64x32.png", Axialis_Team_player_play_64x32_png,
+    "Axialis_Team_player_stop_32x32.png", Axialis_Team_player_stop_32x32_png,
+    "Axialis_Team_playlist_open_16x16.png", Axialis_Team_playlist_open_16x16_png,
+    "Axialis_Team_playlist_relink_16x16.png", Axialis_Team_playlist_relink_16x16_png,
+    "Axialis_Team_playlist_save_16x16.png", Axialis_Team_playlist_save_16x16_png,
+    "Axialis_Team_search_in_library_16x16.png", Axialis_Team_search_in_library_16x16_png,
+    "Axialis_Team_search_next_16x16.png", Axialis_Team_search_next_16x16_png,
+    "block_type_block_end_16x16.png", block_type_block_end_16x16_png,
+    "block_type_block_loop_16x16.png", block_type_block_loop_16x16_png,
+    "block_type_block_middle_16x16.png", block_type_block_middle_16x16_png,
+    "block_type_block_single_16x16.png", block_type_block_single_16x16_png,
+    "block_type_block_start_16x16.png", block_type_block_start_16x16_png,
+    "block_type_loop_end_16x16.png", block_type_loop_end_16x16_png,
+    "block_type_loop_middle_16x16.png", block_type_loop_middle_16x16_png,
+    "block_type_loop_start_16x16.png", block_type_loop_start_16x16_png,
+    NULL, NULL
+};
+
+GdkPixbuf* create_pixbuf2(const gchar *filename)
+{
+    int i;
+
+    for(i = 0; pixmap2_map[i]; i += 2)
+        if(!strcmp((char*)pixmap2_map[i], filename))
+            return gdk_pixbuf_new_from_inline(-1, pixmap2_map[i + 1], FALSE, NULL);
+
+    return create_pixbuf(filename);
+}
+
+
 GtkWidget*
 lookup_widget                          (GtkWidget       *widget,
                                         const gchar     *widget_name)
index d0935b5..bcd7388 100644 (file)
@@ -64,6 +64,7 @@ GtkWidget*  create_pixmap              (GtkWidget       *widget,
 
 /* This is used to create the pixbufs used in the interface. */
 GdkPixbuf*  create_pixbuf              (const gchar     *filename);
+GdkPixbuf*  create_pixbuf2             (const gchar     *filename);
 
 /* This is used to set ATK action descriptions. */
 void        glade_set_atk_action_description (AtkAction       *action,
index ef4311f..24b7258 100644 (file)
--- a/src/ui.c
+++ b/src/ui.c
@@ -592,21 +592,21 @@ GtkWidget* ui_omnplay (omnplay_instance_t* app)
         FALSE, FALSE, 0);
 
     app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_BLOCK_BEGIN] =
-        create_pixbuf("block_type_block_start_16x16.png");
+        create_pixbuf2("block_type_block_start_16x16.png");
     app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_BLOCK_BODY] =
-        create_pixbuf("block_type_block_middle_16x16.png");
+        create_pixbuf2("block_type_block_middle_16x16.png");
     app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_BLOCK_END] =
-        create_pixbuf("block_type_block_end_16x16.png");
+        create_pixbuf2("block_type_block_end_16x16.png");
     app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_BLOCK_SINGLE] =
-        create_pixbuf("block_type_block_single_16x16.png");
+        create_pixbuf2("block_type_block_single_16x16.png");
     app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_LOOP_BEGIN] =
-        create_pixbuf("block_type_loop_start_16x16.png");
+        create_pixbuf2("block_type_loop_start_16x16.png");
     app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_LOOP_BODY] =
-        create_pixbuf("block_type_loop_middle_16x16.png");
+        create_pixbuf2("block_type_loop_middle_16x16.png");
     app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_LOOP_END] =
-        create_pixbuf("block_type_loop_end_16x16.png");
+        create_pixbuf2("block_type_loop_end_16x16.png");
     app->playlist.block_icons[OMNPLAY_PLAYLIST_ITEM_LOOP_SINGLE] =
-        create_pixbuf("block_type_block_loop_16x16.png");
+        create_pixbuf2("block_type_block_loop_16x16.png");
 
     return wnd;
 }
index e3022cf..1ba433a 100644 (file)
@@ -232,7 +232,7 @@ GtkWidget* ui_create_button(GtkWidget* top, omnplay_instance_t* app, control_but
     if(info->stock)
         image = gtk_image_new_from_stock(info->stock, GTK_ICON_SIZE_MENU);
     else if(info->filename)
-        image = gtk_image_new_from_pixbuf(create_pixbuf(info->filename));
+        image = gtk_image_new_from_pixbuf(create_pixbuf2(info->filename));
     if(image)
     {
         gtk_widget_show(image);