r182 - 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 16:23:15 CET 2006
Author: mickey
Date: 2006-11-04 15:23:14 +0000 (Sat, 04 Nov 2006)
New Revision: 182
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/chordsdb.c
trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c
trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.h
trunk/src/target/OM-2007/examples/openmoko-paned-demo/demo-main.c
trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c
Log:
chordmaster: add logic to make filter menu actually filter the selection
paned-demo: add sample application menu entries
Modified: trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.c 2006-11-03 12:36:29 UTC (rev 181)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.c 2006-11-04 15:23:14 UTC (rev 182)
@@ -1,4 +1,7 @@
#include "callbacks.h"
+
+#include "main.h"
+#include "chordsdb.h"
#include "fretboard-widget.h"
#include <gtk/gtkwidget.h>
@@ -6,9 +9,27 @@
#include <gtk/gtktreeview.h>
#include <gtk/gtktreemodel.h>
-gboolean cb_filter_changed(GtkWidget* widget, gchar* text, gpointer user_data)
+gboolean cb_filter_changed(GtkWidget* widget, gchar* text, ChordMasterData* d)
{
g_debug( "openmoko-chordmaster: filter changed" );
+ g_assert( d->chordsdb );
+ if ( !d->liststore )
+ d->liststore = gtk_list_store_new( NUM_COLS, G_TYPE_STRING, G_TYPE_STRING );
+ gtk_list_store_clear( d->liststore );
+ GtkTreeIter iter;
+ GSList* chords = chordsdb_get_chords( d->chordsdb );
+ for ( ; chords; chords = g_slist_next( chords ) )
+ {
+ Chord* chord = chords->data;
+ if ( strcmp( text, "All") == 0 || text[0] == chord->name[0] )
+ {
+ g_debug( "chordmaster: adding chord '%s' = '%s'", chord->name, chord->frets );
+ gtk_list_store_append( d->liststore, &iter );
+ gtk_list_store_set( d->liststore, &iter, COLUMN_NAME, chord->name, COLUMN_FRETS, chord->frets, -1 );
+ }
+ }
+
+ //g_assert( FALSE );
return FALSE;
}
@@ -38,10 +59,11 @@
GtkTreeView* view = gtk_tree_selection_get_tree_view( selection );
GtkTreeModel* model;
GtkTreeIter iter;
- gtk_tree_selection_get_selected( selection, &model, &iter );
+ gboolean has_selection = gtk_tree_selection_get_selected( selection, &model, &iter );
- gchar* frets;
- gtk_tree_model_get( model, &iter, COLUMN_FRETS, &frets, -1 );
+ gchar* frets = NULL;
+ if ( has_selection )
+ gtk_tree_model_get( model, &iter, COLUMN_FRETS, &frets, -1 );
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-03 12:36:29 UTC (rev 181)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.h 2006-11-04 15:23:14 UTC (rev 182)
@@ -9,7 +9,7 @@
#include <glib.h>
-gboolean cb_filter_changed(GtkWidget* widget, gchar* text, gpointer user_data);
+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);
Modified: trunk/src/target/OM-2007/applications/openmoko-chordmaster/chordsdb.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/chordsdb.c 2006-11-03 12:36:29 UTC (rev 181)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/chordsdb.c 2006-11-04 15:23:14 UTC (rev 182)
@@ -54,6 +54,7 @@
static void
chordsdb_class_init (ChordsDBClass *klass)
{
+ g_debug( "chordsdb_class_init" );
GObjectClass *object_class = G_OBJECT_CLASS (klass);
/* register private data */
Modified: trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c 2006-11-03 12:36:29 UTC (rev 181)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c 2006-11-04 15:23:14 UTC (rev 182)
@@ -43,8 +43,6 @@
/* application data object */
ChordMasterData* d = g_new( ChordMasterData, 1 );
-
- /* chords database */
d->chordsdb = chordsdb_new();
/* application object */
@@ -84,7 +82,7 @@
}
moko_paned_window_set_filter_menu( d->window, filtmenu );
MokoMenuBox* menubox = moko_paned_window_get_menubox( d->window );
- g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), NULL );
+ g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), d );
moko_menu_box_set_active_filter( menubox, "All" );
/* connect close event */
@@ -133,19 +131,8 @@
void populate_navigation_area( ChordMasterData* d )
{
+ g_assert( d->liststore ); // created in callback
- GtkListStore* list = gtk_list_store_new( NUM_COLS, G_TYPE_STRING, G_TYPE_STRING );
- GtkTreeIter iter;
-
- GSList* chords = chordsdb_get_chords( d->chordsdb );
- for ( ; chords; chords = g_slist_next( chords ) )
- {
- Chord* chord = chords->data;
- g_debug( "chordmaster: adding chord '%s' = '%s'", chord->name, chord->frets );
- gtk_list_store_append( list, &iter );
- gtk_list_store_set( list, &iter, COLUMN_NAME, chord->name, COLUMN_FRETS, chord->frets, -1 );
- }
-
//FIXME get color from style
GdkColor color;
color.red = 0x7f << 8;
@@ -156,7 +143,7 @@
g_value_init (&v, GDK_TYPE_COLOR);
g_value_set_boxed( &v, &color);
- GtkTreeView* view = gtk_tree_view_new_with_model( list );
+ GtkTreeView* view = gtk_tree_view_new_with_model( d->liststore );
gtk_tree_view_set_rules_hint( view, TRUE );
GtkTreeViewColumn* col = gtk_tree_view_column_new();
gtk_tree_view_column_set_title( col, "Name of the Chord" );
Modified: trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.h 2006-11-03 12:36:29 UTC (rev 181)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.h 2006-11-04 15:23:14 UTC (rev 182)
@@ -27,6 +27,8 @@
#include <mokoui/moko-paned-window.h>
#include <mokoui/moko-toolbox.h>
+#include <gtk/gtkliststore.h>
+
typedef struct _ChordMasterData {
MokoApplication* app;
MokoPanedWindow* window;
@@ -34,6 +36,7 @@
MokoToolBox* toolbox;
ChordsDB* chordsdb;
FretboardWidget* fretboard;
+ GtkListStore* liststore;
} ChordMasterData;
enum {
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-03 12:36:29 UTC (rev 181)
+++ trunk/src/target/OM-2007/examples/openmoko-paned-demo/demo-main.c 2006-11-04 15:23:14 UTC (rev 182)
@@ -76,6 +76,16 @@
/* application menu */
GtkMenu* appmenu = GTK_MENU(gtk_menu_new());
+ GtkMenuItem* item = gtk_menu_item_new_with_label( "Some" );
+ gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), item );
+ item = gtk_menu_item_new_with_label( "Sample" );
+ gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), item );
+ item = gtk_menu_item_new_with_label( "Menu" );
+ gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), item );
+ item = gtk_menu_item_new_with_label( "Entries" );
+ gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), item );
+ item = gtk_separator_menu_item_new();
+ gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), item );
GtkMenuItem* closeitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Close" ));
g_signal_connect( G_OBJECT(closeitem), "activate", G_CALLBACK(gtk_main_quit), NULL );
gtk_menu_shell_append( appmenu, closeitem );
@@ -84,13 +94,13 @@
/* filter menu */
GtkMenu* filtmenu = GTK_MENU(gtk_menu_new());
GtkMenuItem* item1 = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Some" ));
- gtk_menu_shell_append( filtmenu, item1 );
+ gtk_menu_shell_append( GTK_MENU_SHELL(filtmenu), item1 );
GtkMenuItem* item2 = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Sample" ));
- gtk_menu_shell_append( filtmenu, item2 );
+ gtk_menu_shell_append( GTK_MENU_SHELL(filtmenu), item2 );
GtkMenuItem* item3 = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Filter" ));
- gtk_menu_shell_append( filtmenu, item3 );
+ gtk_menu_shell_append( GTK_MENU_SHELL(filtmenu), item3 );
GtkMenuItem* item4 = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Entries" ));
- gtk_menu_shell_append( filtmenu, item4 );
+ gtk_menu_shell_append( GTK_MENU_SHELL(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-11-03 12:36:29 UTC (rev 181)
+++ trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c 2006-11-04 15:23:14 UTC (rev 182)
@@ -92,7 +92,7 @@
static void moko_menu_box_init (MokoMenuBox *self) /* Instance Construction */
{
- g_debug( "moko_paned_window_init" );
+ g_debug( "moko_menu_box_init" );
MokoMenuBoxPriv* priv = MOKO_MENU_BOX_GET_PRIVATE(self);
priv->menubar_l = NULL;
More information about the commitlog
mailing list