r146 - in trunk/src/target/OM-2007: applications/openmoko-chordmaster artwork/themes/openmoko-standard/gtk-2.0 devel/qmake examples/openmoko-paned-demo libraries/mokoui

mickey at gta01.hmw-consulting.de mickey at gta01.hmw-consulting.de
Sun Oct 29 21:20:40 CET 2006


Author: mickey
Date: 2006-10-29 20:20:39 +0000 (Sun, 29 Oct 2006)
New Revision: 146

Modified:
   trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c
   trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/gtkmenuitem
   trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/gtkrc
   trunk/src/target/OM-2007/devel/qmake/openmoko-include.pro
   trunk/src/target/OM-2007/examples/openmoko-paned-demo/demo-main.c
   trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c
   trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.h
   trunk/src/target/OM-2007/libraries/mokoui/moko-paned-window.c
   trunk/src/target/OM-2007/libraries/mokoui/moko-paned-window.h
   trunk/src/target/OM-2007/libraries/mokoui/mokoui.pro
Log:
mokoui: add convenience signal 'filter_changed' to MokoMenuBox and demo its usage


Modified: trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c	2006-10-29 17:06:59 UTC (rev 145)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c	2006-10-29 20:20:39 UTC (rev 146)
@@ -30,6 +30,12 @@
 #include <gtk/gtkmain.h>
 #include <gtk/gtkmenu.h>
 
+gboolean cb_filter_changed(GtkWidget* widget, gchar* text, gpointer user_data)
+{
+    g_debug( "openmoko-chordmaster: filter changed" );
+    return FALSE;
+}
+
 void cb_button1_clicked(GtkButton *button, gpointer user_data)
 {
     g_debug( "openmoko-chordmaster: button1 clicked" );
@@ -83,7 +89,10 @@
         gtk_menu_shell_append( filtmenu, gtk_menu_item_new_with_label( category ) );
     }
     moko_paned_window_set_filter_menu( window, filtmenu );
+    MokoMenuBox* menubox = moko_paned_window_get_menubox( window );
+    g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), NULL );
 
+
     /* connect close event */
     g_signal_connect( G_OBJECT(window), "delete_event", G_CALLBACK( gtk_main_quit ), NULL );
 

Modified: trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/gtkmenuitem
===================================================================
--- trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/gtkmenuitem	2006-10-29 17:06:59 UTC (rev 145)
+++ trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/gtkmenuitem	2006-10-29 20:20:39 UTC (rev 146)
@@ -10,3 +10,4 @@
     }
 }
 class "GtkMenuItem" style "gtkmenuitem"
+

Modified: trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/gtkrc
===================================================================
--- trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/gtkrc	2006-10-29 17:06:59 UTC (rev 145)
+++ trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/gtkrc	2006-10-29 20:20:39 UTC (rev 146)
@@ -30,10 +30,11 @@
 }
 
 # enable for final version
-#class "GtkWidget" style "moko-window-default"
+class "GtkWidget" style "moko-window-default"
 
 # enable for debugging on host
-widget "MokoPanedWindow.*" style "moko-window-default"
+# widget "MokoPanedWindow.*" style "moko-window-default"
+# class "GtkMenuItem" style "moko-window-default"
 
 include "gtkmenuitem"
 include "gtkscrollbar"

Modified: trunk/src/target/OM-2007/devel/qmake/openmoko-include.pro
===================================================================
--- trunk/src/target/OM-2007/devel/qmake/openmoko-include.pro	2006-10-29 17:06:59 UTC (rev 145)
+++ trunk/src/target/OM-2007/devel/qmake/openmoko-include.pro	2006-10-29 20:20:39 UTC (rev 146)
@@ -1,7 +1,10 @@
 CONFIG = debug warn_on link_pkgconfig console $$MOKOCONFIG
 
-QMAKE_CFLAGS += -std=c99 -pedantic
-INCLUDEPATH += $(OPENMOKODIR)
+QMAKE_LINK              = gcc
+QMAKE_LINK_SHLIB        = gcc
+QMAKE_RPATH             =
+QMAKE_CFLAGS           += -std=c99 -pedantic
+INCLUDEPATH            += $(OPENMOKODIR)
 
 PLATFORM = $$system(uname -m)
 
@@ -38,11 +41,11 @@
 	LIBS += -lmokonet -L$(OPENMOKODIR)/lib
 }
 
-# handle pkg-config files (from qt4)
+# handle pkgconfig for CFLAGS, CXXFLAGS and LIBS already handled by qmake
 for(PKGCONFIG_LIB, $$list($$unique(PKGCONFIG))) {
-        QMAKE_CXXFLAGS += $$system(pkg-config --cflags $$PKGCONFIG_LIB)
+#        QMAKE_CXXFLAGS += $$system(pkg-config --cflags $$PKGCONFIG_LIB)
         QMAKE_CFLAGS += $$system(pkg-config --cflags $$PKGCONFIG_LIB)
-        LIBS += $$system(pkg-config --libs $$PKGCONFIG_LIB)
+#        LIBS += $$system(pkg-config --libs $$PKGCONFIG_LIB)
 }
 
 contains( TEMPLATE, app ) {

Modified: trunk/src/target/OM-2007/examples/openmoko-paned-demo/demo-main.c
===================================================================
--- trunk/src/target/OM-2007/examples/openmoko-paned-demo/demo-main.c	2006-10-29 17:06:59 UTC (rev 145)
+++ trunk/src/target/OM-2007/examples/openmoko-paned-demo/demo-main.c	2006-10-29 20:20:39 UTC (rev 146)
@@ -28,6 +28,11 @@
 #include <gtk/gtkmain.h>
 #include <gtk/gtkmenu.h>
 
+void cb_filter_changed(GtkMenu* menu, gchar* text, gpointer user_data )
+{
+    g_debug( "openmoko-paned-demo: filter changed to '%s'", text );
+}
+
 void cb_button1_clicked(GtkButton *button, gpointer user_data)
 {
     g_debug( "openmoko-paned-demo: button1 clicked" );
@@ -64,7 +69,7 @@
 
     /* application object */
     MokoApplication* app = MOKO_APPLICATION(moko_application_get_instance());
-    g_set_application_name( "Paned-Demo" );
+    g_set_application_name( "OpenMoko Demo" );
 
     /* main window */
     MokoPanedWindow* window = MOKO_PANED_WINDOW(moko_paned_window_new());
@@ -85,9 +90,11 @@
     GtkMenuItem* item3 = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Even" ));
     gtk_menu_shell_append( filtmenu, item3 );
     moko_paned_window_set_filter_menu( window, filtmenu );
+    MokoMenuBox* menubox = moko_paned_window_get_menubox( window );
+    g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), NULL );
 
     /* connect close event */
-    g_signal_connect( G_OBJECT(window), "delete_event", G_CALLBACK( gtk_main_quit ), NULL );
+    g_signal_connect( G_OBJECT(window), "delete_event", G_CALLBACK(gtk_main_quit), NULL );
 
     /* navigation area */
     GtkLabel* navigation = gtk_label_new( "Add your widget for navigating\nthrough appplication specific\ndata here" );

Modified: trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c
===================================================================
--- trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c	2006-10-29 17:06:59 UTC (rev 145)
+++ trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c	2006-10-29 20:20:39 UTC (rev 146)
@@ -36,14 +36,14 @@
 
 /* add your signals here */
 enum {
-    MOKO_MENU_BOX_SIGNAL,
+    FILTER_CHANGED,
     LAST_SIGNAL
 };
 
 static void moko_menu_box_class_init          (MokoMenuBoxClass *klass);
 static void moko_menu_box_init                (MokoMenuBox      *f);
 
-static guint moko_menu_box_signals[LAST_SIGNAL] = { 0 };
+static guint moko_menu_box_signals[LAST_SIGNAL] = { 0, };
 
 GType moko_menu_box_get_type (void) /* Typechecking */
 {
@@ -75,14 +75,17 @@
 {
     g_type_class_add_private(klass, sizeof(MokoMenuBoxPriv));
 
-    moko_menu_box_signals[MOKO_MENU_BOX_SIGNAL] = g_signal_new ("moko_menu_box",
+    moko_menu_box_signals[FILTER_CHANGED] =
+            g_signal_new ("filter-changed",
             G_TYPE_FROM_CLASS (klass),
             G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
-            G_STRUCT_OFFSET (MokoMenuBoxClass, moko_menu_box),
+            G_STRUCT_OFFSET(MokoMenuBoxClass, filter_changed),
             NULL,
             NULL,
-            g_cclosure_marshal_VOID__VOID,
-            G_TYPE_NONE, 0);
+            g_cclosure_marshal_VOID__STRING,
+            G_TYPE_NONE, 1, G_TYPE_STRING );
+
+    g_debug( "filter-signal-changed ID = %d", moko_menu_box_signals[FILTER_CHANGED] );
 }
 
 static void moko_menu_box_init (MokoMenuBox *self) /* Instance Construction */
@@ -125,8 +128,10 @@
     }
 }
 
-static void cb_filter_menu_update( GtkMenu* menu, GtkMenuItem* filtitem )
+static void cb_filter_menu_update( GtkMenu* menu, MokoMenuBox* self )
 {
+    MokoMenuBoxPriv* priv = MOKO_MENU_BOX_GET_PRIVATE(self);
+
     gchar* text;
     GtkMenuItem* item = gtk_menu_get_active( menu );
     if (GTK_BIN(item)->child)
@@ -136,13 +141,15 @@
         gtk_label_get(GTK_LABEL (child), &text);
         g_debug(" selection done. menu item text: %s", text );
     }
-    if (GTK_BIN(filtitem)->child)
+    if (GTK_BIN(priv->filteritem)->child)
     {
-        GtkWidget *child = GTK_BIN(filtitem)->child;
+        GtkWidget *child = GTK_BIN(priv->filteritem)->child;
         g_assert( GTK_IS_LABEL(child) );
         gtk_label_set(GTK_LABEL (child), text);
         g_debug(" selection done. menu label updated." );
     }
+
+    g_signal_emit( G_OBJECT(self), moko_menu_box_signals[FILTER_CHANGED], 0, text );
 }
 
 void moko_menu_box_set_application_menu(MokoMenuBox* self, GtkMenu* menu)
@@ -181,7 +188,7 @@
     GtkMenuItem* filtitem = gtk_menu_item_new_with_label( "Filter Menu" );
     priv->filteritem = filtitem;
     priv->filtermenu = menu;
-    g_signal_connect (G_OBJECT(menu), "selection_done", G_CALLBACK(cb_filter_menu_update), filtitem );
+    g_signal_connect (G_OBJECT(menu), "selection_done", G_CALLBACK(cb_filter_menu_update), self );
     gtk_menu_item_set_submenu( filtitem, menu );
     gtk_menu_shell_append( GTK_MENU_BAR(priv->menubar_r), filtitem );
 
@@ -189,3 +196,13 @@
     //g_signal_connect( GTK_WIDGET(priv->menubar_r), "button-release-event", G_CALLBACK(cb_button_release), menu );
 }
 
+void
+moko_menu_box_set_active_filter(MokoMenuBox* self, gchar* text)
+{
+    g_debug( "moko_menu_box_set_active_filter" );
+
+    // wander through all filter menu items, check their labels
+    // if one is matching, then select it
+
+    /* ... */
+}

Modified: trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.h
===================================================================
--- trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.h	2006-10-29 17:06:59 UTC (rev 145)
+++ trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.h	2006-10-29 20:20:39 UTC (rev 146)
@@ -45,7 +45,19 @@
 {
     /* add your parent class here */
     GtkHBoxClass parent_class;
-    void (*moko_menu_box) (MokoMenuBox *self);
+    /* signals */
+
+    /**
+     * MokoMenuBox::filter_changed:
+     * @widget: the object which received the signal
+     * @text: the new menu text
+     *
+     * The changed signal gets emitted when the active
+     * filter menu item is changed. The can be due to
+     * the user selecting a different item from the list,
+     * or due to a call to moko_menubox_set_active_filter().
+     */
+    void (*filter_changed) (MokoMenuBox *widget, gchar* text);
 };
 
 GType          moko_menu_box_get_type    (void);
@@ -55,6 +67,8 @@
 void           moko_menu_box_set_application_menu(MokoMenuBox* self, GtkMenu* menu);
 void           moko_menu_box_set_filter_menu(MokoMenuBox* self, GtkMenu* menu);
 
+void           moko_menu_box_set_active_filter(MokoMenuBox* self, gchar* text);
+
 G_END_DECLS
 
 #endif /* _MOKO_MENU_BOX_H_ */

Modified: trunk/src/target/OM-2007/libraries/mokoui/moko-paned-window.c
===================================================================
--- trunk/src/target/OM-2007/libraries/mokoui/moko-paned-window.c	2006-10-29 17:06:59 UTC (rev 145)
+++ trunk/src/target/OM-2007/libraries/mokoui/moko-paned-window.c	2006-10-29 20:20:39 UTC (rev 146)
@@ -115,6 +115,14 @@
     /* destruct your widgets here */
 }
 
+/* PUBLIC API */
+
+MokoMenuBox* moko_paned_window_get_menubox(MokoPanedWindow* self)
+{
+    MokoPanedWindowPriv* priv = MOKO_PANED_WINDOW_GET_PRIVATE(self);
+    return priv->menubox;
+}
+
 void moko_paned_window_set_application_menu(MokoPanedWindow* self, GtkMenu* menu)
 {
     g_debug( "moko_paned_window_set_application_menu" );
@@ -167,9 +175,3 @@
     gtk_box_pack_end( GTK_BOX(priv->upper), toolbox, FALSE, FALSE, 0 );
     gtk_box_reorder_child( GTK_BOX(priv->upper), toolbox, 1 );
 }
-
-GtkMenuBar* moko_paned_window_get_menubox(MokoPanedWindow* self)
-{
-    MokoPanedWindowPriv* priv = MOKO_PANED_WINDOW_GET_PRIVATE(self);
-    return priv->menubox;
-}

Modified: trunk/src/target/OM-2007/libraries/mokoui/moko-paned-window.h
===================================================================
--- trunk/src/target/OM-2007/libraries/mokoui/moko-paned-window.h	2006-10-29 17:06:59 UTC (rev 145)
+++ trunk/src/target/OM-2007/libraries/mokoui/moko-paned-window.h	2006-10-29 20:20:39 UTC (rev 146)
@@ -19,13 +19,15 @@
 #ifndef _MOKO_PANED_WINDOW_H_
 #define _MOKO_PANED_WINDOW_H_
 
-#include <glib.h>
-#include <glib-object.h>
-#include <gtk/gtkmenu.h>
-#include <gtk/gtkmenubar.h>
 #include "moko-window.h"
+#include "moko-menubox.h"
 #include "moko-toolbox.h"
 
+#include <gtk/gtkmenu.h>
+
+#include <glib.h>
+#include <glib-object.h>
+
 G_BEGIN_DECLS
 
 #define MOKO_TYPE_PANED_WINDOW            (moko_paned_window_get_type())
@@ -54,17 +56,18 @@
 GtkWidget*     moko_paned_window_new             (void);
 void           moko_paned_window_clear           (MokoPanedWindow *self);
 
-/* add additional methods here */
-//TODO: Getters
-
+/* menu */
+MokoMenuBox* moko_paned_window_get_menubox(MokoPanedWindow* self);
 void moko_paned_window_set_application_menu(MokoPanedWindow* self, GtkMenu* menu);
 void moko_paned_window_set_filter_menu(MokoPanedWindow* self, GtkMenu* menu);
 
+/* toolbox */
+void moko_paned_window_add_toolbox(MokoPanedWindow* self, MokoToolBox* toolbox);
+
+/* panes */
 void moko_paned_window_set_upper_pane(MokoPanedWindow* self, GtkWidget* child);
 void moko_paned_window_set_lower_pane(MokoPanedWindow* self, GtkWidget* child);
 
-void moko_paned_window_add_toolbox(MokoPanedWindow* self, MokoToolBox* toolbox);
-
 G_END_DECLS
 
 #endif /* _MOKO_PANED_WINDOW_H_ */

Modified: trunk/src/target/OM-2007/libraries/mokoui/mokoui.pro
===================================================================
--- trunk/src/target/OM-2007/libraries/mokoui/mokoui.pro	2006-10-29 17:06:59 UTC (rev 145)
+++ trunk/src/target/OM-2007/libraries/mokoui/mokoui.pro	2006-10-29 20:20:39 UTC (rev 146)
@@ -5,7 +5,6 @@
 	moko-alignment.h \
 	moko-pixmap-container.h \
 	moko-pixmap-button.h \
-	moko-vbox.h \
 	moko-application.h \
 	moko-window.h \
 	moko-finger-window.h \
@@ -17,7 +16,6 @@
 	moko-alignment.c \
     moko-pixmap-container.c \
 	moko-pixmap-button.c \
-	moko-vbox.c \
 	moko-application.c \
 	moko-window.c \
 	moko-finger-window.c \





More information about the commitlog mailing list