r155 - in trunk/src/target/OM-2007: applications/openmoko-chordmaster libraries/mokoui

mickey at gta01.hmw-consulting.de mickey at gta01.hmw-consulting.de
Mon Oct 30 19:59:05 CET 2006


Author: mickey
Date: 2006-10-30 18:59:04 +0000 (Mon, 30 Oct 2006)
New Revision: 155

Added:
   trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.c
   trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.h
Modified:
   trunk/src/target/OM-2007/applications/openmoko-chordmaster/chordsdb.c
   trunk/src/target/OM-2007/applications/openmoko-chordmaster/chordsdb.h
   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/applications/openmoko-chordmaster/openmoko-chordmaster.pro
   trunk/src/target/OM-2007/libraries/mokoui/moko-toolbox.h
Log:
chordmaster: show tree view in navigation area


Added: trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.c	2006-10-30 16:28:14 UTC (rev 154)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.c	2006-10-30 18:59:04 UTC (rev 155)
@@ -0,0 +1,30 @@
+#include "callbacks.h"
+
+#include <gtk/gtkwidget.h>
+#include <gtk/gtkbutton.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" );
+}
+
+void cb_button2_clicked(GtkButton *button, gpointer user_data)
+{
+    g_debug( "openmoko-chordmaster: button2 clicked" );
+}
+
+void cb_button3_clicked(GtkButton *button, gpointer user_data)
+{
+    g_debug( "openmoko-chordmaster: button3 clicked" );
+}
+
+void cb_button4_clicked(GtkButton *button, gpointer user_data)
+{
+    g_debug( "openmoko-chordmaster: button4 clicked" );
+}


Property changes on: trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.c
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.h	2006-10-30 16:28:14 UTC (rev 154)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.h	2006-10-30 18:59:04 UTC (rev 155)
@@ -0,0 +1,15 @@
+#ifndef _CALLBACKS_H_
+#define _CALLBACKS_H_
+
+#include <gtk/gtkbutton.h>
+#include <gtk/gtkwidget.h>
+
+#include <glib.h>
+
+gboolean cb_filter_changed(GtkWidget* widget, gchar* text, gpointer user_data);
+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);
+
+#endif


Property changes on: trunk/src/target/OM-2007/applications/openmoko-chordmaster/callbacks.h
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: trunk/src/target/OM-2007/applications/openmoko-chordmaster/chordsdb.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/chordsdb.c	2006-10-30 16:28:14 UTC (rev 154)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/chordsdb.c	2006-10-30 18:59:04 UTC (rev 155)
@@ -96,4 +96,10 @@
 {
     ChordsDBClass* klass = CHORDSDB_GET_CLASS(self);
     return klass->categories;
-}
\ No newline at end of file
+}
+
+GSList* chordsdb_get_chords(ChordsDB* self )
+{
+    ChordsDBClass* klass = CHORDSDB_GET_CLASS(self);
+    return klass->chords;
+}

Modified: trunk/src/target/OM-2007/applications/openmoko-chordmaster/chordsdb.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/chordsdb.h	2006-10-30 16:28:14 UTC (rev 154)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/chordsdb.h	2006-10-30 18:59:04 UTC (rev 155)
@@ -48,6 +48,7 @@
 GType chordsdb_get_type (void);
 ChordsDB* chordsdb_new (void);
 GSList* chordsdb_get_categories(ChordsDB* self);
+GSList* chordsdb_get_chords(ChordsDB* self );
 
 G_END_DECLS
 

Modified: trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c	2006-10-30 16:28:14 UTC (rev 154)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.c	2006-10-30 18:59:04 UTC (rev 155)
@@ -17,90 +17,87 @@
  *  Current Version: $Rev$ ($Date$) [$Author$]
  */
 
+#include "callbacks.h"
 #include "chordsdb.h"
+#include "main.h"
 
 #include <mokoui/moko-application.h>
 #include <mokoui/moko-paned-window.h>
 #include <mokoui/moko-toolbox.h>
 
-#include <gtk/gtkactiongroup.h>
 #include <gtk/gtkbutton.h>
 #include <gtk/gtklabel.h>
+#include <gtk/gtkliststore.h>
+#include <gtk/gtkmain.h>
 #include <gtk/gtkmenuitem.h>
-#include <gtk/gtkmain.h>
 #include <gtk/gtkmenu.h>
+#include <gtk/gtktreeview.h>
 
-gboolean cb_filter_changed(GtkWidget* widget, gchar* text, gpointer user_data)
-{
-    g_debug( "openmoko-chordmaster: filter changed" );
-    return FALSE;
-}
+enum {
+    COLUMN_NAME,
+    COLUMN_FRETS,
+    NUM_COLS,
+};
 
-void cb_button1_clicked(GtkButton *button, gpointer user_data)
-{
-    g_debug( "openmoko-chordmaster: button1 clicked" );
-}
-
-void cb_button2_clicked(GtkButton *button, gpointer user_data)
-{
-    g_debug( "openmoko-chordmaster: button2 clicked" );
-}
-
-void cb_button3_clicked(GtkButton *button, gpointer user_data)
-{
-    g_debug( "openmoko-chordmaster: button3 clicked" );
-}
-
-void cb_button4_clicked(GtkButton *button, gpointer user_data)
-{
-    g_debug( "openmoko-chordmaster: button4 clicked" );
-}
-
 int main( int argc, char** argv )
 {
     g_debug( "openmoko-chordmaster starting up" );
     /* Initialize GTK+ */
     gtk_init( &argc, &argv );
 
+    /* application data object */
+    ChordMasterData* d = g_new( ChordMasterData, 1 );
+
     /* chords database */
-    ChordsDB* chordsdb = chordsdb_new();
+    d->chordsdb = chordsdb_new();
 
     /* application object */
-    MokoApplication* app = MOKO_APPLICATION(moko_application_get_instance());
+    d->app = MOKO_APPLICATION(moko_application_get_instance());
     g_set_application_name( "ChordMaster" );
 
+    /* ui */
+    setup_ui( d );
+
+    /* show everything and run main loop */
+    gtk_widget_show_all( GTK_WIDGET(d->window) );
+    gtk_main();
+
+    return 0;
+}
+
+void setup_ui( ChordMasterData* d )
+{
     /* main window */
-    MokoPanedWindow* window = MOKO_PANED_WINDOW(moko_paned_window_new());
+    d->window = MOKO_PANED_WINDOW(moko_paned_window_new());
 
     /* application menu */
-    GtkMenu* appmenu = GTK_MENU(gtk_menu_new());
+    d->menu = gtk_menu_new();
     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 );
-    moko_paned_window_set_application_menu( window, appmenu );
+    gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), GTK_WIDGET(closeitem) );
+    moko_paned_window_set_application_menu( d->window, GTK_MENU(d->menu) );
 
     /* filter menu */
     GtkMenu* filtmenu = GTK_MENU(gtk_menu_new());
     gtk_menu_shell_append( filtmenu, gtk_menu_item_new_with_label( "All" ) );
-    for (GSList* c = chordsdb_get_categories( chordsdb ); c; c = g_slist_next(c) )
+    for (GSList* c = chordsdb_get_categories( d->chordsdb ); c; c = g_slist_next(c) )
     {
         gchar* category = (gchar*) c->data;
         g_debug( "adding category '%s'", category );
         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 );
+    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 );
-    //moko_menu_box_set_active_filter( menubox, "All" );
-    moko_menu_box_set_active_filter( menubox, "Seppel" );
+    moko_menu_box_set_active_filter( menubox, "All" );
 
     /* connect close event */
-    g_signal_connect( G_OBJECT(window), "delete_event", G_CALLBACK( gtk_main_quit ), NULL );
+    g_signal_connect( G_OBJECT(d->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" );
-    moko_paned_window_set_upper_pane( window, GTK_WIDGET(navigation) );
+    populate_navigation_area( d );
 
+    /* toolboox */
+
     GtkButton* button1;
     GtkButton* button2;
     GtkButton* button3;
@@ -118,7 +115,7 @@
     gtk_button_set_label( button3, "ActMenu" );
     button4 = moko_tool_box_add_action_button( toolbox );
     gtk_button_set_label( button4, "Action 4" );
-    moko_paned_window_add_toolbox( window, toolbox );
+    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 );
@@ -130,20 +127,45 @@
     GtkMenuItem* baritem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Bar" ));
     gtk_widget_show( GTK_WIDGET(fooitem) );
     gtk_widget_show( GTK_WIDGET(baritem) );
-    gtk_menu_shell_append( actionmenu, fooitem );
-    gtk_menu_shell_append( actionmenu, baritem );
+    gtk_menu_shell_append( GTK_MENU_SHELL(actionmenu), GTK_WIDGET(fooitem) );
+    gtk_menu_shell_append( GTK_MENU_SHELL(actionmenu), GTK_WIDGET(baritem) );
     moko_pixmap_button_set_menu( MOKO_PIXMAP_BUTTON(button3), actionmenu );
     gtk_widget_show_all( actionmenu );
 
     /* details area */
     GtkLabel* details = gtk_label_new( "Add your widget for showing\ndetails for the selected\ndata entry here" );
-    moko_paned_window_set_lower_pane( window, GTK_WIDGET(details) );
+    moko_paned_window_set_lower_pane( d->window, GTK_WIDGET(details) );
+}
 
-    /* show everything and run main loop */
-    gtk_widget_show_all( GTK_WIDGET(window) );
-    g_debug( "openmoko-chordmaster entering main loop" );
-    gtk_main();
-    g_debug( "openmoko-chordmaster left main loop" );
+void populate_navigation_area( ChordMasterData* d )
+{
 
-    return 0;
+    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 );
+    }
+
+    GtkTreeView* view = gtk_tree_view_new_with_model( list );
+    GtkTreeViewColumn* col = gtk_tree_view_column_new();
+    gtk_tree_view_column_set_title( col, "Name" );
+    gtk_tree_view_append_column( view, col );
+    GtkCellRenderer* ren = gtk_cell_renderer_text_new();
+    gtk_tree_view_column_pack_start( col, ren, TRUE );
+    gtk_tree_view_column_add_attribute( col, ren, "text", COLUMN_NAME );
+
+    col = gtk_tree_view_column_new();
+    gtk_tree_view_column_set_title( col, "Frets" );
+    gtk_tree_view_append_column( view, col );
+    ren = gtk_cell_renderer_text_new();
+    gtk_tree_view_column_pack_start( col, ren, TRUE );
+    gtk_tree_view_column_add_attribute( col, ren, "text", COLUMN_FRETS );
+
+    moko_paned_window_set_upper_pane( d->window, GTK_WIDGET(view) );
 }

Modified: trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.h	2006-10-30 16:28:14 UTC (rev 154)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/main.h	2006-10-30 18:59:04 UTC (rev 155)
@@ -17,3 +17,19 @@
  *  Current Version: $Rev$ ($Date$) [$Author$]
  */
 
+#include "chordsdb.h"
+
+#include <mokoui/moko-application.h>
+#include <mokoui/moko-paned-window.h>
+#include <mokoui/moko-toolbox.h>
+
+typedef struct _ChordMasterData {
+    MokoApplication* app;
+    MokoPanedWindow* window;
+    GtkMenu* menu;
+    MokoToolBox* toolbox;
+    ChordsDB* chordsdb;
+} ChordMasterData;
+
+void setup_ui( ChordMasterData* );
+void populate_navigation_area( ChordMasterData* d );

Modified: trunk/src/target/OM-2007/applications/openmoko-chordmaster/openmoko-chordmaster.pro
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-chordmaster/openmoko-chordmaster.pro	2006-10-30 16:28:14 UTC (rev 154)
+++ trunk/src/target/OM-2007/applications/openmoko-chordmaster/openmoko-chordmaster.pro	2006-10-30 18:59:04 UTC (rev 155)
@@ -1,6 +1,6 @@
 MOKOCONFIG = mokoui
 
-HEADERS = chordsdb.h main.h
-SOURCES = chordsdb.c main.c
+HEADERS = callbacks.h chordsdb.h main.h
+SOURCES = callbacks.c chordsdb.c main.c
 
 include ( $(OPENMOKODIR)/devel/qmake/openmoko-include.pro )

Modified: trunk/src/target/OM-2007/libraries/mokoui/moko-toolbox.h
===================================================================
--- trunk/src/target/OM-2007/libraries/mokoui/moko-toolbox.h	2006-10-30 16:28:14 UTC (rev 154)
+++ trunk/src/target/OM-2007/libraries/mokoui/moko-toolbox.h	2006-10-30 18:59:04 UTC (rev 155)
@@ -52,9 +52,10 @@
     void (*moko_tool_box) (MokoToolBox *self);
 };
 
-GType          moko_tool_box_get_type    (void);
-GtkWidget*     moko_tool_box_new         (void);
-void           moko_tool_box_clear       (MokoToolBox* self);
+GType          moko_tool_box_get_type();
+GtkWidget*     moko_tool_box_new();
+GtkWidget*     moko_tool_box_new_with_search();
+void           moko_tool_box_clear(MokoToolBox* self);
 
 /* add additional methods here */
 GtkHBox* moko_tool_box_get_button_box( MokoToolBox* self );





More information about the commitlog mailing list