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