Set necessary callbacks to external status value change of buttons 48/61748/7
authorBartlomiej Uliasz <b.uliasz@samsung.com>
Thu, 10 Mar 2016 08:46:36 +0000 (09:46 +0100)
committerBartlomiej Uliasz <b.uliasz@samsung.com>
Fri, 11 Mar 2016 11:18:23 +0000 (03:18 -0800)
Change-Id: I2302b981ff53c87db20feb490b06208b7a12f5f4
Signed-off-by: Bartlomiej Uliasz <b.uliasz@samsung.com>
15 files changed:
include/common/menumgr.h
include/data/settings_picture.h
include/data/system/settings_clock.h
include/data/system/settings_language.h
include/data/system/settings_wakeup_timer.h
org.tizen.settings.xml.in
src/common/menumgr.c
src/data/settings_picture.c
src/data/system/settings_clock.c
src/data/system/settings_language.c
src/data/system/settings_wakeup_timer.c
src/layout/layout_picture.c
src/layout/layout_support.c
src/layout/layout_system.c
src/layout/layout_voice.c

index d30bded8db16a385466a6566e7d7c0b0e4e01ced..6678cb12e85673beac13b4b8acff044cc71d03b7 100644 (file)
@@ -33,6 +33,10 @@ struct menumgr_info {
        void (*selected)(void *data, int id);
        void (*focused)(void *data, int id);
        void (*selected_menu)(void *data, int id);
+
+       /* Function to register callback that update what needed and calls menumgr_update when value changes
+        * in system (changed by any app/service etc.). When data == NULL callbacks are unregistered. */
+       void (*update_cb)(void *data);
 };
 
 struct menumgr *menumgr_create(Evas_Object *table, Evas_Object *tab_menu_btn,
index bc20d0372be0dc96fce4b0591e4efcc35e781310..8acaafd53c831704f46869871c0e7b79894b29a0 100644 (file)
@@ -62,4 +62,13 @@ void settings_picture_set_screen_adjust(int adj);
 int settings_picture_get_screen_adjust(void);
 const char *settings_picture_get_screen_adjust_str(void);
 
+/* Sets callbacks for menumgr_update when proper setting changes in system. */
+void settings_picture_set_picture_mode_update_callbacks(void *data);
+void settings_picture_set_contrast_update_callbacks(void *data);
+void settings_picture_set_brightness_update_callbacks(void *data);
+void settings_picture_set_sharpness_update_callbacks(void *data);
+void settings_picture_set_color_update_callbacks(void *data);
+void settings_picture_set_tint_update_callbacks(void *data);
+void settings_picture_set_screen_adj_update_callbacks(void *data);
+
 #endif /* __AIR_SETTINGS_PICTURE_H__ */
index 932db2e9418b7f531b736413b787d8446e62f444..a0c3a29da43d3c9fe2208825738f522aa77983e1 100644 (file)
@@ -12,4 +12,8 @@ bool settings_clock_get_current_time(struct tm *current_time);
 bool settings_clock_set_current_time(struct tm *current_time);
 char *settings_clock_get_clock_status_str();
 
+/* Set callbacks to call menumgr_update() when status changed
+ * (system settings changes and minute update) */
+void settings_clock_set_state_update_callbacks(void *data);
+
 #endif /* SETTINGS_CLOCK_H_ */
index 02811e848a05119aea35f6ca383d001f1dfd104a..564611ab0e67bc38e39cf30bdfeca14eb99f2a7e 100644 (file)
@@ -28,19 +28,30 @@ typedef enum _language_type {
 
 /* Sets current language */
 void settings_language_set_language(settings_language_type lang_type);
+
 /* Gets current language ID */
 settings_language_type settings_language_get_language_id(void);
+
 /* Gets current locale language string.
  * Note that the returned string needs to be freed after use. */
 char *settings_language_get_language_locale_str(void);
+
 /* Gets current display language string. */
 char *settings_language_get_language_display_str(void);
 
 /* Sets current subtitle language */
 void settings_language_set_subtitle_language(settings_language_type lang_type);
+
 /* Gets current subtitle language ID */
 settings_language_type settings_language_get_subtitle_language_id(void);
+
 /* Gets current display subtitlelanguage string. */
 char *settings_language_get_subtitle_language_display_str(void);
 
+/* Sets callback for menumgr_update when language system setting changes. */
+void settings_language_set_state_update_callbacks(void *data);
+
+/* Sets callback for menumgr_update when subtitle system setting changes. */
+void settings_language_set_subtitle_state_update_callbacks(void *data);
+
 #endif /* __AIR_SETTINGS_LANGUAGE_H__  */
index 95bfb176f9af2f444611e1a4149cfc847eb8c95a..b6b72173037941873c6bfe364f2e04120816deb3 100644 (file)
@@ -56,5 +56,7 @@ int settings_wakeup_timer_get_source(void);
 int settings_wakeup_timer_get_channel(void);
 //@TODO settings_wakeup_timer_set_timer()
 
+/* Sets callback for menumgr_update when setting changes in system. */
+void settings_wakeup_timer_set_state_update_callbacks(void *data);
 
 #endif /* __AIR_SETTINGS_WAKEUP_TIMER_H__ */
index c668bf2c986b2c9dca02f473ffc2c9c17a580882..5537544df6f0d736b6b7793cc08d318735dc2eb8 100644 (file)
@@ -9,6 +9,7 @@
        </ui-application>
        <privileges>
                <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+               <privilege>http://tizen.org/privilege/alarm.get</privilege>
                <privilege>http://tizen.org/privilege/alarm.set</privilege>
                <privilege>http://tizen.org/privilege/internet</privilege>
                <privilege>http://tizen.org/privilege/network.get</privilege>
index c858a998a388986e72fb068de171d7064b04494f..52183a08396f7e23a5de97b58bd00fcb57ee60f5 100644 (file)
@@ -227,6 +227,9 @@ struct menumgr *menumgr_create(Evas_Object *table, Evas_Object *tab_menu_btn,
 
                m->btn[i] = btn;
                m->info[i] = &info[i];
+
+               if (m->info[i]->update_cb)
+                       m->info[i]->update_cb(m);
        }
 
        return m;
@@ -242,8 +245,11 @@ void menumgr_destroy(struct menumgr *m)
                return;
        }
 
-       for (i = 0; i < m->len; i++)
+       for (i = 0; i < m->len; i++) {
                inputmgr_remove_callback(m->btn[i], &_handler);
+               if (m->info[i]->update_cb)
+                       m->info[i]->update_cb(NULL);
+       }
 
        free(m);
 }
index 487f9a7b7d7fcd912a324ef422f0d5147bc87f90..55dfbbd6eabe81cddfefab8ab4ea7ec348e79bcc 100644 (file)
@@ -241,3 +241,66 @@ const char *settings_picture_get_screen_adjust_str(void)
 {
        return screen_adj_names[screen_adj];
 }
+
+void settings_picture_set_picture_mode_update_callbacks(void *data)
+{
+       if (data) {
+               //@TODO: set needed callbacks
+       } else {
+               //@TODO: unset previously set callbacks
+       }
+}
+
+void settings_picture_set_contrast_update_callbacks(void *data)
+{
+       if (data) {
+               //@TODO: set needed callbacks
+       } else {
+               //@TODO: unset previously set callbacks
+       }
+}
+
+void settings_picture_set_brightness_update_callbacks(void *data)
+{
+       if (data) {
+               //@TODO: set needed callbacks
+       } else {
+               //@TODO: unset previously set callbacks
+       }
+}
+
+void settings_picture_set_sharpness_update_callbacks(void *data)
+{
+       if (data) {
+               //@TODO: set needed callbacks
+       } else {
+               //@TODO: unset previously set callbacks
+       }
+}
+
+void settings_picture_set_color_update_callbacks(void *data)
+{
+       if (data) {
+               //@TODO: set needed callbacks
+       } else {
+               //@TODO: unset previously set callbacks
+       }
+}
+
+void settings_picture_set_tint_update_callbacks(void *data)
+{
+       if (data) {
+               //@TODO: set needed callbacks
+       } else {
+               //@TODO: unset previously set callbacks
+       }
+}
+
+void settings_picture_set_screen_adj_update_callbacks(void *data)
+{
+       if (data) {
+               //@TODO: set needed callbacks
+       } else {
+               //@TODO: unset previously set callbacks
+       }
+}
index 06636ff70c3ecdef9b771c11d996d59e6c37c7e4..ec258bc7f807af245ec59c7364a7fc0eec9de27d 100644 (file)
@@ -1,12 +1,19 @@
-#include <vconf.h>
 #include <alarm.h>
+#include <Ecore.h>
 #include <string.h>
-#include "define.h"
+#include <system_settings.h>
+#include <vconf.h>
 #include "app_debug.h"
+#include "define.h"
+#include "common/menumgr.h"
 #include "data/system/settings_clock.h"
 
 #define MAX_DATETIME_LENGTH 35
 
+Ecore_Timer *priv_timer = NULL;
+
+static void add_next_minute_cb(void *data);
+
 bool settings_clock_is_24h_set(bool *h24)
 {
        int res = 0;
@@ -119,3 +126,111 @@ char *settings_clock_get_clock_status_str()
                return strdup(str_buffer);
        }
 }
+
+static void _system_time_setting_changed_cb(system_settings_key_e key, void *user_data)
+{
+       _DBG("System setting %d changed", key);
+       menumgr_update(user_data);
+}
+
+/* TODO: Change when alarm will work to:
+ * int _minute_update_cb(alarm_id_t alarm_id,void *user_data)
+ */
+static Eina_Bool _minute_update_cb(void *data)
+{
+       menumgr_update(data);
+       add_next_minute_cb(data);
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void add_next_minute_cb(void *data)
+{
+       priv_timer = ecore_timer_add((double)(60 - (time(NULL) % 60)), _minute_update_cb, data);
+/*
+ * Currently gives ERR_ALARM_NO_PERMISSION result despite alarm.set permission set
+       int result = ALARMMGR_RESULT_SUCCESS;
+       alarm_id_t _minute_alarm_id = 0;
+       time_t trigger_at_time = time(NULL);
+       trigger_at_time += 60 - (trigger_at_time % 60);
+       result = alarmmgr_add_alarm_withcb(ALARM_TYPE_VOLATILE, trigger_at_time,
+                                       (time_t)60, _minute_update_cb, data, &_minute_alarm_id);
+       if (result != ALARMMGR_RESULT_SUCCESS)
+               _ERR("Cannot add alarm. Error value %d", result);
+       else
+               _DBG("Time cb set");
+*/
+/*
+ * This method also gives ERR_ALARM_NO_PERMISSION result as above
+       int ret = ALARMMGR_RESULT_SUCCESS;
+       time_t current_time = 0;
+       struct tm current_tm;
+       alarm_entry_t* alarm = NULL;
+       alarm_id_t alarm_id;
+       alarm_date_t alarm_time;
+
+       time(&current_time);
+       _DBG("Current time: %s", ctime(&current_time));
+       localtime_r(&current_time, &current_tm);
+
+       alarm = alarmmgr_create_alarm();
+       if (!alarm) {
+               _ERR("Cannot create alarm");
+               return;
+       }
+       alarm_time.year = current_tm.tm_year + 1900;
+       alarm_time.month = current_tm.tm_mon + 1;
+       alarm_time.day = current_tm.tm_mday;
+       alarm_time.hour = current_tm.tm_hour;
+       alarm_time.min = current_tm.tm_min + 1;
+       alarm_time.sec = 0;
+       _DBG("Alarm time: %d/%d/%d %d:%d:%d\n",
+                       alarm_time.year, alarm_time.month, alarm_time.day, alarm_time.hour, alarm_time.min, alarm_time.sec);
+       if(
+                       (ret = alarmmgr_set_time(alarm, alarm_time)) != ALARMMGR_RESULT_SUCCESS
+                       || (ret = alarmmgr_set_repeat_mode(alarm, ALARM_REPEAT_MODE_REPEAT, 60)) != ALARMMGR_RESULT_SUCCESS
+                       || (ret = alarmmgr_set_time(alarm, alarm_time)) != ALARMMGR_RESULT_SUCCESS
+                       || (ret = alarmmgr_set_type(alarm, ALARM_TYPE_VOLATILE)) != ALARMMGR_RESULT_SUCCESS
+                       || (ret = alarmmgr_add_alarm_with_localtime(alarm, NULL, &alarm_id)) != ALARMMGR_RESULT_SUCCESS
+                       ) {
+               _ERR("Failed to create alarm. Error: %d", ret);
+               SYSTEM_SETTINGS_KEY_TIME_CHANGED
+       }
+*/
+}
+
+void settings_clock_set_state_update_callbacks(void *data)
+{
+       int ret = 0;
+       if (data) {
+               if ((ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR,
+                                       _system_time_setting_changed_cb, data)) != SYSTEM_SETTINGS_ERROR_NONE
+                       || (ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED,
+                                       _system_time_setting_changed_cb, data)) != SYSTEM_SETTINGS_ERROR_NONE
+                       || (ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE,
+                                       _system_time_setting_changed_cb, data)) != SYSTEM_SETTINGS_ERROR_NONE)
+                       _ERR("Cannot set callbacks for system settings change. Code = %d", ret);
+
+               /* TODO: look at add_next_minute_cb() comments
+               if (alarmmgr_init("org.tizen.settings") == ALARMMGR_RESULT_SUCCESS
+                               && alarmmgr_set_cb(_minute_update_cb, data) == ALARMMGR_RESULT_SUCCESS) {
+               }
+               */
+               add_next_minute_cb(data);
+               /* TODO: ditto
+               } else {
+                       _ERR("Failed to initialize alarmmgr");
+               }
+               */
+       } else {
+               if (system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR)
+                                       != SYSTEM_SETTINGS_ERROR_NONE
+                       || system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED)
+                                       != SYSTEM_SETTINGS_ERROR_NONE
+                       || system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE)
+                                       != SYSTEM_SETTINGS_ERROR_NONE)
+                       _ERR("Cannot unset callbacks for system settings change");
+
+               if (!ecore_timer_del(priv_timer))
+                       _ERR("Cannot delete ecore timer");
+       }
+}
index c5db57c1b6d79574f02085ad6255f054fff50914..69eef4f1e2b27d333a28ed40e2240f419c49390a 100644 (file)
@@ -19,6 +19,7 @@
 #include <utils_i18n.h>
 #include "app_debug.h"
 #include "define.h"
+#include "common/menumgr.h"
 #include "data/system/settings_language.h"
 
 #define LANG_LOCALE_STR_L 6
@@ -107,3 +108,31 @@ char *settings_language_get_subtitle_language_display_str(void)
        //@TODO: get subtitle language and corresponding display string
        return strdup("English");
 }
+
+static void _language_update_cb(system_settings_key_e key, void *user_data)
+{
+       _DBG("Language system setting changed");
+       menumgr_update(user_data);
+}
+
+void settings_language_set_state_update_callbacks(void *data)
+{
+       if (data) {
+               if (system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, _language_update_cb, data)
+                               != SYSTEM_SETTINGS_ERROR_NONE)
+                       _ERR("Cannot set callback for language system setting change");
+       } else {
+               if (system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE)
+                               != SYSTEM_SETTINGS_ERROR_NONE)
+                       _ERR("Cannot remove callback for language system setting change");
+       }
+}
+
+void settings_language_set_subtitle_state_update_callbacks(void *data)
+{
+       if (data) {
+               //@TODO: set needed callbacks
+       } else {
+               //@TODO: unset previously set callbacks
+       }
+}
index d065f5722cd9fa653af3d6bad9d8ba4a2ece3d5e..0f33c89d2ac2233e21e2822fea5f69ee2dc14991 100644 (file)
@@ -73,3 +73,12 @@ int settings_wakeup_timer_get_channel(void)
 
        return TMP_CHANNEL1;
 }
+
+void settings_wakeup_timer_set_state_update_callbacks(void *data)
+{
+       if (data) {
+               //@TODO: set needed callbacks
+       } else {
+               //@TODO: unset previously set callbacks
+       }
+}
index c36f5f72bff496b57b9609aab626d82935c32187..e98b050ed50150c273b11cfec9f3d86ac712c35f 100644 (file)
@@ -78,7 +78,8 @@ static struct menumgr_info menu_info[] = {
                .progress_evas = NULL,
                .selected = _selected,
                .focused = _focused,
-               .selected_menu = _selected_menu
+               .selected_menu = _selected_menu,
+               .update_cb = settings_picture_set_picture_mode_update_callbacks
        },
        {
                .id = MENU_CONTRAST,
@@ -90,7 +91,8 @@ static struct menumgr_info menu_info[] = {
                .progress_evas = NULL,
                .selected = _selected,
                .focused = _focused,
-               .selected_menu = _selected_menu
+               .selected_menu = _selected_menu,
+               .update_cb = settings_picture_set_contrast_update_callbacks
        },
        {
                .id = MENU_BRIGHTNESS,
@@ -102,7 +104,8 @@ static struct menumgr_info menu_info[] = {
                .progress_evas = NULL,
                .selected = _selected,
                .focused = _focused,
-               .selected_menu = _selected_menu
+               .selected_menu = _selected_menu,
+               .update_cb = settings_picture_set_brightness_update_callbacks
        },
        {
                .id = MENU_SHARPNESS,
@@ -114,7 +117,8 @@ static struct menumgr_info menu_info[] = {
                .progress_evas = NULL,
                .selected = _selected,
                .focused = _focused,
-               .selected_menu = _selected_menu
+               .selected_menu = _selected_menu,
+               .update_cb = settings_picture_set_sharpness_update_callbacks
        },
        {
                .id = MENU_COLOR,
@@ -126,7 +130,8 @@ static struct menumgr_info menu_info[] = {
                .progress_evas = NULL,
                .selected = _selected,
                .focused = _focused,
-               .selected_menu = _selected_menu
+               .selected_menu = _selected_menu,
+               .update_cb = settings_picture_set_color_update_callbacks
        },
        {
                .id = MENU_TINT,
@@ -138,7 +143,8 @@ static struct menumgr_info menu_info[] = {
                .progress_evas = NULL,
                .selected = _selected,
                .focused = _focused,
-               .selected_menu = _selected_menu
+               .selected_menu = _selected_menu,
+               .update_cb = settings_picture_set_tint_update_callbacks
        },
        {
                .id = MENU_SCREEN_ADJ,
@@ -150,7 +156,8 @@ static struct menumgr_info menu_info[] = {
                .progress_evas = NULL,
                .selected = _selected,
                .focused = _focused,
-               .selected_menu = _selected_menu
+               .selected_menu = _selected_menu,
+               .update_cb = settings_picture_set_screen_adj_update_callbacks
        },
 };
 
index 13ad2cda295694a324bd06fcfc0ab577bf29eb54..f96a5b847106fa2033ada8e8829f90fe14cf309f 100644 (file)
@@ -58,6 +58,9 @@ static struct menumgr_info menu_info[] = {
                .disabled = EINA_TRUE,
                .status = _get_sw_version,
                .selected = _selected,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = NULL,
        },
        {
                .id = MENU_MOTION_CONTROL,
@@ -66,6 +69,9 @@ static struct menumgr_info menu_info[] = {
                .disabled = EINA_TRUE,
                .status = NULL,
                .selected = _selected,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = NULL,
        },
        {
                .id = MENU_USER_MODE,
@@ -74,6 +80,9 @@ static struct menumgr_info menu_info[] = {
                .disabled = EINA_TRUE,
                .status = NULL,
                .selected = _selected,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = NULL,
        },
        {
                .id = MENU_VOICE_RECOGNITION,
@@ -81,6 +90,9 @@ static struct menumgr_info menu_info[] = {
                .style = STYLE_NORMAL_BTN,
                .disabled = EINA_TRUE,
                .selected = _selected,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = NULL,
        },
        {
                .id = MENU_SMART_CONTROL,
@@ -89,6 +101,9 @@ static struct menumgr_info menu_info[] = {
                .disabled = EINA_TRUE,
                .status = NULL,
                .selected = _selected,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = NULL,
        },
        {
                .id = MENU_CONTACT,
@@ -97,6 +112,9 @@ static struct menumgr_info menu_info[] = {
                .disabled = EINA_TRUE,
                .status = NULL,
                .selected = _selected,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = NULL,
        },
 };
 
index ef25764e06af2093eac369f02e8b503d4c4d2c41..2f23ea5b9c49a3be55fb2589dfd7576b21fb7532 100644 (file)
@@ -69,6 +69,12 @@ static void _focused(void *data, int id);
 static void _selected_menu(void *data, int id);
 static void _location_selected(void *data, int id);
 
+/* TODO: Move it to proper file when exist */
+void set_callback_for_sleep_timer_change(void *data);
+
+/* TODO: Move it to proper file when exist */
+void set_callback_for_system_location_change(void *data);
+
 static struct menumgr_info menu_info[] = {
        {
                .id = MENU_CLOCK,
@@ -79,7 +85,10 @@ static struct menumgr_info menu_info[] = {
                .status = _get_clock_mode,
                .selected = _selected,
                .focused = _focused,
-               .selected_menu = _selected_menu
+               .selected_menu = _selected_menu,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = settings_clock_set_state_update_callbacks
        },
        {
                .id = MENU_SLEEP_TIMER,
@@ -89,7 +98,10 @@ static struct menumgr_info menu_info[] = {
                .status = _get_sleep_timer,
                .selected = _selected,
                .focused = _focused,
-               .selected_menu = _selected_menu
+               .selected_menu = _selected_menu,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = set_callback_for_sleep_timer_change
        },
        {
                .id = MENU_WAKEUP_TIMER,
@@ -99,7 +111,10 @@ static struct menumgr_info menu_info[] = {
                .status = _get_wakeup_timer,
                .selected = _selected,
                .focused = _focused,
-               .selected_menu = _selected_menu
+               .selected_menu = _selected_menu,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = settings_wakeup_timer_set_state_update_callbacks
        },
        {
                .id = MENU_CHANGE_PINCODE,
@@ -108,7 +123,10 @@ static struct menumgr_info menu_info[] = {
                .disabled = EINA_FALSE,
                .selected = _selected,
                .focused = _focused,
-               .selected_menu = _selected_menu
+               .selected_menu = _selected_menu,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = NULL
        },
        {
                .id = MENU_LANGUAGE,
@@ -118,7 +136,10 @@ static struct menumgr_info menu_info[] = {
                .status = _get_language,
                .selected = _selected,
                .focused = _focused,
-               .selected_menu = _selected_menu
+               .selected_menu = _selected_menu,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = settings_language_set_state_update_callbacks
        },
        {
                .id = MENU_SUBTITLE,
@@ -128,7 +149,10 @@ static struct menumgr_info menu_info[] = {
                .status = _get_subtitle,
                .selected = _selected,
                .focused = _focused,
-               .selected_menu = _selected_menu
+               .selected_menu = _selected_menu,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = settings_language_set_subtitle_state_update_callbacks
        },
        {
                .id = MENU_LOCATION,
@@ -138,7 +162,10 @@ static struct menumgr_info menu_info[] = {
                .status = _get_location,
                .selected = _location_selected,
                .focused = _focused,
-               .selected_menu = _selected_menu
+               .selected_menu = _selected_menu,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = set_callback_for_system_location_change
        },
        {
                .id = MENU_RESET,
@@ -147,7 +174,10 @@ static struct menumgr_info menu_info[] = {
                .disabled = EINA_FALSE,
                .selected = _selected,
                .focused = _focused,
-               .selected_menu = _selected_menu
+               .selected_menu = _selected_menu,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = NULL
        },
 };
 
@@ -162,6 +192,15 @@ static char *_get_sleep_timer(void *data, int id)
        return strdup(STR_OFF);
 }
 
+void set_callback_for_sleep_timer_change(void *data)
+{
+       if (data) {
+               //@TODO: set needed callbacks
+       } else {
+               //@TODO: unset previously set callbacks
+       }
+}
+
 static char *_get_wakeup_timer(void *data, int id)
 {
        return settings_wakeup_timer_display_str();
@@ -216,6 +255,15 @@ static char *_get_location(void *data, int id)
        return strdup(name);
 }
 
+void set_callback_for_system_location_change(void *data)
+{
+       if (data) {
+               //@TODO: set needed callbacks
+       } else {
+               //@TODO: unset previously set callbacks
+       }
+}
+
 static void _selected(void *data, int id)
 {
        switch (id) {
index 7c01b66e54e552f520f0de78dd671d003cde8ab7..79d8dec6b774db955be831af72dd3b5758704991 100644 (file)
@@ -55,6 +55,9 @@ static struct menumgr_info menu_info[] = {
                .disabled = EINA_TRUE,
                .status = _get_status,
                .selected = _selected,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = NULL,
        },
        {
                .id = MENU_VOICE_LANGUAGE,
@@ -63,6 +66,9 @@ static struct menumgr_info menu_info[] = {
                .disabled = EINA_TRUE,
                .status = _get_status,
                .selected = _selected,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = NULL,
        },
        {
                .id = MENU_TTS_SPEED,
@@ -71,6 +77,9 @@ static struct menumgr_info menu_info[] = {
                .disabled = EINA_TRUE,
                .status = _get_status,
                .selected = _selected,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = NULL,
        },
        {
                .id = MENU_TTS_LANGUAGE,
@@ -79,6 +88,9 @@ static struct menumgr_info menu_info[] = {
                .disabled = EINA_TRUE,
                .status = _get_status,
                .selected = _selected,
+               .progress_value = NULL,
+               .progress_evas = NULL,
+               .update_cb = NULL,
        },
 };