r101 - in trunk/src/target/OM-2007: artwork/themes/openmoko-standard/gtk-2.0 examples/openmoko-paned-demo libraries/mokoui

mickey at gta01.hmw-consulting.de mickey at gta01.hmw-consulting.de
Sun Oct 22 19:50:14 CEST 2006


Author: mickey
Date: 2006-10-22 17:50:13 +0000 (Sun, 22 Oct 2006)
New Revision: 101

Modified:
   trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/gtkrc
   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/mokoui.pro
Log:
menubar layout ok for demo


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-22 16:30:50 UTC (rev 100)
+++ trunk/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/gtkrc	2006-10-22 17:50:13 UTC (rev 101)
@@ -51,7 +51,7 @@
     }
     xthickness = 30
 }
-class "GtkMenuBar" style "app-menu"
+widget "*moko_application_menu_bar" style "app-menu"
 
 #----------------------------------------------------------------------------
 style "filter-menu" {
@@ -67,14 +67,9 @@
         }
     }
     xthickness = 30
-    GtkComboBox::add-tearoffs = 1
 }
+widget "*moko_filter_menu_bar" style "filter-menu"
 
-# for debugging, disable this in final version
-widget_class "*GtkComboBox*" style "filter-menu"
-# enable this in final version!
-# widget_class "*MokoMenuBox*GtkComboBox*" style "filter-menu"
-
 #----------------------------------------------------------------------------
 style "popup-menus" {
 #----------------------------------------------------------------------------

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-22 16:30:50 UTC (rev 100)
+++ trunk/src/target/OM-2007/examples/openmoko-paned-demo/demo-main.c	2006-10-22 17:50:13 UTC (rev 101)
@@ -43,7 +43,7 @@
 
     /* application object */
     MokoApplication* app = MOKO_APPLICATION(moko_application_get_instance());
-    g_set_application_name( "OpenMoko-Paned-Demo" );
+    g_set_application_name( "Paned-Demo" );
 
     /* main window */
     MokoPanedWindow* window = MOKO_PANED_WINDOW(moko_paned_window_new());
@@ -56,11 +56,14 @@
     moko_paned_window_set_application_menu( window, appmenu );
 
     /* filter menu */
-    GSList* list = NULL;
-    list = g_slist_append( list, "All" );
-    list = g_slist_append( list, "Odd" );
-    list = g_slist_append( list, "Even" );
-    moko_paned_window_set_filter_menu( window, list );
+    GtkMenu* filtmenu = GTK_MENU(gtk_menu_new());
+    GtkMenuItem* item1 = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "All" ));
+    gtk_menu_shell_append( filtmenu, item1 );
+    GtkMenuItem* item2 = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Odd" ));
+    gtk_menu_shell_append( filtmenu, item2 );
+    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 );
 
     /* connect close event */
     g_signal_connect( G_OBJECT(window), "delete_event", G_CALLBACK( gtk_main_quit ), NULL );

Modified: trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c
===================================================================
--- trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c	2006-10-22 16:30:50 UTC (rev 100)
+++ trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c	2006-10-22 17:50:13 UTC (rev 101)
@@ -18,16 +18,16 @@
  */
 #include "moko-menubox.h"
 
+#include <gtk/gtklabel.h>
 #include <gtk/gtkmenubar.h>
 #include <gtk/gtkmenuitem.h>
-#include <gtk/gtkcombobox.h>
 
 #define MOKO_MENU_BOX_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), MOKO_TYPE_MENUBOX, MokoMenuBoxPriv));
 
 typedef struct _MokoMenuBoxPriv
 {
-    GtkMenuBar* menubar;
-    GtkComboBox* combobox;
+    GtkMenuBar* menubar_l;
+    GtkMenuBar* menubar_r;
 } MokoMenuBoxPriv;
 
 /* add your signals here */
@@ -86,8 +86,8 @@
     g_debug( "moko_paned_window_init" );
     MokoMenuBoxPriv* priv = MOKO_MENU_BOX_GET_PRIVATE(self);
 
-    priv->menubar = NULL;
-    priv->combobox = NULL;
+    priv->menubar_l = NULL;
+    priv->menubar_r = NULL;
 
 }
 
@@ -106,41 +106,51 @@
     g_debug( "moko_menubox_set_application_menu" );
 
     MokoMenuBoxPriv* priv = MOKO_MENU_BOX_GET_PRIVATE(self);
-    if (!priv->menubar )
+    if (!priv->menubar_l )
     {
-        priv->menubar = gtk_menu_bar_new();
-        gtk_box_pack_start( GTK_BOX(self), GTK_WIDGET(priv->menubar), TRUE, TRUE, 0 );
+        priv->menubar_l = gtk_menu_bar_new();
+        gtk_widget_set_name( GTK_WIDGET(priv->menubar_l), "moko_application_menu_bar" );
+        gtk_box_pack_start( GTK_BOX(self), GTK_WIDGET(priv->menubar_l), TRUE, TRUE, 0 );
     }
     GtkMenuItem* appitem = gtk_menu_item_new_with_label( g_get_application_name() );
     gtk_menu_item_set_submenu( appitem, menu );
-    gtk_menu_shell_append( GTK_MENU_BAR(priv->menubar), appitem );
+    gtk_menu_shell_append( GTK_MENU_BAR(priv->menubar_l), appitem );
 }
 
-void moko_menubox_set_filter_menu(MokoMenuBox* self, GSList* entries)
+void moko_menubox_set_filter_menu(MokoMenuBox* self, GtkMenu* menu)
 {
-    void _populate_filter_menu(gpointer data, gpointer user_data)
+    void filter_menu_update( GtkMenu* menu, GtkMenuItem* filtitem )
     {
-        g_debug( "_populate_filter_menu %s", (gchar*) data );
-        GtkComboBox* cb = GTK_COMBO_BOX(user_data);
-        gtk_combo_box_append_text( cb, data );
-
+        gchar* text;
+        GtkMenuItem* item = gtk_menu_get_active( menu );
+        if (GTK_BIN(item)->child)
+        {
+            GtkWidget *child = GTK_BIN(item)->child;
+            g_assert( GTK_IS_LABEL(child) );
+            gtk_label_get(GTK_LABEL (child), &text);
+            g_debug(" selection done. menu item text: %s", text );
+        }
+        if (GTK_BIN(filtitem)->child)
+        {
+            GtkWidget *child = GTK_BIN(filtitem)->child;
+            g_assert( GTK_IS_LABEL(child) );
+            gtk_label_set(GTK_LABEL (child), text);
+            g_debug(" selection done. menu label updated." );
+        }
     }
-
     g_debug( "moko_menubox_set_filter_menu" );
 
     MokoMenuBoxPriv* priv = MOKO_MENU_BOX_GET_PRIVATE(self);
-    if (!priv->combobox )
+    if (!priv->menubar_r )
     {
-        priv->combobox = gtk_combo_box_new_text();
-        gtk_box_pack_end( GTK_BOX(self), GTK_WIDGET(priv->combobox), TRUE, TRUE, 0 );
+        priv->menubar_r = gtk_menu_bar_new();
+        gtk_widget_set_name( GTK_WIDGET(priv->menubar_r), "moko_filter_menu_bar" );
+        gtk_box_pack_end( GTK_BOX(self), GTK_WIDGET(priv->menubar_r), TRUE, TRUE, 0 );
     }
-    g_assert( entries );
-    g_slist_foreach( entries, &_populate_filter_menu, priv->combobox );
-    g_slist_free( entries );
-
-    g_object_set( GTK_OBJECT(priv->combobox), "can-focus", 0, NULL );
-    gtk_combo_box_set_active( priv->combobox, 0 );
-    gtk_combo_box_set_focus_on_click( priv->combobox, FALSE );
-    gtk_widget_set_state( priv->combobox, GTK_STATE_NORMAL );
+    GtkMenuItem* filtitem = gtk_menu_item_new_with_label( "Filter Menu" );
+    g_signal_connect (G_OBJECT(menu), "selection_done", G_CALLBACK(filter_menu_update), filtitem );
+    gtk_menu_item_set_submenu( filtitem, menu );
+    gtk_menu_shell_append( GTK_MENU_BAR(priv->menubar_r), filtitem );
 }
 
+

Modified: trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.h
===================================================================
--- trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.h	2006-10-22 16:30:50 UTC (rev 100)
+++ trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.h	2006-10-22 17:50:13 UTC (rev 101)
@@ -53,7 +53,7 @@
 void           moko_menubox_clear       (MokoMenuBox *self);
 
 void           moko_menubox_set_application_menu(MokoMenuBox* self, GtkMenu* menu);
-void           moko_menubox_set_filter_menu(MokoMenuBox* self, GSList* entries);
+void           moko_menubox_set_filter_menu(MokoMenuBox* self, GtkMenu* menu);
 
 G_END_DECLS
 

Modified: trunk/src/target/OM-2007/libraries/mokoui/mokoui.pro
===================================================================
--- trunk/src/target/OM-2007/libraries/mokoui/mokoui.pro	2006-10-22 16:30:50 UTC (rev 100)
+++ trunk/src/target/OM-2007/libraries/mokoui/mokoui.pro	2006-10-22 17:50:13 UTC (rev 101)
@@ -1,8 +1,8 @@
 TEMPLATE = lib
 VERSION = 0.0.1
 
-HEADERS = moko-application.h moko-window.h moko-finger-window.h moko-paned-window.h moko-menubox.h moko-toolbar.h moko-combobox.h
-SOURCES = moko-application.c moko-window.c moko-finger-window.c moko-paned-window.c moko-menubox.c moko-toolbar.c moko-combobox.c
+HEADERS = moko-application.h moko-window.h moko-finger-window.h moko-paned-window.h moko-menubox.h moko-toolbar.h
+SOURCES = moko-application.c moko-window.c moko-finger-window.c moko-paned-window.c moko-menubox.c moko-toolbar.c
 
 PKGCONFIG += gtk+-2.0
 





More information about the commitlog mailing list