r1771 - trunk/src/target/OM-2007/examples/openmoko-gsmd-demo/src

mickey at sita.openmoko.org mickey at sita.openmoko.org
Sun Apr 15 19:04:46 CEST 2007


Author: mickey
Date: 2007-04-15 19:04:45 +0200 (Sun, 15 Apr 2007)
New Revision: 1771

Modified:
   trunk/src/target/OM-2007/examples/openmoko-gsmd-demo/src/demo-main.c
Log:
openmoko-gsmd-demo: relayout buttons


Modified: trunk/src/target/OM-2007/examples/openmoko-gsmd-demo/src/demo-main.c
===================================================================
--- trunk/src/target/OM-2007/examples/openmoko-gsmd-demo/src/demo-main.c	2007-04-15 17:03:49 UTC (rev 1770)
+++ trunk/src/target/OM-2007/examples/openmoko-gsmd-demo/src/demo-main.c	2007-04-15 17:04:45 UTC (rev 1771)
@@ -26,7 +26,7 @@
 
 #include <gtk/gtkalignment.h>
 #include <gtk/gtkbutton.h>
-#include <gtk/gtkhbox.h>
+#include <gtk/gtktable.h>
 #include <gtk/gtklabel.h>
 #include <gtk/gtkmain.h>
 #include <gtk/gtkmenu.h>
@@ -42,21 +42,49 @@
 static GtkLabel* signal;
 static GtkLabel* status;
 
-void cb_orange_button_clicked( GtkButton* button, MokoFingerWindow* window )
+void cb_poweron_clicked( GtkButton* button, MokoFingerWindow* window )
 {
-    g_debug( "openmoko-gsmd-demo: orange button clicked" );
+    moko_gsmd_connection_set_antenna_power( gsm, TRUE );
 }
 
-void cb_dialer_button_clicked( GtkButton* button, MokoFingerWindow* window )
+void cb_register_clicked( GtkButton* button, MokoFingerWindow* window )
 {
-    g_debug( "openmoko-gsmd-demo: dialer button clicked" );
+    moko_gsmd_connection_network_register( gsm );
 }
 
-void cb_black_button_clicked( GtkButton* button, MokoFingerWindow* window )
+void cb_poweroff_clicked( GtkButton* button, MokoFingerWindow* window )
 {
-    g_debug( "openmoko-gsmd-demo: black button clicked" );
+    moko_gsmd_connection_set_antenna_power( gsm, FALSE );
 }
 
+void cb_signal_strength_changed( MokoGsmdConnection* connection, int value, gpointer user_data )
+{
+    g_debug( "openmoko-gsmd-demo: signal strength changed" );
+    gtk_label_set_text( signal, g_strdup_printf( "Signal Strength: %d", value ) );
+}
+
+void cb_network_registration( MokoGsmdConnection* connection, int type, int lac, int cell )
+{
+    g_debug( "openmoko-gsmd-demo: network registration" );
+    if ( type == 0 )
+        gtk_label_set_text( status, "Not Searching..." );
+    else
+    if ( type == 2 )
+        gtk_label_set_text( status, "Searching..." );
+    else if ( type == 3 )
+        gtk_label_set_text( status, "Denied! :(" );
+    else if ( type == 1 )
+    {
+        gtk_label_set_text( status, "Registered (Home)" );
+        gtk_label_set_text( network, g_strdup_printf( "LocationAreaCode: 0x%04X\nCellID: 0x%04X", lac, cell ) );
+    }
+    else if ( type == 5 )
+    {
+        gtk_label_set_text( status, "Registered (Roaming)" );
+        gtk_label_set_text( network, g_strdup_printf( "LocationAreaCode: 0x%04X\nCellID: 0x%04X", lac, cell ) );
+    }
+}
+
 int main( int argc, char** argv )
 {
     g_debug( "openmoko-gsmd-demo starting up" );
@@ -80,46 +108,51 @@
     /* connect close event */
     g_signal_connect( G_OBJECT(window), "delete_event", G_CALLBACK(gtk_main_quit), NULL );
 
+    GtkLabel* label0 = gtk_label_new( "<big>A Vanille Media Production</big>" );
+    gtk_label_set_use_markup( label0, TRUE );
+
     /* contents */
-    vbox = gtk_vbox_new( TRUE, 0 );
-    network = gtk_label_new( "<not yet registered>" );
+    vbox = gtk_vbox_new( FALSE, 10 );
+    network = gtk_label_new( "<unknown>" );
     signal = gtk_label_new( "<signal strength>" );
-    status = gtk_label_new( "<unnown>" );
-    GtkLabel* label2 = gtk_label_new( "Orange button powers on, \nDialer button registeres,\nBlack button powers off\n \n \n" );
-    GtkHBox* hbox = gtk_hbox_new( TRUE, 0 );
+    status = gtk_label_new( "Idle" );
+    GtkLabel* label2 = gtk_label_new( "Press buttons to experiment..." );
 
-    GtkButton* button1 = gtk_button_new();
-    g_signal_connect( G_OBJECT(button1), "clicked", G_CALLBACK(cb_orange_button_clicked), window );
-    gtk_widget_set_name( GTK_WIDGET(button1), "mokofingerbutton-orange" );
-    gtk_box_pack_start( GTK_BOX(hbox), GTK_WIDGET(button1), TRUE, TRUE, 5 );
+    GtkTable* table = gtk_table_new( 4, 3, TRUE );
 
-    GtkButton* button2 = gtk_button_new();
-    //FIXME toggle buttons look odd... needs working on styling
-    //gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button2), TRUE);
-    g_signal_connect( G_OBJECT(button2), "clicked", G_CALLBACK(cb_dialer_button_clicked), window );
-    gtk_widget_set_name( GTK_WIDGET(button2), "mokofingerbutton-dialer" );
-    gtk_box_pack_start( GTK_BOX(hbox), GTK_WIDGET(button2), TRUE, TRUE, 5 );
+    GtkButton* button1 = gtk_button_new_with_label( "Power-On" );
+    g_signal_connect( G_OBJECT(button1), "clicked", G_CALLBACK(cb_poweron_clicked), window );
+    gtk_table_attach_defaults( GTK_BOX(table), GTK_WIDGET(button1), 0, 1, 0, 1 );
 
-    GtkButton* button3 = gtk_button_new();
-    g_signal_connect( G_OBJECT(button3), "clicked", G_CALLBACK(cb_black_button_clicked), window );
-    gtk_widget_set_name( GTK_WIDGET(button3), "mokofingerbutton-black" );
-    gtk_box_pack_start( GTK_BOX(hbox), GTK_WIDGET(button3), TRUE, TRUE, 5 );
+    GtkButton* button2 = gtk_button_new_with_label( "Register" );
+    g_signal_connect( G_OBJECT(button2), "clicked", G_CALLBACK(cb_register_clicked), window );
+    gtk_table_attach_defaults( GTK_BOX(table), GTK_WIDGET(button2), 1, 2, 0, 1 );
 
+    GtkButton* button3 = gtk_button_new_with_label( "Power-Off" );
+    g_signal_connect( G_OBJECT(button3), "clicked", G_CALLBACK(cb_poweroff_clicked), window );
+    gtk_table_attach_defaults( GTK_BOX(table), GTK_WIDGET(button3), 2, 3, 0, 1 );
+
+    gtk_box_pack_start( vbox, GTK_WIDGET(label0), FALSE, FALSE, 0 );
     gtk_box_pack_start( vbox, GTK_WIDGET(network), FALSE, FALSE, 0 );
     gtk_box_pack_start( vbox, GTK_WIDGET(signal), FALSE, FALSE, 0 );
     gtk_box_pack_start( vbox, GTK_WIDGET(status), FALSE, FALSE, 0 );
-    gtk_box_pack_start( vbox, GTK_WIDGET(hbox), TRUE, TRUE, 0 );
+    gtk_box_pack_start( vbox, GTK_WIDGET(table), TRUE, TRUE, 0 );
     gtk_box_pack_start( vbox, GTK_WIDGET(label2), FALSE, FALSE, 0 );
 
     moko_finger_window_set_contents( window, GTK_WIDGET(vbox) );
 
     gsm = moko_gsmd_connection_new();
 
+    g_signal_connect( G_OBJECT(gsm), "signal-strength-changed", G_CALLBACK(cb_signal_strength_changed), NULL );
+    g_signal_connect( G_OBJECT(gsm), "network-registration", G_CALLBACK(cb_network_registration), NULL );
+
     /* show everything and run main loop */
     gtk_widget_show_all( GTK_WIDGET(window) );
     g_debug( "openmoko-gsmd-demo entering main loop" );
     gtk_main();
     g_debug( "openmoko-gsmd-demo left main loop" );
 
+    g_object_unref( G_OBJECT(gsm) );
+
     return 0;
 }





More information about the commitlog mailing list