EAPI_MAIN int elm_main(int argc, char **argv) { Evas_Object *win, *bg, *bt, *bt2, *rect, *rect2, *rect3, *hover; win = elm_win_add(NULL, "hover", ELM_WIN_BASIC); elm_win_title_set(win, "Hover"); elm_win_autodel_set(win, EINA_TRUE); elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); bg = elm_bg_add(win); elm_win_resize_object_add(win, bg); evas_object_show(bg); rect = evas_object_rectangle_add(evas_object_evas_get(win)); evas_object_size_hint_min_set(rect, 25, 25); evas_object_color_set(rect, 255, 0, 0, 255); evas_object_show(rect); rect2 = evas_object_rectangle_add(evas_object_evas_get(win)); evas_object_size_hint_min_set(rect2, 25, 25); evas_object_color_set(rect2, 0, 255, 0, 255); evas_object_show(rect2); rect3 = evas_object_rectangle_add(evas_object_evas_get(win)); evas_object_size_hint_min_set(rect3, 25, 25); evas_object_color_set(rect3, 0, 0, 255, 255); evas_object_show(rect3); bt = elm_button_add(win); elm_object_text_set(bt, "Show hover"); evas_object_move(bt, 60, 90); evas_object_resize(bt, 80, 20); evas_object_show(bt); bt2 = elm_button_add(win); elm_object_text_set(bt2, "Hide hover"); evas_object_show(bt2); hover = elm_hover_add(win); elm_hover_parent_set(hover, win); elm_hover_target_set(hover, bt); elm_object_style_set(hover, "popout"); elm_hover_content_set(hover, "left", rect); elm_hover_content_set(hover, "top", rect2); elm_hover_content_set(hover, "right", rect3); elm_hover_content_set(hover, "middle", bt2); evas_object_smart_callback_add(bt, "clicked", _show_hover, hover); evas_object_smart_callback_add(bt2, "clicked", _hide_hover, hover); evas_object_resize(win, 200, 200); evas_object_show(win); elm_run(); return 0; }
struct MessageListViewData * message_list_view_show(struct Window *win, GHashTable * options) { g_debug("message_list_view_show()"); struct MessageListViewData *data = g_slice_alloc0(sizeof(struct MessageListViewData)); data->win = win; window_layout_set(win, MESSAGE_FILE, "list"); window_text_set(win, "title", D_("Inbox")); data->bt1 = elm_button_add(window_evas_object_get(win)); elm_button_label_set(data->bt1, D_("New")); evas_object_smart_callback_add(data->bt1, "clicked", message_list_view_new_clicked, data); window_swallow(win, "button_new", data->bt1); evas_object_show(data->bt1); // Options button with hover data->hv = elm_hover_add(window_evas_object_get(win)); data->bt2 = elm_button_add(window_evas_object_get(win)); elm_button_label_set(data->bt2, D_("Options")); evas_object_smart_callback_add(data->bt2, "clicked", my_hover_bt_1, data->hv); window_swallow(win, "button_options", data->bt2); evas_object_show(data->bt2); elm_hover_parent_set(data->hv, window_evas_object_get(win)); elm_hover_target_set(data->hv, data->bt2); data->bx = elm_box_add(window_evas_object_get(win)); elm_box_horizontal_set(data->bx, 0); elm_box_homogenous_set(data->bx, 1); evas_object_show(data->bx); data->button_answer = elm_button_add(window_evas_object_get(win)); elm_button_label_set(data->button_answer, D_("Answer")); evas_object_size_hint_min_set(data->button_answer, 130, 80); evas_object_smart_callback_add(data->button_answer, "clicked", message_list_view_answer_clicked, data); evas_object_show(data->button_answer); elm_box_pack_end(data->bx, data->button_answer); data->button_delete = elm_button_add(window_evas_object_get(win)); elm_button_label_set(data->button_delete, D_("Delete")); evas_object_size_hint_min_set(data->button_delete, 130, 80); evas_object_smart_callback_add(data->button_delete, "clicked", message_list_view_delete_clicked, data); evas_object_show(data->button_delete); elm_box_pack_end(data->bx, data->button_delete); elm_hover_content_set(data->hv, "top", data->bx); data->bt3 = elm_button_add(window_evas_object_get(win)); elm_button_label_set(data->bt3, D_("Show")); evas_object_smart_callback_add(data->bt3, "clicked", message_list_view_show_clicked, data); window_swallow(win, "button_show", data->bt3); evas_object_show(data->bt3); g_debug("tree init"); data->tree = etk_tree_new(); etk_tree_rows_height_set(ETK_TREE(data->tree), 80); etk_tree_mode_set(ETK_TREE(data->tree), ETK_TREE_MODE_LIST); etk_tree_headers_visible_set(ETK_TREE(data->tree), ETK_FALSE); etk_tree_multiple_select_set(ETK_TREE(data->tree), ETK_FALSE); data->col1 = etk_tree_col_new(ETK_TREE(data->tree), "Title", 300, 0.0); etk_tree_col_model_add(data->col1, etk_tree_model_edje_new(MESSAGE_FILE, "message_row")); etk_tree_build(ETK_TREE(data->tree)); Etk_Scrolled_View *scrolled_view = etk_tree_scrolled_view_get(ETK_TREE(data->tree)); etk_scrolled_view_dragable_set(ETK_SCROLLED_VIEW(scrolled_view), ETK_TRUE); etk_scrolled_view_drag_bouncy_set(ETK_SCROLLED_VIEW(scrolled_view), ETK_FALSE); etk_scrolled_view_policy_set(ETK_SCROLLED_VIEW(scrolled_view), ETK_POLICY_HIDE, ETK_POLICY_HIDE); data->container = etk_embed_new(evas_object_evas_get (window_evas_object_get(win))); etk_container_add(ETK_CONTAINER(data->container), data->tree); etk_widget_show_all(data->container); window_swallow(win, "list", etk_embed_object_get(ETK_EMBED(data->container))); ogsmd_sim_retrieve_messagebook("all", retrieve_messagebook_callback, data); window_show(win); return data; }
static void retrieve_callback2(struct MessageShowViewData *data) { struct Window *win = data->win; window_layout_set(win, MESSAGE_FILE, "message_show"); time_t timestamp = 0; GValue *value = g_hash_table_lookup(data->properties, "timestamp"); if (value) { const char *timestr = g_value_get_string(value); timestamp = time_stringtotimestamp(timestr); } else g_debug("no timestamp for message found !!!"); char *status = data->status; char *number = data->number; char *content = data->content; char datestr[32]; strftime(datestr, 31, "%d.%m.%Y, %H:%M", localtime(×tamp)); window_text_set(win, "text_status", status); window_text_set(win, "text_number", number); window_text_set(win, "text_content", content); window_text_set(win, "text_date", datestr); window_text_set(win, "label_number", D_("From:")); window_text_set(win, "label_date", D_("Date:")); window_text_set(win, "label_status", D_("Status:")); window_text_set(win, "text_number", data->name); data->bt1 = elm_button_add(window_evas_object_get(win)); elm_button_label_set(data->bt1, D_("Close")); evas_object_smart_callback_add(data->bt1, "clicked", message_show_view_close_clicked, data); window_swallow(win, "button_close", data->bt1); evas_object_show(data->bt1); // Options button with hover data->hv = elm_hover_add(window_evas_object_get(win)); data->bt2 = elm_button_add(window_evas_object_get(win)); elm_button_label_set(data->bt2, D_("Options")); evas_object_smart_callback_add(data->bt2, "clicked", my_hover_bt_1, data->hv); window_swallow(win, "button_options", data->bt2); evas_object_show(data->bt2); elm_hover_parent_set(data->hv, window_evas_object_get(win)); elm_hover_target_set(data->hv, data->bt2); data->bx = elm_box_add(window_evas_object_get(win)); elm_box_horizontal_set(data->bx, 0); elm_box_homogenous_set(data->bx, 1); evas_object_show(data->bx); data->hbt1 = elm_button_add(window_evas_object_get(win)); elm_button_label_set(data->hbt1, D_("Call")); evas_object_size_hint_min_set(data->hbt1, 140, 80); evas_object_smart_callback_add(data->hbt1, "clicked", message_show_view_call_clicked, data); evas_object_show(data->hbt1); elm_box_pack_end(data->bx, data->hbt1); data->hbt2 = elm_button_add(window_evas_object_get(win)); elm_button_label_set(data->hbt2, D_("Delete")); evas_object_size_hint_min_set(data->hbt2, 140, 80); evas_object_smart_callback_add(data->hbt2, "clicked", message_show_view_delete_clicked, data); evas_object_show(data->hbt2); elm_box_pack_end(data->bx, data->hbt2); data->hbt3 = elm_button_add(window_evas_object_get(win)); elm_button_label_set(data->hbt3, D_("Add Contact")); evas_object_size_hint_min_set(data->hbt3, 140, 80); evas_object_smart_callback_add(data->hbt3, "clicked", message_show_view_new_contact_clicked, data); evas_object_show(data->hbt3); elm_box_pack_end(data->bx, data->hbt3); elm_hover_content_set(data->hv, "top", data->bx); data->bt3 = elm_button_add(window_evas_object_get(win)); elm_button_label_set(data->bt3, D_("Answer")); evas_object_smart_callback_add(data->bt3, "clicked", message_show_view_answer_clicked, data); window_swallow(win, "button_answer", data->bt3); evas_object_show(data->bt3); window_show(win); }