r2899 - trunk/src/target/OM-2007.2/daemons/neod/src
mickey at sita.openmoko.org
mickey at sita.openmoko.org
Mon Sep 3 21:40:41 CEST 2007
Author: mickey
Date: 2007-09-03 21:40:40 +0200 (Mon, 03 Sep 2007)
New Revision: 2899
Modified:
trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.c
trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.h
Log:
neod: UI change
* aux button on hold now opens up a popup menu -- same as power button on hold
* aux button contains non-power related menu items, power button menu power related items
Modified: trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.c
===================================================================
--- trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.c 2007-09-03 11:02:53 UTC (rev 2898)
+++ trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.c 2007-09-03 19:40:40 UTC (rev 2899)
@@ -172,7 +172,6 @@
gboolean neod_buttonactions_install_watcher()
{
-
int i = 0;
for ( ; i < 10; ++i )
{
@@ -373,9 +372,7 @@
}
else
{
- // make dialer interface show up
- // NOTE: temporary hack, will use dbus interface once main menu has it :)
- system( "openmoko-dialer &" );
+ neod_buttonactions_show_aux_menu();
}
return FALSE;
}
@@ -474,6 +471,89 @@
power_menu = 0;
}
+void neod_buttonactions_show_aux_menu()
+{
+ // show popup menu requesting for actions
+ if ( !aux_menu )
+ {
+ aux_menu = gtk_menu_new();
+
+ GtkWidget* orientation = gtk_menu_item_new_with_label( "Swap Orientation" );
+ g_signal_connect( G_OBJECT(orientation), "activate", G_CALLBACK(neod_buttonactions_popup_selected_orientation), NULL );
+ gtk_menu_shell_append( GTK_MENU_SHELL(aux_menu), orientation );
+
+ GtkWidget* scap = gtk_menu_item_new_with_label( "Screenshot" );
+ g_signal_connect( G_OBJECT(scap), "activate", G_CALLBACK(neod_buttonactions_popup_selected_screenshot), NULL );
+ gtk_menu_shell_append( GTK_MENU_SHELL(aux_menu), scap );
+
+ gtk_widget_show_all( GTK_WIDGET(aux_menu) );
+ }
+ gtk_menu_popup( GTK_MENU(aux_menu), NULL, NULL, neod_buttonactions_popup_positioning_cb, 0, 0, GDK_CURRENT_TIME );
+}
+
+void neod_buttonactions_show_power_menu()
+{
+ // show popup menu requesting for actions
+ if ( !power_menu )
+ {
+ power_menu = gtk_menu_new();
+
+ GtkWidget* bluetooth = gtk_check_menu_item_new_with_label( "Bluetooth Power" );
+ gtk_widget_set_state( bluetooth, GTK_STATE_INSENSITIVE );
+ gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), bluetooth );
+
+ GtkWidget* gps = gtk_check_menu_item_new_with_label( "GPS Power" );
+ gtk_widget_set_state( gps, GTK_STATE_INSENSITIVE );
+ gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), gps );
+
+ GtkWidget* gsm = gtk_check_menu_item_new_with_label( "GSM Power" );
+ gtk_widget_set_state( gsm, GTK_STATE_INSENSITIVE );
+ gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), gsm );
+
+ gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), gtk_separator_menu_item_new() );
+
+ // add profiles
+ // TODO build profile list dynamically from database
+ GtkWidget* profile = 0;
+ profile = gtk_check_menu_item_new_with_label( "Profile: Full PM" );
+ gtk_check_menu_item_set_draw_as_radio( GTK_CHECK_MENU_ITEM(profile), TRUE );
+ gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(profile), pm_value == FULL );
+ g_signal_connect( G_OBJECT(profile), "activate", G_CALLBACK(neod_buttonactions_popup_selected_fullPM), NULL );
+ gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), profile );
+ profile = gtk_check_menu_item_new_with_label( "Profile: Dim Only" );
+ gtk_check_menu_item_set_draw_as_radio( GTK_CHECK_MENU_ITEM(profile), TRUE );
+ gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(profile), pm_value == DIM_ONLY );
+ g_signal_connect( G_OBJECT(profile), "activate", G_CALLBACK(neod_buttonactions_popup_selected_dimOnly), NULL );
+ gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), profile );
+ profile = gtk_check_menu_item_new_with_label( "Profile: No PM" );
+ gtk_check_menu_item_set_draw_as_radio( GTK_CHECK_MENU_ITEM(profile), TRUE );
+ gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(profile), pm_value == NONE );
+ g_signal_connect( G_OBJECT(profile), "activate", G_CALLBACK(neod_buttonactions_popup_selected_noPM), NULL );
+ gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), profile );
+
+ gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), gtk_separator_menu_item_new() );
+
+ GtkWidget* lock = gtk_menu_item_new_with_label( "Lock Phone" );
+ g_signal_connect( G_OBJECT(lock), "activate", G_CALLBACK(neod_buttonactions_popup_selected_lock), NULL );
+ gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), lock );
+ //GtkWidget* flightmode = gtk_menu_item_new_with_label( "Flight Mode" );
+ //gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), flightmode );
+ //GtkWidget* profilelist = gtk_menu_item_new_with_label( "<Profile List>" );
+ //gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), profilelist );
+ //GtkWidget* restartUI = gtk_menu_item_new_with_label( "Restart UI" );
+ //g_signal_connect( G_OBJECT(restartUI), "activate", G_CALLBACK(neod_buttonactions_popup_selected_restartUI), NULL );
+ //gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), restartUI );
+ GtkWidget* reboot = gtk_menu_item_new_with_label( "Reboot Phone" );
+ g_signal_connect( G_OBJECT(reboot), "activate", G_CALLBACK(neod_buttonactions_popup_selected_reboot), NULL );
+ gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), reboot );
+ GtkWidget* poweroff = gtk_menu_item_new_with_label( "Power Off" );
+ g_signal_connect( G_OBJECT(poweroff), "activate", G_CALLBACK(neod_buttonactions_popup_selected_poweroff), NULL );
+ gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), poweroff );
+ gtk_widget_show_all( GTK_WIDGET(power_menu) );
+ }
+ gtk_menu_popup( GTK_MENU(power_menu), NULL, NULL, neod_buttonactions_popup_positioning_cb, 0, 0, GDK_CURRENT_TIME );
+}
+
gboolean neod_buttonactions_power_timeout( guint timeout )
{
g_debug( "power pressed for %d", timeout );
@@ -520,60 +600,7 @@
}
else
{
- // show popup menu requesting for actions
- if ( !power_menu )
- {
- power_menu = gtk_menu_new();
-
- GtkWidget* orientation = gtk_menu_item_new_with_label( "Swap Orientation" );
- g_signal_connect( G_OBJECT(orientation), "activate", G_CALLBACK(neod_buttonactions_popup_selected_orientation), NULL );
- gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), orientation );
-
- GtkWidget* scap = gtk_menu_item_new_with_label( "Screenshot" );
- g_signal_connect( G_OBJECT(scap), "activate", G_CALLBACK(neod_buttonactions_popup_selected_screenshot), NULL );
- gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), scap );
- gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), gtk_separator_menu_item_new() );
-
- // add profiles
- // TODO build profile list dynamically from database
- GtkWidget* profile = 0;
- profile = gtk_check_menu_item_new_with_label( "Profile: Full PM" );
- gtk_check_menu_item_set_draw_as_radio( GTK_CHECK_MENU_ITEM(profile), TRUE );
- gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(profile), pm_value == FULL );
- g_signal_connect( G_OBJECT(profile), "activate", G_CALLBACK(neod_buttonactions_popup_selected_fullPM), NULL );
- gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), profile );
- profile = gtk_check_menu_item_new_with_label( "Profile: Dim Only" );
- gtk_check_menu_item_set_draw_as_radio( GTK_CHECK_MENU_ITEM(profile), TRUE );
- gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(profile), pm_value == DIM_ONLY );
- g_signal_connect( G_OBJECT(profile), "activate", G_CALLBACK(neod_buttonactions_popup_selected_dimOnly), NULL );
- gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), profile );
- profile = gtk_check_menu_item_new_with_label( "Profile: No PM" );
- gtk_check_menu_item_set_draw_as_radio( GTK_CHECK_MENU_ITEM(profile), TRUE );
- gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(profile), pm_value == NONE );
- g_signal_connect( G_OBJECT(profile), "activate", G_CALLBACK(neod_buttonactions_popup_selected_noPM), NULL );
- gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), profile );
-
- gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), gtk_separator_menu_item_new() );
-
- GtkWidget* lock = gtk_menu_item_new_with_label( "Lock Phone" );
- g_signal_connect( G_OBJECT(lock), "activate", G_CALLBACK(neod_buttonactions_popup_selected_lock), NULL );
- gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), lock );
- //GtkWidget* flightmode = gtk_menu_item_new_with_label( "Flight Mode" );
- //gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), flightmode );
- //GtkWidget* profilelist = gtk_menu_item_new_with_label( "<Profile List>" );
- //gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), profilelist );
- //GtkWidget* restartUI = gtk_menu_item_new_with_label( "Restart UI" );
- //g_signal_connect( G_OBJECT(restartUI), "activate", G_CALLBACK(neod_buttonactions_popup_selected_restartUI), NULL );
- //gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), restartUI );
- GtkWidget* reboot = gtk_menu_item_new_with_label( "Reboot Phone" );
- g_signal_connect( G_OBJECT(reboot), "activate", G_CALLBACK(neod_buttonactions_popup_selected_reboot), NULL );
- gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), reboot );
- GtkWidget* poweroff = gtk_menu_item_new_with_label( "Power Off" );
- g_signal_connect( G_OBJECT(poweroff), "activate", G_CALLBACK(neod_buttonactions_popup_selected_poweroff), NULL );
- gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), poweroff );
- gtk_widget_show_all( GTK_WIDGET(power_menu) );
- }
- gtk_menu_popup( GTK_MENU(power_menu), NULL, NULL, neod_buttonactions_popup_positioning_cb, 0, 0, GDK_CURRENT_TIME );
+ neod_buttonactions_show_power_menu();
}
return FALSE;
}
Modified: trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.h
===================================================================
--- trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.h 2007-09-03 11:02:53 UTC (rev 2898)
+++ trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.h 2007-09-03 19:40:40 UTC (rev 2899)
@@ -28,6 +28,9 @@
gboolean neod_buttonactions_aux_timeout( guint timeout );
gboolean neod_buttonactions_power_timeout( guint timeout );
+void neod_buttonactions_show_aux_menu();
+void neod_buttonactions_show_power_menu();
+
void neod_buttonactions_powersave_reset();
gboolean neod_buttonactions_powersave_timeout1( guint timeout );
More information about the commitlog
mailing list