char *Add_To_Most_Visited_Sites_View::__genlist_label_get_cb(void *data, Evas_Object *obj, const char *part) { if (!data) return NULL; Browser_History_DB::history_item *item = (Browser_History_DB::history_item *)data; if (!item) return NULL; char *mark_up = NULL; BROWSER_LOGD("item->title.c_str()=[%s]", item->title.c_str()); if (!strncmp(part, "elm.text.1", strlen("elm.text.1")) || !strncmp(part, "elm.base.text", strlen("elm.base.text")) || !strncmp(part, "elm.slide.text.1", strlen("elm.slide.text.1"))) { mark_up = elm_entry_utf8_to_markup(item->title.c_str()); return mark_up; } else if (!strncmp(part, "elm.text.2", strlen("elm.text.2")) || !strncmp(part, "elm.slide.text.2", strlen("elm.slide.text.2"))) { mark_up = elm_entry_utf8_to_markup(item->url.c_str()); return mark_up; } return NULL; }
SH_API Evas_Object * create_entry(Evas_Object *parent, Eina_Bool entry_has_one_line, const char *entry_text, Eina_Bool entry_hide_text, Eina_Bool entry_line_nowrap, Eina_Bool entry_editable) { Evas_Object *entry; char *s = NULL; if (entry_text) s = elm_entry_utf8_to_markup(entry_text); entry = elm_entry_add(parent); if (entry_line_nowrap) elm_entry_line_wrap_set(entry, 0); else elm_entry_line_wrap_set(entry, 1); if (s) { elm_entry_entry_set(entry, s); E_FREE(s); } elm_entry_password_set(entry, entry_hide_text); evas_object_size_hint_weight_set(entry, 1.0, 1.0); evas_object_size_hint_align_set(entry, -1.0, -1.0); elm_entry_single_line_set(entry, entry_has_one_line); elm_entry_editable_set(entry, entry_editable); return entry; }
SH_API int _read_stdin_entry(void *data, Ecore_Fd_Handler *fd_handler) { char *buffer; char *s; char c; int i = 0; Evas_Object *obj = data; if (!_stdin_prepare(fd_handler)) return 0; // allocate initial buffer buffer = malloc(sizeof(char)); // get the buffer do { c = getc(stdin); buffer[i] = c; buffer = realloc(buffer, i + sizeof(buffer)); i++; } while (c != EOF); // terminate the string. buffer[i - 1] = '\0'; // add into entry, but before convert to html markup s = elm_entry_utf8_to_markup(buffer); elm_entry_entry_set(obj, s); // free the the pointers, delete handler when we don't need it E_FREE(buffer); E_FREE(s); ecore_main_fd_handler_del(fd_handler); return 0; }
static void _insert_contacts_add_number_callback(const char *number, void *data) { char *content; struct MessageNewViewData *view; int len; view = (struct MessageNewViewData *)data; content = elm_entry_markup_to_utf8(elm_entry_entry_get(view->content_entry)); len = phone_utils_gsm_sms_strlen(content); // Make space for text, number and ending null character content = realloc(content, len + strlen(number) + 1); // Add the number to the end of the content sprintf(content + len, "%s ", number); if (view->content) { free(view->content); } view->content = content; if (view->content != NULL) { elm_entry_entry_set(view->content_entry, elm_entry_utf8_to_markup(view->content)); } }
void Add_To_Most_Visited_Sites_View::__history_item_clicked_cb(void *data, Evas_Object *obj, void *event_info) { BROWSER_LOGD("[%s]", __func__); if (!data) return; Add_To_Most_Visited_Sites_View *add_to_most_visited_sites_view = NULL; add_to_most_visited_sites_view = (Add_To_Most_Visited_Sites_View *)data; Elm_Object_Item *seleted_item = elm_genlist_selected_item_get(obj); Elm_Object_Item *index_item = elm_genlist_first_item_get(obj); int index = 0; /* calculate the index of the selected item */ while (index_item != seleted_item) { /* Do not count date label item */ if (elm_genlist_item_select_mode_get(index_item) != ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) index++; index_item = elm_genlist_item_next_get(index_item); } Evas_Object *entry = br_elm_editfield_entry_get(add_to_most_visited_sites_view->m_url_edit_field); char *mark_up = elm_entry_utf8_to_markup(add_to_most_visited_sites_view->m_history_list[index]->url.c_str()); if (mark_up) { elm_entry_entry_set(entry, mark_up); free(mark_up); } }
static void _init_content_page(struct MessageNewViewData *view) { Evas_Object *win, *btn; win = ui_utils_view_window_get(VIEW_PTR(*view)); view->layout_content = elm_layout_add(win); elm_win_resize_object_add(win, view->layout_content); evas_object_size_hint_weight_set(view->layout_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_layout_file_set(view->layout_content, phoneui_theme, "phoneui/messages/new/content"); evas_object_show(view->layout_content); edje_object_part_text_set(elm_layout_edje_get(view->layout_content), "content_title", D_("Enter your message")); view->content_entry = elm_entry_add(win); elm_entry_scrollable_set(view->content_entry, EINA_TRUE); evas_object_smart_callback_add(view->content_entry, "changed", _content_changed, view); if (view->content != NULL) { elm_entry_entry_set(view->content_entry, elm_entry_utf8_to_markup(view->content)); } evas_object_show(view->content_entry); elm_object_part_content_set(view->layout_content, "content_entry", view->content_entry); elm_object_focus_set(view->content_entry, EINA_TRUE); btn = elm_button_add(win); elm_object_text_set(btn, D_("Insert")); evas_object_smart_callback_add(btn, "clicked", _content_button_insert_clicked, view); elm_object_part_content_set(view->layout_content, "content_button_insert", btn); evas_object_show(btn); btn = elm_button_add(win); elm_object_text_set(btn, D_("Close")); evas_object_smart_callback_add(btn, "clicked", _content_button_close_clicked, view); elm_object_part_content_set(view->layout_content, "content_button_close", btn); evas_object_show(btn); btn = elm_button_add(win); elm_object_text_set(btn, D_("Continue")); evas_object_smart_callback_add(btn, "clicked", _content_button_continue_clicked, view); elm_object_part_content_set(view->layout_content, "content_button_continue", btn); evas_object_show(btn); elm_naviframe_item_simple_push(view->pager, view->layout_content); }
static void retrieve_callback(GError * error, char *status, char *number, char *content, GHashTable * properties, gpointer _data) { struct MessageShowViewData *data = (struct MessageShowViewData *) _data; g_debug("retrieve_callback()"); data->status = strdup(status); data->number = strdup(number); data->name = strdup(phonegui_contact_cache_lookup(number)); data->content = elm_entry_utf8_to_markup(content); data->properties = properties; // TODO: copy async_trigger(retrieve_callback2, data); }
EVAS_SMART_SUBCLASS_NEW (ELM_FILESELECTOR_ENTRY_SMART_NAME, _elm_fileselector_entry, Elm_Fileselector_Entry_Smart_Class, Elm_Layout_Smart_Class, elm_layout_smart_class_get, _smart_callbacks); static void _FILE_CHOSEN_fwd(void *data, Evas_Object *obj __UNUSED__, void *event_info) { const char *file = event_info; char *s; ELM_FILESELECTOR_ENTRY_DATA_GET(data, sd); s = elm_entry_utf8_to_markup(file); if (!s) return; elm_object_text_set(sd->entry, s); free(s); evas_object_smart_callback_call(data, SIG_FILE_CHOSEN, event_info); } static void _ACTIVATED_fwd(void *data, Evas_Object *obj __UNUSED__, void *event_info) { const char *file; ELM_FILESELECTOR_ENTRY_DATA_GET(data, sd);
int message_show_view_init(char* path, GHashTable *properties) { struct MessageShowViewData *view; Evas_Object *win, *ico, *box, *obj; int ret; GVariant *tmp; const char *direction = NULL; Eina_Bool in_msg = EINA_FALSE; /* path MUST always be set! It will be freed by destroying the messageviews hashtable in here, thus must be a copy */ if (!path) { g_warning("Trying to initialize a message view without path!"); return 1; } g_debug("Initializing the contact view for '%s'", path); view = malloc(sizeof(struct MessageShowViewData)); if (!view) { g_critical("Failed to allocate message view for '%s'", path); if (properties) { g_hash_table_unref(properties); } free(path); return 1; } ret = ui_utils_view_init(VIEW_PTR(*view), ELM_WIN_BASIC, D_("Message"), NULL, NULL, _destroy_cb); if (ret) { g_critical("Failed to init message view for '%s'", path); if (properties) { g_hash_table_unref(properties); } free(view); free(path); return ret; } /* cache the views to open only one view per message */ if (messageviews == NULL) { messageviews = g_hash_table_new_full(g_str_hash, g_str_equal, free, NULL); } g_hash_table_insert(messageviews, path, view); view->path = path; view->number = NULL; view->name = NULL; view->photopath = NULL; elm_theme_extension_add(NULL, phoneui_theme); win = ui_utils_view_window_get(VIEW_PTR(*view)); ui_utils_view_delete_callback_set(VIEW_PTR(*view), _delete_cb); ui_utils_view_layout_set(VIEW_PTR(*view), phoneui_theme, "phoneui/messages/show"); GList *keys = g_hash_table_get_keys(properties); for (; keys; keys = keys->next) { tmp = g_hash_table_lookup(properties, keys->data); if (tmp) { g_debug("--- %s: %s", (char *)keys->data, g_variant_print(tmp, TRUE)); } } tmp = g_hash_table_lookup(properties, "Peer"); if (!tmp) { tmp = g_hash_table_lookup(properties, "Sender"); } if (!tmp) { tmp = g_hash_table_lookup(properties, "Recipient"); } if (tmp) { view->number = g_variant_dup_string(tmp, NULL); g_debug("Found number %s - starting lookup", view->number); // FIXME: use new @Contacts feature from opimd whenever it is // clear how to do that :P phoneui_utils_contact_lookup(view->number, _common_name_callback, common_utils_object_ref(view)); ui_utils_view_text_set(VIEW_PTR(*view), "text_number", view->number); } tmp = g_hash_table_lookup(properties, "Timestamp"); if (tmp) { char *date = common_utils_timestamp_to_date( (long)g_variant_get_int32(tmp)); if (date) { g_debug("Found date %s", date); ui_utils_view_text_set(VIEW_PTR(*view), "text_date", date); free(date); } } view->photo = elm_icon_add(win); evas_object_size_hint_aspect_set(view->photo, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); elm_image_file_set(view->photo, phoneui_theme, "icon/contact"); ui_utils_view_swallow(VIEW_PTR(*view), "photo", view->photo); evas_object_show(view->photo); ico = elm_icon_add(win); tmp = g_hash_table_lookup(properties, "Direction"); if (tmp) { direction = g_variant_get_string(tmp, NULL); if (strcmp(direction, "in") == 0) { g_debug("Setting status icon for an incoming message"); in_msg = EINA_TRUE; elm_image_file_set(ico, phoneui_theme, "icon/phonelog-incoming"); } else { g_debug("Setting status icon for a sent message"); in_msg = EINA_FALSE; elm_image_file_set(ico, phoneui_theme, "icon/phonelog-outgoing"); } } ui_utils_view_swallow(VIEW_PTR(*view), "icon_status", ico); evas_object_show(ico); const char *content = NULL; tmp = g_hash_table_lookup(properties, "Content"); if (tmp) { content = elm_entry_utf8_to_markup(g_variant_get_string(tmp, NULL)); } view->sc_content = elm_scroller_add(win); elm_scroller_bounce_set(view->sc_content, EINA_FALSE, EINA_FALSE); view->content = elm_entry_add(win); elm_entry_anchor_hover_style_set(view->content, "popout"); elm_entry_anchor_hover_parent_set(view->content, win); evas_object_size_hint_weight_set(view->content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); if (content) { elm_object_text_set(view->content, content); } elm_object_content_set(view->sc_content, view->content); evas_object_show(view->content); ui_utils_view_swallow(VIEW_PTR(*view), "text_content", view->sc_content); evas_object_show(view->sc_content); obj = elm_button_add(win); elm_object_text_set(obj, D_("Close")); evas_object_smart_callback_add(obj, "clicked", _close_clicked, view); ui_utils_view_swallow(VIEW_PTR(*view), "button_close", obj); evas_object_show(obj); // Options button with hover view->hv = elm_hover_add(win); obj = elm_button_add(win); elm_object_text_set(obj, D_("Options")); evas_object_smart_callback_add(obj, "clicked", _hover_bt_1, view->hv); ui_utils_view_swallow(VIEW_PTR(*view), "button_options", obj); evas_object_show(obj); elm_hover_parent_set(view->hv, win); elm_hover_target_set(view->hv, obj); box = elm_box_add(win); elm_box_horizontal_set(box, 0); elm_box_homogeneous_set(box, 1); evas_object_show(box); obj = elm_button_add(win); elm_object_text_set(obj, D_("Delete")); evas_object_size_hint_min_set(obj, 140, 80); evas_object_smart_callback_add(obj, "clicked", _delete_clicked, view); evas_object_show(obj); elm_box_pack_end(box, obj); if (in_msg) { obj = elm_button_add(win); elm_object_text_set(obj, D_("Call")); evas_object_size_hint_min_set(obj, 140, 80); evas_object_smart_callback_add(obj, "clicked", _call_clicked, view); evas_object_show(obj); elm_box_pack_end(box, obj); } obj = elm_button_add(win); elm_object_text_set(obj, D_("Add Contact")); evas_object_size_hint_min_set(obj, 140, 80); evas_object_smart_callback_add(obj, "clicked", _new_contact_clicked, view); evas_object_show(obj); elm_box_pack_end(box, obj); view->add_contact_bt = obj; obj = elm_button_add(win); elm_object_text_set(obj, D_("Forward")); evas_object_size_hint_min_set(obj, 140, 80); evas_object_smart_callback_add(obj, "clicked", _forward_clicked, view); evas_object_show(obj); elm_box_pack_end(box, obj); elm_object_part_content_set(view->hv, "top", box); obj = elm_button_add(win); elm_object_text_set(obj, D_("Answer")); evas_object_smart_callback_add(obj, "clicked", _answer_clicked, view); ui_utils_view_swallow(VIEW_PTR(*view), "button_answer", obj); evas_object_show(obj); if (in_msg) { g_debug("going to set read status for the message"); phoneui_utils_message_set_read_status(view->path, 1, NULL, NULL); g_debug("done - destroying properties now"); } g_hash_table_destroy(properties); g_debug("done"); return 0; }