r184 - 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
Sat Nov 4 17:20:58 CET 2006


Author: mickey
Date: 2006-11-04 16:20:57 +0000 (Sat, 04 Nov 2006)
New Revision: 184

Modified:
   trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.c
   trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.h
   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-toolbox.c
   trunk/src/target/OM-2007/libraries/mokoui/moko-toolbox.h
Log:
mokoui: send signal when searchbox becomes visible/invisible


Modified: trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.c	2006-11-04 15:53:11 UTC (rev 183)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.c	2006-11-04 16:20:57 UTC (rev 184)
@@ -33,26 +33,36 @@
     return FALSE;
 }
 
-void cb_button1_clicked(GtkButton *button, gpointer user_data)
+void cb_button1_clicked(GtkButton *button, ChordMasterData* d)
 {
     g_debug( "openmoko-chordmaster: button1 clicked" );
 }
 
-void cb_button2_clicked(GtkButton *button, gpointer user_data)
+void cb_button2_clicked(GtkButton *button, ChordMasterData* d)
 {
     g_debug( "openmoko-chordmaster: button2 clicked" );
 }
 
-void cb_button3_clicked(GtkButton *button, gpointer user_data)
+void cb_button3_clicked(GtkButton *button, ChordMasterData* d)
 {
     g_debug( "openmoko-chordmaster: button3 clicked" );
 }
 
-void cb_button4_clicked(GtkButton *button, gpointer user_data)
+void cb_button4_clicked(GtkButton *button, ChordMasterData* d)
 {
     g_debug( "openmoko-chordmaster: button4 clicked" );
 }
 
+void cb_search_visible(MokoToolBox* toolbox, ChordMasterData* d)
+{
+    g_debug( "openmoko-chordmaster: searchbox visible" );
+}
+
+void cb_search_invisible(MokoToolBox* toolbox, ChordMasterData* d)
+{
+    g_debug( "openmoko-chordmaster: searchbox INvisible" );
+}
+
 void cb_cursor_changed(GtkTreeSelection* selection, ChordMasterData* d)
 {
     g_debug( "openmoko-chordmaster: selection changed" );
@@ -68,4 +78,3 @@
     fretboard_widget_set_frets( d->fretboard, frets );
     gtk_widget_queue_draw( GTK_WIDGET(d->fretboard) );
 }
-

Modified: trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.h	2006-11-04 15:53:11 UTC (rev 183)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.h	2006-11-04 16:20:57 UTC (rev 184)
@@ -3,6 +3,8 @@
 
 #include "main.h"
 
+#include <mokoui/moko-toolbox.h>
+
 #include <gtk/gtkbutton.h>
 #include <gtk/gtkwidget.h>
 #include <gtk/gtktreeview.h>
@@ -10,10 +12,11 @@
 #include <glib.h>
 
 gboolean cb_filter_changed(GtkWidget* widget, gchar* text, ChordMasterData* d);
-void cb_button1_clicked(GtkButton *button, gpointer user_data);
-void cb_button2_clicked(GtkButton *button, gpointer user_data);
-void cb_button3_clicked(GtkButton *button, gpointer user_data);
-void cb_button4_clicked(GtkButton *button, gpointer user_data);
+void cb_button1_clicked(GtkButton *button, ChordMasterData* d);
+void cb_button2_clicked(GtkButton *button, ChordMasterData* d);
+void cb_button3_clicked(GtkButton *button, ChordMasterData* d);
+void cb_button4_clicked(GtkButton *button, ChordMasterData* d);
 void cb_cursor_changed(GtkTreeSelection* selection, ChordMasterData* d);
-
+void cb_search_visible(MokoToolBox* toolbox, ChordMasterData* d);
+void cb_search_invisible(MokoToolBox* toolbox, ChordMasterData* d);
 #endif

Modified: trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c	2006-11-04 15:53:11 UTC (rev 183)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c	2006-11-04 16:20:57 UTC (rev 184)
@@ -102,6 +102,8 @@
     MokoToolBox* toolbox;
     toolbox = MOKO_TOOL_BOX(moko_tool_box_new_with_search());
     gtk_widget_grab_focus( GTK_WIDGET(toolbox) );
+    g_signal_connect( G_OBJECT(toolbox), "searchbox_visible", G_CALLBACK(cb_search_visible), d );
+    g_signal_connect( G_OBJECT(toolbox), "searchbox_invisible", G_CALLBACK(cb_search_invisible), d );
 
     button1 = moko_tool_box_add_action_button( toolbox );
     gtk_button_set_label( button1, "Add" );
@@ -113,10 +115,10 @@
     gtk_button_set_label( button4, "Action 4" );
     moko_paned_window_add_toolbox( d->window, toolbox );
 
-    g_signal_connect( G_OBJECT(button1), "clicked", G_CALLBACK(cb_button1_clicked), NULL );
-    g_signal_connect( G_OBJECT(button2), "clicked", G_CALLBACK(cb_button2_clicked), NULL );
-    g_signal_connect( G_OBJECT(button3), "clicked", G_CALLBACK(cb_button3_clicked), NULL );
-    g_signal_connect( G_OBJECT(button4), "clicked", G_CALLBACK(cb_button4_clicked), NULL );
+    g_signal_connect( G_OBJECT(button1), "clicked", G_CALLBACK(cb_button1_clicked), d );
+    g_signal_connect( G_OBJECT(button2), "clicked", G_CALLBACK(cb_button2_clicked), d );
+    g_signal_connect( G_OBJECT(button3), "clicked", G_CALLBACK(cb_button3_clicked), d );
+    g_signal_connect( G_OBJECT(button4), "clicked", G_CALLBACK(cb_button4_clicked), d );
 
     GtkMenu* actionmenu = GTK_MENU(gtk_menu_new());
     GtkMenuItem* fooitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Foo" ));

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-11-04 15:53:11 UTC (rev 183)
+++ trunk/src/target/OM-2007/examples/openmoko-paned-demo/demo-main.c	2006-11-04 16:20:57 UTC (rev 184)
@@ -28,6 +28,18 @@
 #include <gtk/gtkmain.h>
 #include <gtk/gtkmenu.h>
 
+void cb_searchbox_visible(MokoToolBox* toolbox, gpointer user_data)
+{
+    g_debug( "openmoko-paned-demo: searchbox now visible" );
+    // populate the entry completion here and/or connect signals to entry
+}
+
+void cb_searchbox_invisible(MokoToolBox* toolbox, gpointer user_data)
+{
+    g_debug( "openmoko-paned-demo: searchbox now invisible" );
+    // free resources and/or disconnect signals
+}
+
 void cb_filter_changed(GtkMenu* menu, gchar* text, gpointer user_data )
 {
     g_debug( "openmoko-paned-demo: filter changed to '%s'", text );
@@ -125,6 +137,10 @@
     } else {
         toolbox = MOKO_TOOL_BOX(moko_tool_box_new_with_search());
     }
+
+    g_signal_connect( G_OBJECT(toolbox), "searchbox_visible", G_CALLBACK(cb_searchbox_visible), NULL );
+    g_signal_connect( G_OBJECT(toolbox), "searchbox_invisible", G_CALLBACK(cb_searchbox_invisible), NULL );
+
     button1 = moko_tool_box_add_action_button( toolbox );
     gtk_button_set_label( button1, "Action 1" );
     button2 = moko_tool_box_add_action_button( toolbox );

Modified: trunk/src/target/OM-2007/libraries/mokoui/moko-toolbox.c
===================================================================
--- trunk/src/target/OM-2007/libraries/mokoui/moko-toolbox.c	2006-11-04 15:53:11 UTC (rev 183)
+++ trunk/src/target/OM-2007/libraries/mokoui/moko-toolbox.c	2006-11-04 16:20:57 UTC (rev 184)
@@ -35,7 +35,8 @@
 
 /* add your signals here */
 enum {
-    MOKO_TOOL_BOX_SIGNAL,
+    SEARCHBOX_VISIBLE,
+    SEARCHBOX_INVISIBLE,
     LAST_SIGNAL
 };
 
@@ -44,6 +45,15 @@
 
 static guint moko_tool_box_signals[LAST_SIGNAL] = { 0 };
 
+static void _button_release(GtkWidget* w, MokoToolBox* self)
+{
+    static int current_page = 1;
+    gtk_notebook_set_current_page( GTK_NOTEBOOK(self), current_page );
+    g_debug( "moko_tool_box_button_release: current_page is now: %d", current_page );
+    current_page = 1 - current_page;
+    g_signal_emit( G_OBJECT(self), current_page ? moko_tool_box_signals[SEARCHBOX_INVISIBLE] : moko_tool_box_signals[SEARCHBOX_VISIBLE], 0, NULL );
+}
+
 GType moko_tool_box_get_type (void) /* Typechecking */
 {
     static GType self_type = 0;
@@ -74,14 +84,23 @@
 {
     g_type_class_add_private(klass, sizeof(MokoToolBoxPriv));
 
-    moko_tool_box_signals[MOKO_TOOL_BOX_SIGNAL] = g_signal_new ("moko_tool_box",
+    moko_tool_box_signals[SEARCHBOX_VISIBLE] = g_signal_new ("searchbox_visible",
             G_TYPE_FROM_CLASS (klass),
             G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
-            G_STRUCT_OFFSET (MokoToolBoxClass, moko_tool_box),
+            G_STRUCT_OFFSET (MokoToolBoxClass, searchbox_visible),
             NULL,
             NULL,
             g_cclosure_marshal_VOID__VOID,
             G_TYPE_NONE, 0);
+
+    moko_tool_box_signals[SEARCHBOX_INVISIBLE] = g_signal_new ("searchbox_invisible",
+            G_TYPE_FROM_CLASS (klass),
+            G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
+            G_STRUCT_OFFSET (MokoToolBoxClass, searchbox_invisible),
+            NULL,
+            NULL,
+            g_cclosure_marshal_VOID__VOID,
+            G_TYPE_NONE, 0);
 }
 
 static void moko_tool_box_init(MokoToolBox* self) /* Instance Construction */
@@ -110,13 +129,6 @@
 
 GtkWidget* moko_tool_box_new_with_search()
 {
-    void button_release(GtkWidget* w, MokoToolBox* self)
-    {
-        static int current_page = 1;
-        gtk_notebook_set_current_page( GTK_NOTEBOOK(self), current_page );
-        g_debug( "button_release: current_page is now: %d", current_page );
-        current_page = 1 - current_page;
-    }
     MokoToolBox* self = MOKO_TOOL_BOX(g_object_new(MOKO_TYPE_TOOL_BOX, NULL));
     MokoToolBoxPriv* priv = MOKO_TOOL_BOX_GET_PRIVATE(self);
 
@@ -131,7 +143,7 @@
 
     gtk_notebook_append_page( GTK_NOTEBOOK(self), priv->toolbar_page, NULL );
 
-    g_signal_connect( G_OBJECT(search), "clicked", G_CALLBACK(button_release), self );
+    g_signal_connect( G_OBJECT(search), "clicked", G_CALLBACK(_button_release), self );
 
     priv->searchbar_page = moko_pixmap_container_new();
     gtk_widget_set_name( GTK_WIDGET(priv->searchbar_page), "mokotoolbox-search-mode" );
@@ -140,7 +152,7 @@
     MokoPixmapButton* back = moko_pixmap_button_new();
     gtk_widget_set_name( GTK_WIDGET(back), "mokotoolbox-back-button" );
     gtk_fixed_put( GTK_FIXED(priv->searchbar_page), back, 400, 0 ); //FIXME need to get from style
-    g_signal_connect( G_OBJECT(back), "clicked", G_CALLBACK(button_release), self );
+    g_signal_connect( G_OBJECT(back), "clicked", G_CALLBACK(_button_release), self );
 
     priv->entry = gtk_entry_new();
     gtk_entry_set_has_frame( priv->entry, FALSE );

Modified: trunk/src/target/OM-2007/libraries/mokoui/moko-toolbox.h
===================================================================
--- trunk/src/target/OM-2007/libraries/mokoui/moko-toolbox.h	2006-11-04 15:53:11 UTC (rev 183)
+++ trunk/src/target/OM-2007/libraries/mokoui/moko-toolbox.h	2006-11-04 16:20:57 UTC (rev 184)
@@ -42,14 +42,13 @@
 struct _MokoToolBox
 {
     GtkNotebook parent;
-    /* add pointers to new members here */
 };
 
 struct _MokoToolBoxClass
 {
-    /* add your parent class here */
     GtkNotebookClass parent_class;
-    void (*moko_tool_box) (MokoToolBox *self);
+    void (*searchbox_visible) (MokoToolBox *self);
+    void (*searchbox_invisible) (MokoToolBox *self);
 };
 
 GType          moko_tool_box_get_type();





More information about the commitlog mailing list