bt_dev_t *dev;
const char *entry_string;
char *str;
+ char *name;
bt_ug_data *ugd;
ret_if(data == NULL);
ret_if(dev->ugd == NULL);
ugd = dev->ugd;
- ugd->popup =
- _bt_create_popup(ugd->win_main, BT_STR_ERROR,
+ ugd->popup = _bt_create_popup(ugd->win_main,
+ BT_STR_ERROR,
BT_STR_EMPTY_NAME,
_bt_main_popup_del_cb, ugd, 2);
ugd->back_cb = _bt_util_launch_no_event;
+
+ name = elm_entry_utf8_to_markup(dev->name);
+ if (name) {
+ elm_entry_entry_set(dev->entry, name);
+ free(name);
+ } else {
+ elm_entry_entry_set(dev->entry, dev->name);
+ }
+
+ elm_entry_cursor_line_end_set(dev->entry);
return;
}
FN_END;
}
-static void __bt_profile_maxlength_reached(void *data, Evas_Object *obj,
- void *event_info)
+static void __bt_profile_entry_keydown(void *data, Evas *e, Evas_Object *obj,
+ void *event_info)
{
FN_START;
+ bt_dev_t *dev;
+ bt_ug_data *ugd;
+ Evas_Event_Key_Down *ev;
+ Evas_Object *entry = obj;
+
+ ret_if(data == NULL);
+ ret_if(event_info == NULL);
+ ret_if(entry == NULL);
+
+ dev = (bt_dev_t *)data;
+ ugd = dev->ugd;
+
+ ev = (Evas_Event_Key_Down *)event_info;
+ BT_DBG("ENTER ev->key:%s", ev->key);
+
+ if (g_strcmp0(ev->key, "KP_Enter") == 0 ||
+ g_strcmp0(ev->key, "Return") == 0) {
- /* In now, there is no UX guide */
+ Ecore_IMF_Context *imf_context;
+ Evas_Object *entry_container;
+
+ imf_context =
+ (Ecore_IMF_Context*)elm_entry_imf_context_get(entry);
+ if (imf_context)
+ ecore_imf_context_input_panel_hide(imf_context);
+
+ elm_object_focus_set(entry, EINA_FALSE);
+ entry_container = elm_object_parent_widget_get(entry);
+ if (entry_container)
+ elm_object_signal_emit(entry_container,
+ "elm,state,eraser,hide", "elm");
+ }
FN_END;
}
}
} else if (value == ECORE_IMF_INPUT_PANEL_STATE_HIDE){
elm_naviframe_item_title_visible_set(vd->navi_it, EINA_TRUE);
+ BT_DBG("profile saved");
+ __bt_profile_save_clicked_cb(dev, NULL, NULL);
}
FN_END;
__bt_profile_focused_cb, dev);
evas_object_smart_callback_add(entry, "unfocused",
__bt_profile_unfocused_cb, dev);
+ evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_DOWN,
+ __bt_profile_entry_keydown, dev);
/* To be uncommented when we get bluetooth specific string
elm_object_part_text_set(entry, "elm.guide", "Guide Text"); */
ELM_GENLIST_ITEM_NONE,
__bt_profile_media_option_item_sel,
dev_info);
+
vd->media_item = git;
}
vd = ugd->profile_vd;
- if (vd->genlist) {
- evas_object_data_set(vd->genlist, "view_data", NULL);
- elm_genlist_clear(vd->genlist);
- vd->genlist = NULL;
- }
-
if (vd->name_itc) {
elm_genlist_item_class_free(vd->name_itc);
vd->name_itc = NULL;
elm_genlist_item_class_free(vd->hid_itc);
vd->hid_itc = NULL;
}
+ if (vd->network_itc) {
+ elm_genlist_item_class_free(vd->network_itc);
+ vd->network_itc = NULL;
+ }
- vd->imf_context = NULL;
vd->save_btn = NULL;
/* unregister callback functions */
ecore_imf_context_input_panel_event_callback_del(vd->imf_context,
ECORE_IMF_INPUT_PANEL_STATE_EVENT,
__bt_profile_input_panel_state_cb);
+ vd->imf_context = NULL;
}
free(vd);
ugd->profile_vd = NULL;
- elm_naviframe_item_pop(ugd->navi_bar);
-
FN_END;
}
-static void __bt_profile_back_cb(void *data, Evas_Object *obj,
- void *event_info)
+static Eina_Bool __bt_profile_back_clicked_cb(void *data, Elm_Object_Item *it)
{
FN_START;
+ retv_if(!data, EINA_TRUE);
- bt_dev_t *dev_info = NULL;
- bt_ug_data *ugd = NULL;
-
- ret_if(data == NULL);
-
- dev_info = (bt_dev_t *)data;
- ret_if(dev_info->ugd == NULL);
-
- ugd = dev_info->ugd;
- ret_if(ugd->profile_vd == NULL);
-
- _bt_profile_destroy_profile_view(ugd);
-
- FN_END;
-}
-
-static void __bt_profile_back_clicked_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- FN_START;
-
- bt_dev_t *dev_info;
- Ecore_IMF_Context *imf_context;
- Ecore_IMF_Input_Panel_State state = ECORE_IMF_INPUT_PANEL_STATE_HIDE;
-
- dev_info = (bt_dev_t *)data;
- ret_if(dev_info == NULL);
- ret_if(dev_info->entry == NULL);
-
- imf_context = elm_entry_imf_context_get(dev_info->entry);
- if (imf_context) {
- state = ecore_imf_context_input_panel_state_get(imf_context);
- }
-
- if (state == ECORE_IMF_INPUT_PANEL_STATE_SHOW) {
- __bt_profile_save_clicked_cb(dev_info, NULL, NULL);
- } else {
- __bt_profile_back_cb(dev_info, NULL, NULL);
- }
+ bt_ug_data *ugd = (bt_ug_data *)data;
+ ugd->profile_vd = NULL;
FN_END;
+ return EINA_TRUE;
}
/**********************************************************************
bt_profile_view_data *vd;
bt_ug_data *ugd;
- Evas_Object *layout;
Evas_Object *genlist;
- Evas_Object *back_btn;
- Evas_Object *title;
Elm_Object_Item *navi_it;
ret_if(dev_info == NULL);
ret_if(dev_info->ugd == NULL);
ugd = dev_info->ugd;
- dev_info->layout = NULL;
vd = calloc(1, sizeof(bt_profile_view_data));
ret_if(vd == NULL);
vd->win_main = ugd->win_main;
vd->navi_bar = ugd->navi_bar;
- _bt_create_bg(ugd->navi_bar, "group_list");
-
- layout = _bt_create_layout(ugd->navi_bar, NULL, NULL);
- vd->layout = layout;
-
genlist = __bt_profile_draw_genlist(ugd, dev_info);
vd->genlist = genlist;
/* We can get this data from genlist object anytime. */
evas_object_data_set(genlist, "view_data", vd);
- /* create back button */
- back_btn = elm_button_add(layout);
-
navi_it = elm_naviframe_item_push(vd->navi_bar, BT_STR_DETAILS,
- back_btn, NULL, genlist, NULL);
-
- /* Slide title */
- title = elm_label_add(ugd->navi_bar);
- elm_object_style_set(title, "naviframe_title");
- elm_label_slide_mode_set(title, ELM_LABEL_SLIDE_MODE_AUTO);
- elm_label_wrap_width_set(title, 1);
- elm_label_ellipsis_set(title, EINA_TRUE);
- elm_object_text_set(title, BT_STR_DETAILS);
- evas_object_show(title);
- elm_object_item_part_content_set(navi_it, "elm.swallow.title", title);
+ NULL, NULL, genlist, NULL);
elm_naviframe_prev_btn_auto_pushed_set(vd->navi_bar, EINA_FALSE);
ea_object_event_callback_add(vd->navi_bar, EA_CALLBACK_BACK,
ea_naviframe_back_cb, NULL);
-
- /* Style set should be called after elm_naviframe_item_push(). */
- elm_object_style_set(back_btn, "naviframe/back_btn/default");
- evas_object_smart_callback_add(back_btn, "clicked",
- __bt_profile_back_clicked_cb, (void *)dev_info);
+ elm_naviframe_item_pop_cb_set(navi_it, __bt_profile_back_clicked_cb,
+ ugd);
vd->navi_it = navi_it;
{
FN_START;
- __bt_profile_back_cb(data, NULL, NULL);
+ bt_ug_data *ugd;
+
+ ret_if(data == NULL);
+
+ ugd = (bt_ug_data *)data;
+
+ elm_naviframe_item_pop(ugd->navi_bar);
+ ugd->profile_vd = NULL;
FN_END;
}