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