static void set_api_state(api_data *api) { Evas_Object *icon; const Eina_List *items = elm_box_children_get(api->box); if (!eina_list_count(items)) return; /* use elm_box_children_get() to get list of children */ switch(api->state) { /* Put all api-changes under switch */ case HOVERSEL_HORIZ: /* Make first hover horiz (0) */ elm_hoversel_horizontal_set(eina_list_nth(items, 0), EINA_TRUE); elm_hoversel_hover_begin(eina_list_nth(items, 0)); break; case HOVERSEL_END: /* Make first hover horiz (1) */ elm_hoversel_hover_begin(eina_list_nth(items, 1)); elm_hoversel_hover_end(eina_list_nth(items, 1)); break; case HOVERSEL_LABAL_SET: /* set second hover label (2) */ elm_object_text_set(eina_list_nth(items, 1), "Label from API"); break; case HOVERSEL_ICON_UNSET: /* 3 */ elm_object_text_set(eina_list_nth(items, 5), "Label only"); icon = elm_object_part_content_unset(eina_list_nth(items, 5), "icon"); evas_object_del(icon); break; case HOVERSEL_CLEAR_OPEN: /* 4 */ elm_hoversel_hover_begin(eina_list_nth(items, 1)); elm_hoversel_clear(eina_list_nth(items, 1)); break; case HOVERSEL_CLEAR: /* 5 */ elm_hoversel_clear(eina_list_nth(items, 0)); break; case API_STATE_LAST: break; default: return; } }
EAPI_MAIN int elm_main(int argc, char **argv) { Evas_Object *win, *bg, *rect, *hoversel; Elm_Object_Item *hoversel_it; win = elm_win_add(NULL, "hoversel", ELM_WIN_BASIC); elm_win_title_set(win, "Hoversel"); 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_color_set(rect, 255, 0, 0, 255); evas_object_show(rect); hoversel = elm_hoversel_add(win); elm_hoversel_hover_parent_set(hoversel, win); elm_hoversel_horizontal_set(hoversel, EINA_FALSE); elm_object_text_set(hoversel, "Hoversel"); elm_object_part_content_set(hoversel, "icon", rect); elm_hoversel_item_add(hoversel, "Print items", NULL, ELM_ICON_NONE, _print_items, NULL); elm_hoversel_item_add(hoversel, "Option 2", "home", ELM_ICON_STANDARD, NULL, NULL); hoversel_it = elm_hoversel_item_add(hoversel, "Clear all items", "close", ELM_ICON_STANDARD, _rm_items, NULL); evas_object_smart_callback_add(hoversel, "selected", _sel, hoversel_it); evas_object_smart_callback_add(hoversel, "clicked", _add_item, NULL); evas_object_resize(hoversel, 180, 30); evas_object_move(hoversel, 10, 10); evas_object_show(hoversel); evas_object_resize(win, 200, 300); evas_object_show(win); elm_run(); return 0; }
static Evas_Object * _add_user_list ( Evas_Object *win) { Evas_Object *box = NULL, *main_box, *label, *users_list, *cb; box = elm_box_add (win); evas_object_size_hint_weight_set (box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show (box); elm_win_resize_object_add (win, box); evas_object_size_hint_align_set (box, 0.1, 0.1); label = elm_label_add(win); elm_object_text_set(label, "Switch User"); elm_box_pack_end (box, label); evas_object_show(label); users_list = elm_hoversel_add(win); elm_hoversel_horizontal_set(users_list, EINA_FALSE); elm_object_text_set(users_list, "Select User From the List"); _populate_users (users_list); evas_object_smart_callback_add(users_list, "selected", _on_switch_user_clicked, NULL); elm_box_pack_end (box, users_list); evas_object_show(users_list); main_box = elm_box_add (win); evas_object_size_hint_weight_set (main_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show (main_box); elm_box_horizontal_set (main_box, EINA_TRUE); elm_win_resize_object_add (win, main_box); elm_box_pack_end (main_box, box); cb = _add_checkbox (win); elm_box_pack_end (main_box, cb); return box; }
PREFIX value ml_elm_hoversel_horizontal_set(value v_box, value v_flag) { elm_hoversel_horizontal_set((Evas_Object*) v_box, Bool_val(v_flag)); return Val_unit; }