r308 - in trunk/src/target/OM-2007/openmoko-libs: . data libmokoui

mickey at gta01.hmw-consulting.de mickey at gta01.hmw-consulting.de
Tue Dec 5 19:59:34 CET 2006


Author: mickey
Date: 2006-12-05 18:59:33 +0000 (Tue, 05 Dec 2006)
New Revision: 308

Added:
   trunk/src/target/OM-2007/openmoko-libs/data/
   trunk/src/target/OM-2007/openmoko-libs/data/icons
   trunk/src/target/OM-2007/openmoko-libs/data/openmoko-default-application.png
Modified:
   trunk/src/target/OM-2007/openmoko-libs/configure.ac
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/Makefile.am
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/libmokoui.pro
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-application.c
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-application.h
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-menu-box.c
Log:
mokoui: start with common icon handling


Modified: trunk/src/target/OM-2007/openmoko-libs/configure.ac
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/configure.ac	2006-12-05 09:26:55 UTC (rev 307)
+++ trunk/src/target/OM-2007/openmoko-libs/configure.ac	2006-12-05 18:59:33 UTC (rev 308)
@@ -1,5 +1,5 @@
 AC_PREREQ(2.53)
-AC_INIT(libopenmoko, 0.0.1, http://www.openmoko.org/)
+AC_INIT(openmoko-libs, 0.0.1, http://www.openmoko.org/)
 AM_INIT_AUTOMAKE()
 AC_CONFIG_SRCDIR(libmokoui/moko-window.c)
 AM_CONFIG_HEADER(config.h)

Added: trunk/src/target/OM-2007/openmoko-libs/data/icons
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/data/icons	2006-12-05 09:26:55 UTC (rev 307)
+++ trunk/src/target/OM-2007/openmoko-libs/data/icons	2006-12-05 18:59:33 UTC (rev 308)
@@ -0,0 +1 @@
+link .
\ No newline at end of file


Property changes on: trunk/src/target/OM-2007/openmoko-libs/data/icons
___________________________________________________________________
Name: svn:special
   + *

Added: trunk/src/target/OM-2007/openmoko-libs/data/openmoko-default-application.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/target/OM-2007/openmoko-libs/data/openmoko-default-application.png
___________________________________________________________________
Name: svn:mime-type
   + image/png

Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/Makefile.am
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/Makefile.am	2006-12-05 09:26:55 UTC (rev 307)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/Makefile.am	2006-12-05 18:59:33 UTC (rev 308)
@@ -6,12 +6,12 @@
     moko-finger-window.h \
     moko-fixed.h \
     moko-menu-box.h \
+    moko-navigation-list.h \
     moko-pixmap-button.h \
     moko-paned-window.h \
     moko-search-bar.h \
     moko-tool-box.h \
     moko-tree-view.h \
-    moko-navigation-list.h \
     moko-window.h
 
 source_c = \
@@ -22,18 +22,21 @@
     moko-finger-window.c \
     moko-fixed.c \
     moko-menu-box.c \
+    moko-navigation-list.c \
     moko-pixmap-button.c \
     moko-paned-window.c \
     moko-search-bar.c \
     moko-tree-view.c \
     moko-tool-box.c \
-    moko-navigation-list.c \
     moko-window.c
 
 DATADIR=$(datadir)
 
-AM_CFLAGS = -Wall -pedantic -std=c99 -DDATADIR=\"$(datadir)\libopenmoko\"
+AM_CPPFLAGS = -DDATADIR=\"$(datadir)\" \
+              -DPKGDATADIR=\"$(pkgdatadir)\"
 
+AM_CFLAGS = -Wall -pedantic -std=c99
+
 lib_LTLIBRARIES      = libmokoui.la
 libmokoui_la_SOURCES     = $(source_c) $(source_h)
 libmokoui_la_LIBADD      =

Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/libmokoui.pro
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/libmokoui.pro	2006-12-05 09:26:55 UTC (rev 307)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/libmokoui.pro	2006-12-05 18:59:33 UTC (rev 308)
@@ -10,6 +10,7 @@
     moko-finger-window.h \
     moko-fixed.h \
     moko-menu-box.h \
+    moko-nativation-list.h \
     moko-pixmap-button.h \
     moko-paned-window.h \
     moko-search-bar.h \
@@ -25,6 +26,7 @@
     moko-finger-window.c \
     moko-fixed.c \
     moko-menu-box.c \
+    moko-navigation-list.c \
     moko-pixmap-button.c \
     moko-paned-window.c \
     moko-search-bar.c \

Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-application.c
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-application.c	2006-12-05 09:26:55 UTC (rev 307)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-application.c	2006-12-05 18:59:33 UTC (rev 308)
@@ -18,10 +18,22 @@
  */
 #include "moko-application.h"
 
+#include <gtk/gtkiconfactory.h>
+
+#include <gdk/gdkx.h>
+
 #include <X11/Xlib.h>
 #include <X11/Xatom.h>
-#include <gdk/gdkx.h>
 
+#include <stdarg.h>
+
+#define DEBUG_THIS_FILE
+#ifdef DEBUG_THIS_FILE
+#define moko_debug(fmt,...) g_debug(fmt,##__VA_ARGS__)
+#else
+#define moko_debug(fmt,...)
+#endif
+
 G_DEFINE_TYPE (MokoApplication, moko_application, G_TYPE_OBJECT)
 
 #define MOKO_APPLICATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MOKO_TYPE_APPLICATION, MokoApplicationPrivate));
@@ -41,6 +53,7 @@
 
     // our stuff
     MokoWindow* main_window;
+    GtkIconFactory* icon_factory;
 
 } MokoApplicationPrivate;
 
@@ -51,15 +64,25 @@
     PROP_KILLABLE
 };
 
-static void moko_application_class_init (MokoApplicationClass *self);
-static void moko_application_init (MokoApplication *self);
-static void moko_application_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
-static void moko_application_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void moko_application_class_init(MokoApplicationClass *self);
+static void moko_application_init(MokoApplication *self);
+static void moko_application_set_property(GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+static void moko_application_get_property(GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
 
-static void moko_application_init (MokoApplication *self)
+static void moko_application_init(MokoApplication *self)
 {
+    moko_debug( "moko_application_init" );
     MokoApplicationPrivate *priv = MOKO_APPLICATION_GET_PRIVATE (self);
 
+    /* create our own icon factory and add some defaults to it */
+    priv->icon_factory = gtk_icon_factory_new();
+    gtk_icon_factory_add_default( priv->icon_factory );
+
+    moko_application_add_stock_icons( self,
+                                      "openmoko-default-application",
+                                      NULL );
+
+    // cruft necessary?
     priv->killable = FALSE;
     priv->window_count = 0;
     priv->is_topmost = FALSE;
@@ -125,7 +148,6 @@
     return;
 }
 
-
 static void moko_application_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec)
 {
     switch (property_id){
@@ -244,3 +266,27 @@
     GtkStyle* style = gtk_rc_get_style_by_paths( gtk_settings_get_default(), "GtkWidget", "GtkWidget", GTK_TYPE_WIDGET );
     return g_path_get_dirname( style->rc_style->bg_pixmap_name[GTK_STATE_NORMAL] );
 }
+
+void moko_application_add_stock_icons(MokoApplication* self, ...)
+{
+    moko_debug( "moko_application_add_stock_icon" );
+    MokoApplicationPrivate* priv = MOKO_APPLICATION_GET_PRIVATE(self);
+
+    va_list valist;
+    gchar* name;
+    va_start(valist, self);
+
+    while ( name = va_arg(valist, gchar*) )
+    {
+        gchar* filename = g_strconcat( name, ".png", NULL );
+        moko_debug( "-- adding stock icon '%s' from pixmap %s", name, g_build_filename( DATADIR "icons", filename, NULL ) );
+        GdkPixbuf* pixbuf = gdk_pixbuf_new_from_file( g_build_filename( DATADIR "icons", filename, NULL ), NULL );
+        GtkIconSet* iconset = gtk_icon_set_new_from_pixbuf( pixbuf );
+        gtk_icon_factory_add( priv->icon_factory, name, iconset);
+        gtk_icon_set_unref( iconset );
+        g_free( filename );
+        g_object_unref( pixbuf );
+    };
+
+    va_end(valist);
+}

Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-application.h
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-application.h	2006-12-05 09:26:55 UTC (rev 307)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-application.h	2006-12-05 18:59:33 UTC (rev 308)
@@ -43,15 +43,16 @@
     GObjectClass parent;
 } MokoApplicationClass;
 
-GType moko_application_get_type (void);
+GType moko_application_get_type();
 
 /* Public methods */
-MokoApplication* moko_application_get_instance(void);
+MokoApplication* moko_application_get_instance();
 gboolean moko_application_get_is_topmost(MokoApplication* self);
 void moko_application_set_main_window(MokoApplication* self, MokoWindow* window);
 MokoWindow* moko_application_get_main_window(MokoApplication* self);
 
-gchar* moko_application_get_style_pixmap_dir(void);
+gchar* moko_application_get_style_pixmap_dir();
+void moko_application_add_stock_icons(MokoApplication* self, ...);
 
 G_END_DECLS
 #endif /* _MOKO_APPLICATION_H_ */

Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-menu-box.c
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-menu-box.c	2006-12-05 09:26:55 UTC (rev 307)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-menu-box.c	2006-12-05 18:59:33 UTC (rev 308)
@@ -157,7 +157,7 @@
     }
     GtkImageMenuItem* appitem = gtk_image_menu_item_new_with_label( g_get_application_name() );
     //FIXME implement icon handling properly in moko_application
-    GtkImage* appicon = gtk_image_new_from_file( PKGDATADIR "/unknown" ); // openmoko-logo-alpha.png" );
+    GtkImage* appicon = gtk_image_new_from_stock( "openmoko-default-application", GTK_ICON_SIZE_MENU );
     gtk_image_menu_item_set_image( appitem, appicon );
     gtk_widget_set_name( GTK_WIDGET(appitem), "transparent" );
     priv->appitem = appitem;





More information about the commitlog mailing list