[Xfce4-commits] <midori:master> Map Maemo icons to stock icons

Christian Dywan noreply at xfce.org
Mon Oct 26 02:32:06 CET 2009


Updating branch refs/heads/master
         to 66079c987b5373a43bce7241451820e477e56e47 (commit)
       from 3257002de33b994351b579994400e181d3f7062c (commit)

commit 66079c987b5373a43bce7241451820e477e56e47
Author: Christian Dywan <christian at twotoasts.de>
Date:   Mon Oct 26 00:18:56 2009 +0100

    Map Maemo icons to stock icons

 midori/midori-stock.h |    7 +++++
 midori/sokoke.c       |   64 ++++++++++++++++++++++++++++++++++++++++++------
 2 files changed, 63 insertions(+), 8 deletions(-)

diff --git a/midori/midori-stock.h b/midori/midori-stock.h
index 5e5f86a..a2e0f02 100644
--- a/midori/midori-stock.h
+++ b/midori/midori-stock.h
@@ -43,4 +43,11 @@
 #define STOCK_USER_TRASH         "gnome-stock-trash"
 #define STOCK_WINDOW_NEW         "stock_new-window"
 
+#if defined (HAVE_HILDON) && HAVE_HILDON
+    #undef STOCK_BOOKMARKS
+    #define STOCK_BOOKMARKS "general_mybookmarks_folder"
+    #undef STOCK_NEWS_FEED
+    #define STOCK_NEWS_FEED "general_rss"
+#endif
+
 #endif /* !__MIDORI_STOCK_H__ */
diff --git a/midori/sokoke.c b/midori/sokoke.c
index 0a1268d..4f6f2cd 100644
--- a/midori/sokoke.c
+++ b/midori/sokoke.c
@@ -11,14 +11,14 @@
 */
 
 #include "sokoke.h"
-#include "midori-stock.h"
-
-#include "compat.h"
 
 #if HAVE_CONFIG_H
     #include <config.h>
 #endif
 
+#include "compat.h"
+#include "midori-stock.h"
+
 #if HAVE_UNISTD_H
     #include <unistd.h>
 #endif
@@ -916,6 +916,11 @@ sokoke_time_t_to_julian (const time_t* timestamp)
 void
 sokoke_register_stock_items (void)
 {
+    GtkIconSource* icon_source;
+    GtkIconSet* icon_set;
+    GtkIconFactory* factory;
+    gsize i;
+
     typedef struct
     {
         const gchar* stock_id;
@@ -924,11 +929,6 @@ sokoke_register_stock_items (void)
         guint keyval;
         const gchar* fallback;
     } FatStockItem;
-    GtkIconSource* icon_source;
-    GtkIconSet* icon_set;
-    GtkIconFactory* factory = gtk_icon_factory_new ();
-    gsize i;
-
     static FatStockItem items[] =
     {
         { STOCK_EXTENSION, NULL, 0, 0, GTK_STOCK_CONVERT },
@@ -954,6 +954,7 @@ sokoke_register_stock_items (void)
         { STOCK_WINDOW_NEW,     N_("New _Window"), 0, 0, GTK_STOCK_ADD },
     };
 
+    factory = gtk_icon_factory_new ();
     for (i = 0; i < G_N_ELEMENTS (items); i++)
     {
         icon_set = gtk_icon_set_new ();
@@ -973,6 +974,53 @@ sokoke_register_stock_items (void)
     gtk_stock_add ((GtkStockItem*)items, G_N_ELEMENTS (items));
     gtk_icon_factory_add_default (factory);
     g_object_unref (factory);
+
+    #if HAVE_HILDON
+    /* Maemo doesn't theme stock icons. So we map platform icons
+        to stock icons. These are all monochrome toolbar icons. */
+    typedef struct
+    {
+        const gchar* stock_id;
+        const gchar* icon_name;
+    } CompatItem;
+    static CompatItem compat_items[] =
+    {
+        { GTK_STOCK_ADD,        "general_add" },
+        { GTK_STOCK_BOLD,       "general_bold" },
+        { GTK_STOCK_CLOSE,      "general_close_b" },
+        { GTK_STOCK_DELETE,     "general_delete" },
+        { GTK_STOCK_FIND,       "general_search" },
+        { GTK_STOCK_FULLSCREEN, "general_fullsize_b" },
+        { GTK_STOCK_GO_BACK,    "general_back" },
+        { GTK_STOCK_GO_FORWARD, "general_forward" },
+        { GTK_STOCK_GO_UP,      "filemanager_folder_up" },
+        { GTK_STOCK_GOTO_FIRST, "pdf_viewer_first_page" },
+        { GTK_STOCK_GOTO_LAST,  "pdf_viewer_last_page" },
+        { GTK_STOCK_INFO,       "general_information" },
+        { GTK_STOCK_ITALIC,     "general_italic" },
+        { GTK_STOCK_JUMP_TO,    "general_move_to_folder" },
+        { GTK_STOCK_REFRESH,    "general_refresh" },
+        { GTK_STOCK_SAVE,       "notes_save" },
+        { GTK_STOCK_STOP,       "general_stop" },
+        { GTK_STOCK_UNDERLINE,  "notes_underline" },
+        { GTK_STOCK_ZOOM_IN,    "pdf_zoomin" },
+        { GTK_STOCK_ZOOM_OUT,   "pdf_zoomout" },
+    };
+
+    factory = gtk_icon_factory_new ();
+    for (i = 0; i < G_N_ELEMENTS (compat_items); i++)
+    {
+        icon_set = gtk_icon_set_new ();
+        icon_source = gtk_icon_source_new ();
+        gtk_icon_source_set_icon_name (icon_source, compat_items[i].icon_name);
+        gtk_icon_set_add_source (icon_set, icon_source);
+        gtk_icon_source_free (icon_source);
+        gtk_icon_factory_add (factory, compat_items[i].stock_id, icon_set);
+        gtk_icon_set_unref (icon_set);
+    }
+    gtk_icon_factory_add_default (factory);
+    g_object_unref (factory);
+    #endif
 }
 
 /**



More information about the Xfce4-commits mailing list