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