static void unregister_handlers(const struct popup_ops *ops);
static void poweroff_clicked(const struct popup_ops *ops);
static void create_list_view(appdata_s *application_info, const struct popup_ops *ops);
+static void create_poweroff_view(appdata_s *application_info, const struct popup_ops *ops);
static void set_flight_icon(int value);
static __attribute__ ((constructor)) void powerkey_register_popup(void);
static const struct popup_ops powerkey_ops;
static const struct popup_ops flightmode_ops;
-static const struct popup_ops poweroff_ops;
+
+static int telephony_supported = -1;
static int is_supported(const char *path)
{
/* Naviframe */
ad->nf = elm_naviframe_add(ad->layout);
- create_list_view(ad, ops);
+ if (telephony_supported)
+ create_list_view(ad, ops);
+ else
+ create_poweroff_view(ad, ops);
elm_object_part_content_set(ad->layout, "elm.swallow.content", ad->nf);
/* Show window after base gui is set up */
int i;
ad = (appdata_s *)application_info;
- if (ad == NULL) return;
+ if (ad == NULL) {
+ elm_genlist_item_class_free(itc);
+ elm_genlist_item_class_free(ttc);
+ elm_genlist_item_class_free(utc);
+ elm_genlist_item_class_free(ptc);
+
+ return;
+ }
genlist = elm_genlist_add(ad->nf);
elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
elm_naviframe_item_pop_cb_set(nf_it, naviframe_pop_cb, ad->win);
}
+static void
+create_poweroff_view(appdata_s *application_info, const struct popup_ops *ops)
+{
+ appdata_s *ad = NULL;
+ Evas_Object *genlist = NULL;
+ Evas_Object *circle_genlist;
+ Elm_Object_Item *nf_it;
+ Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
+ Elm_Genlist_Item_Class *ttc = elm_genlist_item_class_new();
+ Elm_Genlist_Item_Class *ptc = elm_genlist_item_class_new();
+ Item_Data *id;
+ int i;
+
+ ad = (appdata_s *)application_info;
+ if (ad == NULL) {
+ elm_genlist_item_class_free(itc);
+ elm_genlist_item_class_free(ttc);
+ elm_genlist_item_class_free(ptc);
+
+ return;
+ };
+
+ genlist = elm_genlist_add(ad->nf);
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+
+ circle_genlist = eext_circle_object_genlist_add(genlist, ad->circle_surface);
+ eext_circle_object_genlist_scroller_policy_set(circle_genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+ eext_rotary_object_event_activated_set(circle_genlist, EINA_TRUE);
+
+ ttc->item_style = "title";
+ ttc->func.text_get = _gl_menu_title_text_get;
+ ttc->func.del = NULL;
+
+ itc->item_style = "1text.1icon";
+ itc->func.text_get = _gl_menu_text_get_poweroff;
+ itc->func.content_get = _gl_menu_contents_get_poweroff;
+ itc->func.del = NULL;
+
+ ptc->item_style = "padding";
+ ptc->func.del = NULL;
+
+ /* back key */
+ eext_object_event_callback_add(genlist, EEXT_CALLBACK_BACK, event_back_key_up, (void*)ops);
+ elm_genlist_item_append(genlist, ttc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ i = 0;
+ id = calloc(sizeof(Item_Data), 1);
+ id->index = i;
+ id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, _gl_sel_poweroff_cb, ops);
+
+ elm_genlist_item_append(genlist, ptc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ elm_genlist_item_class_free(itc);
+ elm_genlist_item_class_free(ttc);
+ elm_genlist_item_class_free(ptc);
+
+ nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, genlist, "empty");
+ elm_naviframe_item_pop_cb_set(nf_it, naviframe_pop_cb, ad->win);
+}
+
static int powerkey_list(bundle *b, const struct popup_ops *ops)
{
struct object_ops *obj;
unregister_handlers(ops);
}
-static void remove_other_poweroff_popups(const struct popup_ops *ops)
-{
- if (ops != &poweroff_ops)
- unload_simple_popup(&poweroff_ops);
-}
-
-static int poweroff_launch(bundle *b, const struct popup_ops *ops)
-{
- remove_other_poweroff_popups(ops);
- register_handlers(ops);
- return 0;
-}
-
-static void poweroff_terminate(const struct popup_ops *ops)
-{
- unregister_handlers(ops);
-}
-
static const struct popup_ops powerkey_ops = {
.name = "powerkey",
.show = powerkey_list,
.terminate = flight_mode_terminate,
};
-static const struct popup_ops poweroff_ops = {
- .name = "powerkey",
- .show = load_simple_popup,
- .title = "IDS_ST_BODY_POWER_OFF",
- .content = "IDS_TPLATFORM_BODY_POWER_OFF_THE_DEVICE_Q",
- .left_text = "IDS_COM_SK_CANCEL",
- .right_text = "IDS_HS_BUTTON_POWER_OFF_ABB2",
- .right = poweroff_clicked,
- .pre = poweroff_launch,
- .terminate = poweroff_terminate,
-};
-
static __attribute__ ((constructor)) void powerkey_register_popup(void)
{
- int telephony_supported = -1;
-
telephony_supported = is_supported(TELEPHONY_PATH);
_I("TELEPHONY = %d", telephony_supported);
if (telephony_supported > 1 || telephony_supported < 0) {
telephony_supported = 0;
}
- if (telephony_supported) {
- register_popup(&powerkey_ops);
+ register_popup(&powerkey_ops);
+ if (telephony_supported)
register_popup(&flightmode_ops);
- } else
- register_popup(&poweroff_ops);
}