r153 - in trunk/src/target/OM-2007: applications/openmoko-chordmaster examples/openmoko-paned-demo libraries/mokoui
mickey at gta01.hmw-consulting.de
mickey at gta01.hmw-consulting.de
Mon Oct 30 17:10:43 CET 2006
Author: mickey
Date: 2006-10-30 16:10:42 +0000 (Mon, 30 Oct 2006)
New Revision: 153
Modified:
trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c
trunk/src/target/OM-2007/examples/openmoko-paned-demo/demo-main.c
trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c
Log:
mokoui: moko_menu_box_set_active_filter works now (for text labels)
Modified: trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c 2006-10-30 15:35:01 UTC (rev 152)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c 2006-10-30 16:10:42 UTC (rev 153)
@@ -91,8 +91,9 @@
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 );
+ //moko_menu_box_set_active_filter( menubox, "All" );
+ moko_menu_box_set_active_filter( menubox, "Seppel" );
-
/* connect close event */
g_signal_connect( G_OBJECT(window), "delete_event", G_CALLBACK( gtk_main_quit ), NULL );
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-30 15:35:01 UTC (rev 152)
+++ trunk/src/target/OM-2007/examples/openmoko-paned-demo/demo-main.c 2006-10-30 16:10:42 UTC (rev 153)
@@ -83,12 +83,14 @@
/* filter menu */
GtkMenu* filtmenu = GTK_MENU(gtk_menu_new());
- GtkMenuItem* item1 = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "All" ));
+ GtkMenuItem* item1 = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Some" ));
gtk_menu_shell_append( filtmenu, item1 );
- GtkMenuItem* item2 = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Odd" ));
+ GtkMenuItem* item2 = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Sample" ));
gtk_menu_shell_append( filtmenu, item2 );
- GtkMenuItem* item3 = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Even" ));
+ GtkMenuItem* item3 = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Filter" ));
gtk_menu_shell_append( filtmenu, item3 );
+ GtkMenuItem* item4 = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Entries" ));
+ gtk_menu_shell_append( filtmenu, item4 );
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 );
Modified: trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c
===================================================================
--- trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c 2006-10-30 15:35:01 UTC (rev 152)
+++ trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c 2006-10-30 16:10:42 UTC (rev 153)
@@ -22,6 +22,8 @@
#include <gtk/gtkmenubar.h>
#include <gtk/gtkmenuitem.h>
+#include <string.h>
+
#define MOKO_MENU_BOX_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), MOKO_TYPE_MENU_BOX, MokoMenuBoxPriv));
typedef struct _MokoMenuBoxPriv
@@ -117,8 +119,8 @@
GtkAllocation* a = >K_WIDGET(children->data)->allocation;
g_debug( "allocate is %d, %d * %d, %d", a->x, a->y, a->width, a->height );
- if ( event->x > a->x && event->x < (a->x+a->width) &&
- event->y > a->y && event->y < (a->y+a->height) )
+ if ( event->x >= a->x && event->x <= (a->x+a->width) &&
+ event->y >= a->y && event->y <= (a->y+a->height) )
{
g_debug( "INSIDE ITEM" );
return FALSE;
@@ -214,10 +216,30 @@
void
moko_menu_box_set_active_filter(MokoMenuBox* self, gchar* text)
{
+ //FIXME this only works with text labels
g_debug( "moko_menu_box_set_active_filter" );
// wander through all filter menu items, check their labels
// if one is matching, then select it
- /* ... */
+ MokoMenuBoxPriv* priv = MOKO_MENU_BOX_GET_PRIVATE(self);
+
+ GList* child = gtk_container_get_children( GTK_CONTAINER(priv->filtermenu) );
+ while (child && GTK_IS_MENU_ITEM(child->data))
+ {
+ GtkWidget *label = GTK_BIN(child->data)->child;
+ g_assert( GTK_IS_LABEL(label) );
+ gchar* ltext;
+ gtk_label_get( GTK_LABEL(label), <ext );
+ if ( strcmp( ltext, text ) == 0 )
+ {
+ g_debug( "moko_menu_box_set_active_filter: match found" );
+ gtk_menu_item_activate( child->data );
+ cb_filter_menu_update( priv->filtermenu, self ); //need to sync. manually, since we it didn't go through popupmenu
+ break;
+ }
+ child = g_list_next(child);
+ }
+ if (!child)
+ g_warning( "moko_menu_box_set_active_filter: filter menu entry '%s' not found", text );
}
More information about the commitlog
mailing list