diff --git a/sflphone-client-gnome/src/mainwindow.c b/sflphone-client-gnome/src/mainwindow.c index 9b987c66b1ac7652c90da6e7448fa70229fa72aa..35ab68beb223340c8f9f8ff3e60b2c1a8ff9900e 100644 --- a/sflphone-client-gnome/src/mainwindow.c +++ b/sflphone-client-gnome/src/mainwindow.c @@ -315,38 +315,28 @@ main_window_info_message(gchar * markup){ } void -main_window_dialpad( gboolean *state ){ - if( !SHOW_DIALPAD ) - { +main_window_dialpad( gboolean state ){ + if(state) { dialpad = create_dialpad(); gtk_box_pack_end (GTK_BOX (subvbox), dialpad, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/); gtk_widget_show_all (dialpad); - *state = TRUE; - } - else - { + } else { gtk_container_remove(GTK_CONTAINER (subvbox), dialpad); - *state = FALSE; } } void -main_window_volume_controls( gboolean *state ){ - if( !SHOW_VOLUME ) - { +main_window_volume_controls( gboolean state ){ + if(state){ speaker_control = create_slider("speaker"); gtk_box_pack_end (GTK_BOX (subvbox), speaker_control, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/); gtk_widget_show_all (speaker_control); mic_control = create_slider("mic"); gtk_box_pack_end (GTK_BOX (subvbox), mic_control, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/); gtk_widget_show_all (mic_control); - *state = TRUE; - } - else - { + } else { gtk_container_remove( GTK_CONTAINER(subvbox) , speaker_control ); gtk_container_remove( GTK_CONTAINER(subvbox) , mic_control ); - *state = FALSE; } } diff --git a/sflphone-client-gnome/src/mainwindow.h b/sflphone-client-gnome/src/mainwindow.h index bdf3c0af125353ceb8ffa9ba4f7894805b004746..de8c460c7609c13c2c7061c32fea03c6949ddfba 100644 --- a/sflphone-client-gnome/src/mainwindow.h +++ b/sflphone-client-gnome/src/mainwindow.h @@ -52,12 +52,12 @@ gboolean main_window_ask_quit() ; /** * Shows/Hides the dialpad on the mainwindow */ -void main_window_dialpad( gboolean* state ); +void main_window_dialpad( gboolean state ); /** * Shows/Hides the dialpad on the mainwindow */ -void main_window_volume_controls( gboolean* state ); +void main_window_volume_controls( gboolean state ); /** * Display an error message diff --git a/sflphone-client-gnome/src/menus.c b/sflphone-client-gnome/src/menus.c index bff3482c9a0787359e50f2990b4a18dc77438613..ae4c70e3bc7b0627eb35a72f2442c029da49d015 100644 --- a/sflphone-client-gnome/src/menus.c +++ b/sflphone-client-gnome/src/menus.c @@ -117,6 +117,7 @@ help_about ( void * foo UNUSED) "Julien Plissonneau Duquene <julien.plissonneau.duquene@savoirfairelinux.com>", "Alexandre Bourget <alexandre.bourget@savoirfairelinux.com>", "Pierre-Luc Beaudoin <pierre-luc.beaudoin@savoirfairelinux.com>", + "Pierre-Luc Bacon <pierre-luc.bacon@savoirfairelinux.com>", "Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>", "Yun Liu <yun.liu@savoirfairelinux.com>", "Alexandre Savard <alexandre.savard@savoirfairelinux.com>", @@ -581,38 +582,6 @@ create_edit_menu() return root_menu; } -/* ----------------------------------------------------------------- */ - static void -view_dialpad (GtkImageMenuItem *imagemenuitem UNUSED, - void* foo UNUSED) -{ - gboolean state; - main_window_dialpad( &state ); - if( state ) - gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( dialpadMenu ), - gtk_image_new_from_file( ICONS_DIR "/icon_dialpad_off.svg")); - else - gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( dialpadMenu ), - gtk_image_new_from_file( ICONS_DIR "/icon_dialpad.svg")); - dbus_set_dialpad( state ); - - -} - - static void -view_volume_controls (GtkImageMenuItem *imagemenuitem UNUSED, - void* foo UNUSED) -{ - gboolean state; - main_window_volume_controls( &state ); - if( state ) - gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( volumeMenu ), - gtk_image_new_from_file( ICONS_DIR "/icon_volume_off.svg")); - else - gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( volumeMenu ), - gtk_image_new_from_file( ICONS_DIR "/icon_volume.svg")); - dbus_set_volume_controls( state ); -} /* static void @@ -624,39 +593,45 @@ view_volume_controls (GtkImageMenuItem *imagemenuitem UNUSED, dbus_set_searchbar( state ); } */ + + +static void volume_bar_cb (GtkCheckMenuItem *checkmenuitem, gpointer user_data) +{ + gboolean toggled = gtk_check_menu_item_get_active(checkmenuitem); + main_window_volume_controls(toggled); + dbus_set_volume_controls(toggled); +} + +static void dialpad_bar_cb (GtkCheckMenuItem *checkmenuitem, gpointer user_data) +{ + gboolean toggled = gtk_check_menu_item_get_active(checkmenuitem); + main_window_dialpad(toggled); + dbus_set_dialpad(toggled); +} + GtkWidget * create_view_menu() { GtkWidget * menu; GtkWidget * root_menu; - GtkWidget * image; - - menu = gtk_menu_new (); + GtkWidget * volumeBar; + GtkWidget * dialpadBar; + + menu = gtk_menu_new (); - if( SHOW_DIALPAD ) - image = gtk_image_new_from_file( ICONS_DIR "/icon_dialpad_off.svg"); - else - image = gtk_image_new_from_file( ICONS_DIR "/icon_dialpad.svg"); - dialpadMenu = gtk_image_menu_item_new_with_mnemonic (_("_Dialpad")); - gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( dialpadMenu ), image ); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), dialpadMenu); - g_signal_connect(G_OBJECT ( dialpadMenu ), "activate", - G_CALLBACK (view_dialpad), - NULL); - gtk_widget_show (dialpadMenu); + dialpadBar = gtk_check_menu_item_new_with_mnemonic(_("_Dialpad")); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), dialpadBar); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(dialpadBar), (gboolean) SHOW_DIALPAD); + g_signal_connect(G_OBJECT (dialpadBar), "toggled", G_CALLBACK (dialpad_bar_cb), NULL); + gtk_widget_show (dialpadBar); - if( SHOW_VOLUME ) - image = gtk_image_new_from_file( ICONS_DIR "/icon_volume.svg"); - else - image = gtk_image_new_from_file( ICONS_DIR "/icon_volume.svg"); - volumeMenu = gtk_image_menu_item_new_with_mnemonic (_("_Volume controls")); - gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( volumeMenu ), image ); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), volumeMenu); - g_signal_connect(G_OBJECT (volumeMenu), "activate", - G_CALLBACK (view_volume_controls), - NULL); - gtk_widget_show (volumeMenu); + volumeBar = gtk_check_menu_item_new_with_mnemonic(_("_Volume Controls")); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), volumeBar); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(volumeBar), (gboolean) SHOW_VOLUME); + g_signal_connect(G_OBJECT (volumeBar), "toggled", G_CALLBACK (volume_bar_cb), NULL); + gtk_widget_show (volumeBar); + /*image = gtk_image_new_from_stock( GTK_STOCK_FIND , GTK_ICON_SIZE_MENU ); searchbarMenu = gtk_image_menu_item_new_with_mnemonic (_("_Search bar")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( searchbarMenu ), image ); @@ -669,7 +644,6 @@ create_view_menu() root_menu = gtk_menu_item_new_with_mnemonic (_("_View")); gtk_menu_item_set_submenu (GTK_MENU_ITEM (root_menu), menu); - return root_menu; } /* ----------------------------------------------------------------- */