Evas_Object *box;
Eina_List *popup_buttons;
int (*ui_id_on_show_focus)(void);
+ int item_selected_on_show;
};
/* View class functions: */
static void _hide(void *view_data);
static void _destroy(void *view_data);
-void _key_down_cb(int id, void *data, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev);
+static void _key_down_cb(int id, void *data, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev);
static input_handler _input_handler = {
.key_down = _key_down_cb,
{
SETTING_TRACE_BEGIN;
struct _priv *priv = (struct _priv *)data;
- Eina_List *children = NULL;
- Evas_Object *first = NULL;
+ Eina_List *children = elm_box_children_get(priv->box);
+ Evas_Object *first = eina_list_data_get(children);
+ Evas_Object *selected = eina_list_nth(children, priv->item_selected_on_show);
if (!priv) {
_ERR("Invalid parameter.");
return;
}
- children = elm_box_children_get(priv->box);
- first = eina_list_data_get(children);
- elm_object_focus_set(first, EINA_TRUE);
-
+ elm_object_focus_set(selected, EINA_TRUE);
+ elm_radio_value_set(first, priv->item_selected_on_show);
evas_object_show(priv->popup);
SETTING_TRACE_END;
static bool _fill_items(struct _priv *priv, Evas_Object *popup, int item_count, const char **item_text, input_handler *handler)
{
Evas_Object *radio = NULL;
+ Evas_Object *group = NULL;
priv->box = elm_box_add(priv->popup);
elm_box_horizontal_set(priv->box, EINA_FALSE);
int i;
for (i = 0; i < item_count; i++) {
radio = utils_add_radio(priv->box, NULL, "style.popup.list", item_text[i % item_count]);
+ elm_radio_state_value_set(radio, i);
+
+ if (i == 0)
+ group = radio;
+ else
+ elm_radio_group_add(radio, group);
+
evas_object_size_hint_min_set(radio, 300, 50);
evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
return true;
}
-void _key_down_cb(int id, void *data, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev)
+static void _key_down_cb(int id, void *data, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev)
{
if (!obj || !ev) {
_ERR("Invalid argument.");
viewmgr_pop_view();
}
}
+
+void view_generic_popup_set_selected_on_show(void *data, int item)
+{
+ struct _priv *priv = (struct _priv *)data;
+ priv->item_selected_on_show = item;
+}
static void _show(void *data)
{
SETTING_TRACE_BEGIN
- generic_popup_attr *g_data = data;
+ bool automatic;
+ generic_popup_attr *g_data = (generic_popup_attr *)data;
view_class *vc = view_generic_popup_get_vclass();
+
+ settings_clock_is_time_automatic(&automatic);
+ if (automatic)
+ view_generic_popup_set_selected_on_show(g_data->generic_popup_data, TYPE_AUTO);
+ else
+ view_generic_popup_set_selected_on_show(g_data->generic_popup_data, TYPE_MANUAL);
+
vc->show(g_data->generic_popup_data);
SETTING_TRACE_END
}
static void _hide(void *data)
{
SETTING_TRACE_BEGIN;
- generic_popup_attr *g_data = data;
view_class *vc = view_generic_popup_get_vclass();
+ generic_popup_attr *g_data = (generic_popup_attr *)data;
vc->hide(g_data->generic_popup_data);
SETTING_TRACE_END;
}
static void _destroy(void *data)
{
SETTING_TRACE_BEGIN;
- generic_popup_attr *g_data = data;
view_class *vc = view_generic_popup_get_vclass();
+ generic_popup_attr *g_data = (generic_popup_attr *)data;
vc->destroy(g_data->generic_popup_data);
SETTING_TRACE_END;
}