diff --git a/sflphone-gtk/src/configurationmanager-glue.h b/sflphone-gtk/src/configurationmanager-glue.h index 565dec6f1fca13b700af10b28194e72148ad4c86..866b0eb8c01607c1f37ab3ce4d12a8563af6cd6c 100644 --- a/sflphone-gtk/src/configurationmanager-glue.h +++ b/sflphone-gtk/src/configurationmanager-glue.h @@ -1214,6 +1214,156 @@ org_sflphone_SFLphone_ConfigurationManager_is_iax2_enabled_async (DBusGProxy *pr stuff->userdata = userdata; return dbus_g_proxy_begin_call (proxy, "isIax2Enabled", org_sflphone_SFLphone_ConfigurationManager_is_iax2_enabled_async_callback, stuff, g_free, G_TYPE_INVALID); } +static +#ifdef G_HAVE_INLINE +inline +#endif +gboolean +org_sflphone_SFLphone_ConfigurationManager_get_dialpad (DBusGProxy *proxy, gint* OUT_state, GError **error) + +{ + return dbus_g_proxy_call (proxy, "getDialpad", error, G_TYPE_INVALID, G_TYPE_INT, OUT_state, G_TYPE_INVALID); +} + +typedef void (*org_sflphone_SFLphone_ConfigurationManager_get_dialpad_reply) (DBusGProxy *proxy, gint OUT_state, GError *error, gpointer userdata); + +static void +org_sflphone_SFLphone_ConfigurationManager_get_dialpad_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data) +{ + DBusGAsyncData *data = (DBusGAsyncData*) user_data; + GError *error = NULL; + gint OUT_state; + dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INT, &OUT_state, G_TYPE_INVALID); + (*(org_sflphone_SFLphone_ConfigurationManager_get_dialpad_reply)data->cb) (proxy, OUT_state, error, data->userdata); + return; +} + +static +#ifdef G_HAVE_INLINE +inline +#endif +DBusGProxyCall* +org_sflphone_SFLphone_ConfigurationManager_get_dialpad_async (DBusGProxy *proxy, org_sflphone_SFLphone_ConfigurationManager_get_dialpad_reply callback, gpointer userdata) + +{ + DBusGAsyncData *stuff; + stuff = g_new (DBusGAsyncData, 1); + stuff->cb = G_CALLBACK (callback); + stuff->userdata = userdata; + return dbus_g_proxy_begin_call (proxy, "getDialpad", org_sflphone_SFLphone_ConfigurationManager_get_dialpad_async_callback, stuff, g_free, G_TYPE_INVALID); +} +static +#ifdef G_HAVE_INLINE +inline +#endif +gboolean +org_sflphone_SFLphone_ConfigurationManager_set_dialpad (DBusGProxy *proxy, GError **error) + +{ + return dbus_g_proxy_call (proxy, "setDialpad", error, G_TYPE_INVALID, G_TYPE_INVALID); +} + +typedef void (*org_sflphone_SFLphone_ConfigurationManager_set_dialpad_reply) (DBusGProxy *proxy, GError *error, gpointer userdata); + +static void +org_sflphone_SFLphone_ConfigurationManager_set_dialpad_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data) +{ + DBusGAsyncData *data = (DBusGAsyncData*) user_data; + GError *error = NULL; + dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID); + (*(org_sflphone_SFLphone_ConfigurationManager_set_dialpad_reply)data->cb) (proxy, error, data->userdata); + return; +} + +static +#ifdef G_HAVE_INLINE +inline +#endif +DBusGProxyCall* +org_sflphone_SFLphone_ConfigurationManager_set_dialpad_async (DBusGProxy *proxy, org_sflphone_SFLphone_ConfigurationManager_set_dialpad_reply callback, gpointer userdata) + +{ + DBusGAsyncData *stuff; + stuff = g_new (DBusGAsyncData, 1); + stuff->cb = G_CALLBACK (callback); + stuff->userdata = userdata; + return dbus_g_proxy_begin_call (proxy, "setDialpad", org_sflphone_SFLphone_ConfigurationManager_set_dialpad_async_callback, stuff, g_free, G_TYPE_INVALID); +} +static +#ifdef G_HAVE_INLINE +inline +#endif +gboolean +org_sflphone_SFLphone_ConfigurationManager_start_hidden (DBusGProxy *proxy, GError **error) + +{ + return dbus_g_proxy_call (proxy, "startHidden", error, G_TYPE_INVALID, G_TYPE_INVALID); +} + +typedef void (*org_sflphone_SFLphone_ConfigurationManager_start_hidden_reply) (DBusGProxy *proxy, GError *error, gpointer userdata); + +static void +org_sflphone_SFLphone_ConfigurationManager_start_hidden_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data) +{ + DBusGAsyncData *data = (DBusGAsyncData*) user_data; + GError *error = NULL; + dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID); + (*(org_sflphone_SFLphone_ConfigurationManager_start_hidden_reply)data->cb) (proxy, error, data->userdata); + return; +} + +static +#ifdef G_HAVE_INLINE +inline +#endif +DBusGProxyCall* +org_sflphone_SFLphone_ConfigurationManager_start_hidden_async (DBusGProxy *proxy, org_sflphone_SFLphone_ConfigurationManager_start_hidden_reply callback, gpointer userdata) + +{ + DBusGAsyncData *stuff; + stuff = g_new (DBusGAsyncData, 1); + stuff->cb = G_CALLBACK (callback); + stuff->userdata = userdata; + return dbus_g_proxy_begin_call (proxy, "startHidden", org_sflphone_SFLphone_ConfigurationManager_start_hidden_async_callback, stuff, g_free, G_TYPE_INVALID); +} +static +#ifdef G_HAVE_INLINE +inline +#endif +gboolean +org_sflphone_SFLphone_ConfigurationManager_is_start_hidden (DBusGProxy *proxy, gint* OUT_state, GError **error) + +{ + return dbus_g_proxy_call (proxy, "isStartHidden", error, G_TYPE_INVALID, G_TYPE_INT, OUT_state, G_TYPE_INVALID); +} + +typedef void (*org_sflphone_SFLphone_ConfigurationManager_is_start_hidden_reply) (DBusGProxy *proxy, gint OUT_state, GError *error, gpointer userdata); + +static void +org_sflphone_SFLphone_ConfigurationManager_is_start_hidden_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data) +{ + DBusGAsyncData *data = (DBusGAsyncData*) user_data; + GError *error = NULL; + gint OUT_state; + dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INT, &OUT_state, G_TYPE_INVALID); + (*(org_sflphone_SFLphone_ConfigurationManager_is_start_hidden_reply)data->cb) (proxy, OUT_state, error, data->userdata); + return; +} + +static +#ifdef G_HAVE_INLINE +inline +#endif +DBusGProxyCall* +org_sflphone_SFLphone_ConfigurationManager_is_start_hidden_async (DBusGProxy *proxy, org_sflphone_SFLphone_ConfigurationManager_is_start_hidden_reply callback, gpointer userdata) + +{ + DBusGAsyncData *stuff; + stuff = g_new (DBusGAsyncData, 1); + stuff->cb = G_CALLBACK (callback); + stuff->userdata = userdata; + return dbus_g_proxy_begin_call (proxy, "isStartHidden", org_sflphone_SFLphone_ConfigurationManager_is_start_hidden_async_callback, stuff, g_free, G_TYPE_INVALID); +} #endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_sflphone_SFLphone_ConfigurationManager */ G_END_DECLS diff --git a/sflphone-gtk/src/configwindow.c b/sflphone-gtk/src/configwindow.c index 0929f04314afd116a8a72263522eae67a169a9e1..c3f175e9988ab05b4d4780784c050260f1309853 100644 --- a/sflphone-gtk/src/configwindow.c +++ b/sflphone-gtk/src/configwindow.c @@ -500,6 +500,12 @@ is_ringtone_enabled( void ) return res; } +void +start_hidden( void ) +{ + dbus_start_hidden(); +} + void ringtone_enabled( void ) { @@ -1071,9 +1077,9 @@ create_audio_tab () GtkWidget* box = gtk_hbox_new( TRUE , 1); gtk_box_pack_start( GTK_BOX(ret) , box , FALSE , FALSE , 1); enableTone = gtk_check_button_new_with_mnemonic( _("_Enable ringtones")); - gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(enableTone), dbus_is_ringtone_enabled() ); - gtk_box_pack_start( GTK_BOX(box) , enableTone , TRUE , TRUE , 1); - g_signal_connect(G_OBJECT( enableTone) , "clicked" , G_CALLBACK( ringtone_enabled ) , NULL); + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(enableTone), dbus_is_ringtone_enabled() ); + gtk_box_pack_start( GTK_BOX(box) , enableTone , TRUE , TRUE , 1); + g_signal_connect(G_OBJECT( enableTone) , "clicked" , G_CALLBACK( ringtone_enabled ) , NULL); // file chooser button fileChooser = gtk_file_chooser_button_new(_("Choose a ringtone"), GTK_FILE_CHOOSER_ACTION_OPEN); gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER( fileChooser) , g_get_home_dir()); @@ -1093,6 +1099,83 @@ create_audio_tab () return ret; } +GtkWidget* +create_general_settings () +{ + GtkWidget *ret; + + GtkWidget *notifFrame; + GtkWidget *notifBox; + GtkWidget *notifAll; + GtkWidget *notifIncoming; + GtkWidget *notifMails; + + GtkWidget *trayFrame; + GtkWidget *trayBox; + GtkWidget *trayItem; + + GtkWidget *dialFrame; + GtkWidget *dialBox; + GtkWidget *dialItem; + + // Main widget + ret = gtk_vbox_new(FALSE, 10); + gtk_container_set_border_width(GTK_CONTAINER(ret), 10); + + // Notifications Frame + notifFrame = gtk_frame_new(_("Notifications")); + gtk_box_pack_start(GTK_BOX(ret), notifFrame, FALSE, FALSE, 0); + gtk_widget_show( notifFrame ); + + notifBox = gtk_vbox_new(FALSE, 10); + gtk_box_pack_start(GTK_BOX(notifFrame), notifBox, FALSE, FALSE, 0); + gtk_widget_show( notifBox ); + gtk_container_add( GTK_CONTAINER(notifFrame) , notifBox); + + notifAll = gtk_radio_button_new_with_label( NULL, _("Enable All")); + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(notifAll), TRUE ); + gtk_box_pack_start( GTK_BOX(notifBox) , notifAll , TRUE , TRUE , 1); + //TODO callback + + notifIncoming = gtk_radio_button_new_with_label_from_widget( GTK_RADIO_BUTTON(notifAll) , _("Only Incoming Calls")); + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(notifIncoming), FALSE ); + gtk_box_pack_start( GTK_BOX(notifBox) , notifIncoming , TRUE , TRUE , 1); + //TODO callback + + notifMails = gtk_radio_button_new_with_label_from_widget( GTK_RADIO_BUTTON(notifAll) , _("Only Voice Mails")); + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(notifMails), FALSE ); + gtk_box_pack_start( GTK_BOX(notifBox) , notifMails , TRUE , TRUE , 1); + //TODO callback + + // System Tray option frame + trayFrame = gtk_frame_new(_("System Tray Icon")); + gtk_box_pack_start(GTK_BOX(ret), trayFrame, FALSE, FALSE, 0); + gtk_widget_show( trayFrame ); + + trayBox = gtk_vbox_new(FALSE, 10); + gtk_box_pack_start(GTK_BOX(trayFrame), trayBox, FALSE, FALSE, 0); + gtk_widget_show( trayBox ); + gtk_container_add( GTK_CONTAINER(trayFrame) , trayBox); + + trayItem = gtk_check_button_new_with_label(_("Start Hidden")); + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(trayItem), dbus_is_start_hidden() ); + gtk_box_pack_start( GTK_BOX(trayBox) , trayItem , TRUE , TRUE , 1); + g_signal_connect(G_OBJECT( trayItem ) , "clicked" , G_CALLBACK( start_hidden ) , NULL); + + GtkWidget* trayItem1 = gtk_radio_button_new_with_label(NULL, _("Popup Main Window On Incoming Call")); + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(trayItem1), TRUE ); + gtk_box_pack_start( GTK_BOX(trayBox) , trayItem1 , TRUE , TRUE , 1); + //TODO callback + trayItem = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(trayItem1), _("Never Popup Main Window")); + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(trayItem), TRUE ); + gtk_box_pack_start( GTK_BOX(trayBox) , trayItem , TRUE , TRUE , 1); + //TODO callback + + gtk_widget_show_all(ret); + return ret; +} + + /** * Show configuration window with tabs */ @@ -1123,10 +1206,10 @@ show_config_window () gtk_container_set_border_width(GTK_CONTAINER(notebook), 10); gtk_widget_show(notebook); - // Accounts tab - //tab = create_accounts_tab(); - //gtk_notebook_append_page(GTK_NOTEBOOK(notebook), tab, gtk_label_new(_("Accounts"))); - //gtk_notebook_page_num(GTK_NOTEBOOK(notebook), tab); + // General settings tab + tab = create_general_settings(); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), tab, gtk_label_new(_("General Settings"))); + gtk_notebook_page_num(GTK_NOTEBOOK(notebook), tab); // Audio tab tab = create_audio_tab(); diff --git a/sflphone-gtk/src/dbus.c b/sflphone-gtk/src/dbus.c index 191108d4ecb4ccd8100e6b3a9fc8d7f3b10460c2..509779568e01dd02a78b4dbf9ae1c00090dceb00 100644 --- a/sflphone-gtk/src/dbus.c +++ b/sflphone-gtk/src/dbus.c @@ -1186,3 +1186,74 @@ dbus_is_iax2_enabled() g_print("DBus called is_iax2_enabled() on ConfigurationManager\n"); return res; } + +int +dbus_get_dialpad() +{ + int state; + GError* error = NULL; + org_sflphone_SFLphone_ConfigurationManager_get_dialpad( + configurationManagerProxy, + &state, + &error); + g_print("After"); + if(error) + { + g_error_free(error); + } + else + g_print("DBus called get_dialpad on ConfigurationManager\n"); + return state; +} + +void +dbus_set_dialpad( ) +{ + GError* error = NULL; + org_sflphone_SFLphone_ConfigurationManager_set_dialpad( + configurationManagerProxy, + &error); + g_print("After"); + if(error) + { + g_error_free(error); + } + else + g_print("DBus called set_dialpad on ConfigurationManager\n"); +} + +void +dbus_start_hidden( void ) +{ + GError* error = NULL; + org_sflphone_SFLphone_ConfigurationManager_start_hidden( + configurationManagerProxy, + &error); + g_print("After"); + if(error) + { + g_error_free(error); + } + else + g_print("DBus called start_hidden on ConfigurationManager\n"); +} + + +int +dbus_is_start_hidden( void ) +{ + GError* error = NULL; + int state; + org_sflphone_SFLphone_ConfigurationManager_is_start_hidden( + configurationManagerProxy, + &state, + &error); + g_print("After"); + if(error) + { + g_error_free(error); + } + else + g_print("DBus called start_hidden on ConfigurationManager\n"); + return state; +} diff --git a/sflphone-gtk/src/dbus.h b/sflphone-gtk/src/dbus.h index 291c20cce2828633e14d082d41fe09f00409e329..62780762429c585f1feb17d68bf6868fa5b4d29a 100644 --- a/sflphone-gtk/src/dbus.h +++ b/sflphone-gtk/src/dbus.h @@ -79,6 +79,10 @@ int dbus_is_ringtone_enabled( void ); void dbus_ringtone_enabled( void ); gchar* dbus_get_ringtone_choice( void ); void dbus_set_ringtone_choice( const gchar* tone ); +void dbus_set_dialpad( ); +int dbus_get_dialpad( void ); +void dbus_start_hidden( void ); +int dbus_is_start_hidden( void ); /* Instance */ void dbus_register( int pid, gchar * name); diff --git a/sflphone-gtk/src/main.c b/sflphone-gtk/src/main.c index 36ccc06367ba591cc588ad1ab7abc1f58970f729..fc08122d9ab539b6a6cb9ead5e03bc93473aad53 100644 --- a/sflphone-gtk/src/main.c +++ b/sflphone-gtk/src/main.c @@ -49,6 +49,12 @@ There is NO WARRANTY, to the extent permitted by law.\n\n"); show_status_icon(); create_main_window (); + if( dbus_is_start_hidden() ) + { + gtk_widget_hide(GTK_WIDGET( get_main_window() )); + set_minimized( TRUE ); + } + /* start the main loop */ gtk_main (); } diff --git a/sflphone-gtk/src/menus.c b/sflphone-gtk/src/menus.c index df13d1216f8851491e3e733ee5dbd0068ab83a17..78df41402bb990a6c95714b16be3b373e18ca560 100644 --- a/sflphone-gtk/src/menus.c +++ b/sflphone-gtk/src/menus.c @@ -169,7 +169,6 @@ static void call_minimize ( void * foo) { gtk_widget_hide(GTK_WIDGET( get_main_window() )); - set_minimized( TRUE ); } @@ -464,10 +463,11 @@ create_edit_menu() } /* ----------------------------------------------------------------- */ static void -view_dial_pad (GtkCheckMenuItem *checkmenuitem, +view_dialpad (GtkCheckMenuItem *checkmenuitem, void* foo) { main_window_dialpad(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(checkmenuitem))); + dbus_set_dialpad(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(checkmenuitem))); } GtkWidget * @@ -482,20 +482,17 @@ create_view_menu() menu = gtk_menu_new (); menu_items = gtk_check_menu_item_new_with_mnemonic (_("_Dialpad")); - gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM ( menu_items ), TRUE); + gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM ( menu_items ), dbus_get_dialpad()); main_window_dialpad(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu_items))); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_items); g_signal_connect(G_OBJECT (menu_items), "toggled", - G_CALLBACK (view_dial_pad), + G_CALLBACK (view_dialpad), NULL); gtk_widget_show (menu_items); menu_items = gtk_check_menu_item_new_with_mnemonic (_("_Volume controls")); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_items); gtk_widget_set_sensitive( GTK_WIDGET(menu_items), FALSE); - g_signal_connect(G_OBJECT (menu_items), "toggled", - G_CALLBACK (view_dial_pad), - NULL); gtk_widget_show (menu_items); menu_items = gtk_menu_item_new_with_mnemonic(_("_Toolbar")); diff --git a/src/dbus/configurationmanager-glue.h b/src/dbus/configurationmanager-glue.h index 8d555ec660f82f989169982f8da6d249ce97f895..dfbb970ddc9394c08c55db031f54e6cbb6dabfef 100644 --- a/src/dbus/configurationmanager-glue.h +++ b/src/dbus/configurationmanager-glue.h @@ -52,6 +52,10 @@ public: register_method(ConfigurationManager, getAudioDeviceIndex, _getAudioDeviceIndex_stub); register_method(ConfigurationManager, getCurrentAudioOutputPlugin, _getCurrentAudioOutputPlugin_stub); register_method(ConfigurationManager, isIax2Enabled, _isIax2Enabled_stub); + register_method(ConfigurationManager, getDialpad, _getDialpad_stub); + register_method(ConfigurationManager, setDialpad, _setDialpad_stub); + register_method(ConfigurationManager, startHidden, _startHidden_stub); + register_method(ConfigurationManager, isStartHidden, _isStartHidden_stub); } ::DBus::IntrospectedInterface* const introspect() const @@ -219,6 +223,24 @@ public: { "res", "i", false }, { 0, 0, 0 } }; + static ::DBus::IntrospectedArgument getDialpad_args[] = + { + { "state", "i", false }, + { 0, 0, 0 } + }; + static ::DBus::IntrospectedArgument setDialpad_args[] = + { + { 0, 0, 0 } + }; + static ::DBus::IntrospectedArgument startHidden_args[] = + { + { 0, 0, 0 } + }; + static ::DBus::IntrospectedArgument isStartHidden_args[] = + { + { "state", "i", false }, + { 0, 0, 0 } + }; static ::DBus::IntrospectedArgument parametersChanged_args[] = { { "list", "a{ss}", false }, @@ -267,6 +289,10 @@ public: { "getAudioDeviceIndex", getAudioDeviceIndex_args }, { "getCurrentAudioOutputPlugin", getCurrentAudioOutputPlugin_args }, { "isIax2Enabled", isIax2Enabled_args }, + { "getDialpad", getDialpad_args }, + { "setDialpad", setDialpad_args }, + { "startHidden", startHidden_args }, + { "isStartHidden", isStartHidden_args }, { 0, 0 } }; static ::DBus::IntrospectedMethod ConfigurationManager_signals[] = @@ -333,6 +359,10 @@ public: virtual ::DBus::Int32 getAudioDeviceIndex( const ::DBus::String& name ) = 0; virtual ::DBus::String getCurrentAudioOutputPlugin( ) = 0; virtual ::DBus::Int32 isIax2Enabled( ) = 0; + virtual ::DBus::Int32 getDialpad( ) = 0; + virtual void setDialpad( ) = 0; + virtual void startHidden( ) = 0; + virtual ::DBus::Int32 isStartHidden( ) = 0; public: @@ -674,6 +704,42 @@ private: wi << argout1; return reply; } + ::DBus::Message _getDialpad_stub( const ::DBus::CallMessage& call ) + { + ::DBus::MessageIter ri = call.reader(); + + ::DBus::Int32 argout1 = getDialpad(); + ::DBus::ReturnMessage reply(call); + ::DBus::MessageIter wi = reply.writer(); + wi << argout1; + return reply; + } + ::DBus::Message _setDialpad_stub( const ::DBus::CallMessage& call ) + { + ::DBus::MessageIter ri = call.reader(); + + setDialpad(); + ::DBus::ReturnMessage reply(call); + return reply; + } + ::DBus::Message _startHidden_stub( const ::DBus::CallMessage& call ) + { + ::DBus::MessageIter ri = call.reader(); + + startHidden(); + ::DBus::ReturnMessage reply(call); + return reply; + } + ::DBus::Message _isStartHidden_stub( const ::DBus::CallMessage& call ) + { + ::DBus::MessageIter ri = call.reader(); + + ::DBus::Int32 argout1 = isStartHidden(); + ::DBus::ReturnMessage reply(call); + ::DBus::MessageIter wi = reply.writer(); + wi << argout1; + return reply; + } }; } } } diff --git a/src/dbus/configurationmanager-introspec.xml b/src/dbus/configurationmanager-introspec.xml index 17102cd009076e7ca318959a203e053c75fa440c..55e0bdc26295dc526433df1d4dd8e264a16b1187 100644 --- a/src/dbus/configurationmanager-introspec.xml +++ b/src/dbus/configurationmanager-introspec.xml @@ -141,6 +141,20 @@ <arg type="i" name="res" direction="out"/> </method> + <method name="getDialpad"> + <arg type="i" name="state" direction="out"/> + </method> + + <method name="setDialpad"> + </method> + + <method name="startHidden"> + </method> + + <method name="isStartHidden"> + <arg type="i" name="state" direction="out"/> + </method> + <!-- ///////////////////////////// --> <signal name="parametersChanged"> <arg type="a{ss}" name="list" direction="out"/> diff --git a/src/dbus/configurationmanager.cpp b/src/dbus/configurationmanager.cpp index b974f9b84d6280924c03fdb9308d8d1e2c335024..9f7e8f40396ae924347116a636a2e1897c306be3 100644 --- a/src/dbus/configurationmanager.cpp +++ b/src/dbus/configurationmanager.cpp @@ -261,3 +261,28 @@ ConfigurationManager::setRingtoneChoice( const ::DBus::String& tone ) Manager::instance().setRingtoneChoice( tone ); } +::DBus::Int32 +ConfigurationManager::getDialpad( void ) +{ + return Manager::instance().getDialpad( ); +} + +void +ConfigurationManager::setDialpad( void ) +{ + Manager::instance().setDialpad( ); +} + +void +ConfigurationManager::startHidden( void ) +{ + Manager::instance().startHidden( ); +} + +::DBus::Int32 +ConfigurationManager::isStartHidden( void ) +{ + return Manager::instance().isStartHidden( ); +} + + diff --git a/src/dbus/configurationmanager.h b/src/dbus/configurationmanager.h index 5cba2dcfbc049aa540e609b682b66589c76665a4..dfc5e4085072ca305fb80bc660692135e007d5ec 100644 --- a/src/dbus/configurationmanager.h +++ b/src/dbus/configurationmanager.h @@ -76,6 +76,11 @@ public: void ringtoneEnabled( void ); ::DBus::String getRingtoneChoice( void ); void setRingtoneChoice( const ::DBus::String& tone ); + ::DBus::Int32 getDialpad( void ); + void setDialpad( void ); + ::DBus::Int32 isStartHidden( void ); + void startHidden( void ); + }; diff --git a/src/global.h b/src/global.h index 3e6a9103575ce28cf43086e793ecc9b2bded37e6..923fb5e61d32e69d9c75dc221860d83d62491ef0 100644 --- a/src/global.h +++ b/src/global.h @@ -109,6 +109,8 @@ typedef short int16; #define SPEEX_STRING_DESCRIPTION "speex" #define ILBC_STRING_DESCRIPTION "ilbc" #define RINGTONE_ENABLED 1 +#define DISPLAY_DIALPAD 1 +#define START_HIDDEN 1 #define ERROR_ALSA_CAPTURE_DEVICE 0 #define ERROR_ALSA_PLAYBACK_DEVICE 1 diff --git a/src/managerimpl.cpp b/src/managerimpl.cpp index c587538cf891d7601334ca402b2a648ec6de3c9a..a570b83926f0920869f4258243c2196429365fcc 100644 --- a/src/managerimpl.cpp +++ b/src/managerimpl.cpp @@ -1098,6 +1098,8 @@ ManagerImpl::initConfigFile (void) fill_config_str(VOICEMAIL_NUM, DFT_VOICEMAIL); fill_config_int(CONFIG_ZEROCONF, CONFIG_ZEROCONF_DEFAULT_STR); fill_config_int(CONFIG_RINGTONE, YES_STR); + fill_config_int(CONFIG_DIALPAD, YES_STR); + fill_config_int(CONFIG_START, NO_STR); // Loads config from ~/.sflphone/sflphonedrc or so.. if (createSettingsPath() == 1) { @@ -1430,6 +1432,31 @@ ManagerImpl::setRingtoneChoice( const std::string& tone ) setConfig( AUDIO , RING_CHOICE , tone ); } +int +ManagerImpl::getDialpad( void ) +{ + return getConfigInt( PREFERENCES , CONFIG_DIALPAD ); +} + +void +ManagerImpl::setDialpad( void ) +{ + ( getConfigInt( PREFERENCES , CONFIG_DIALPAD ) == DISPLAY_DIALPAD )? setConfig(PREFERENCES , CONFIG_DIALPAD , NO_STR ) : setConfig( PREFERENCES , CONFIG_DIALPAD , YES_STR ); + +} + +void +ManagerImpl::startHidden( void ) +{ + ( getConfigInt( PREFERENCES , CONFIG_START ) == START_HIDDEN)? setConfig(PREFERENCES , CONFIG_START , NO_STR ) : setConfig( PREFERENCES , CONFIG_START , YES_STR ); +} + +int +ManagerImpl::isStartHidden( void ) +{ + return getConfigInt( PREFERENCES , CONFIG_START ); +} + void ManagerImpl::notifyErrClient( const int& errCode ) { diff --git a/src/managerimpl.h b/src/managerimpl.h index 02936e96c6c34c7c9b01833ac81fda02fd3e9897..21522e46faa73d24aec827a3a9732725e8f68774 100644 --- a/src/managerimpl.h +++ b/src/managerimpl.h @@ -347,6 +347,12 @@ public: void ringtoneEnabled( void ); std::string getRingtoneChoice( void ); void setRingtoneChoice( const std::string& ); + int getDialpad( void ); + void setDialpad( void ); + int isStartHidden( void ); + void startHidden( void ); + + /** * Inverse of serialize */ diff --git a/src/user_cfg.h b/src/user_cfg.h index d55f124dd068d848574a60f7a2c125caadef77f1..f82c46fb02abcbba09a40c0257a06eef46c67938 100644 --- a/src/user_cfg.h +++ b/src/user_cfg.h @@ -66,6 +66,8 @@ // zeroconfig module #define CONFIG_ZEROCONF "Zeroconf.enable" #define CONFIG_RINGTONE "Ringtones.enable" +#define CONFIG_DIALPAD "Dialpad.display" +#define CONFIG_START "Start.hidden" // Default values #define EMPTY_FIELD ""