Evas_Object *ctxpopup_cb(void *data) { Evas_Object *wbox, *obox, *btn, *table, *hov; appdata *ad = data; wbox = ad->widget_box; obox = ad->option_box; // widget box btn = elm_button_add(wbox); elm_object_text_set(btn, "Click here to show ctxpopup"); evas_object_show(btn); elm_box_pack_end(wbox, btn); evas_object_smart_callback_add(btn, "clicked", _btn_clicked, (void *)ad->win); // option box hov = elm_hoversel_add(obox); elm_hoversel_hover_parent_set(hov, ad->win); elm_object_text_set(hov, "Up"); evas_object_show(hov); elm_hoversel_item_add(hov, "Up", NULL, ELM_ICON_NONE, NULL, NULL); elm_hoversel_item_add(hov, "Down", NULL, ELM_ICON_NONE, NULL, NULL); elm_hoversel_item_add(hov, "Left", NULL, ELM_ICON_NONE, NULL, NULL); elm_hoversel_item_add(hov, "Right", NULL, ELM_ICON_NONE, NULL, NULL); evas_object_smart_callback_add(hov, "selected", _selected, NULL); table = widget_min_set(hov, obox, ELM_SCALE_SIZE(200), ELM_SCALE_SIZE(50)); evas_object_event_callback_add(table, EVAS_CALLBACK_DEL, table_del_cb, NULL); evas_object_show(table); elm_box_pack_end(obox, table); evas_object_size_hint_weight_set(table, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); return btn; }
PREFIX value ml_elm_hoversel_item_add( value v_obj, value v_label, value v_icon, value v_func, value v_unit) { const char* label; if(v_label == Val_int(0)) label = NULL; else label = String_val(Field(v_label, 0)); const char* icon_file; Elm_Icon_Type icon_type; if(v_icon == Val_int(0)) { icon_file = NULL; icon_type = 0; } else { value v = Field(v_icon, 0); icon_file = String_val(Field(v, 0)); icon_type = Elm_Icon_Type_val(Field(v, 1)); } Evas_Smart_Cb func; value* data; if(v_func == Val_int(0)) { func = NULL; data = NULL; } else { func = ml_Evas_Smart_Cb; data = ml_register_value(Field(v_func, 0)); } Elm_Object_Item* item = elm_hoversel_item_add((Evas_Object*) v_obj, label, icon_file, icon_type, func, data); if(item == NULL) { if(data != NULL) ml_remove_value(data); caml_failwith("elm_hoversel_item_add"); } if(data != NULL) elm_object_item_del_cb_set(item, ml_Evas_Smart_Cb_on_del); return (value) item; }
static void _profiles_list_cb(GError *error, char **list, int count, gpointer userdata) { /*FIXME: I should probably free this list, but how?, CHECK DBUS*/ (void) userdata; int i; if (error || !list) { if (error) g_warning("Failed to retrieve profile list: (%d) %s; retrying later", error->code, error->message); else g_warning("Failed to retrieve profile list: call succeeded, " "but no data was received; retrying later"); /* Schedule a retry later */ g_timeout_add(PROFILE_RETRY_DELAY, _profiles_list_retry, NULL); return; } for (i = 0; i < count; i++) { elm_hoversel_item_add(view.profiles_combo, list[i], NULL, ELM_ICON_NONE, NULL, NULL); } /* Determine the current profile. */ phoneui_utils_sound_profile_get(_profile_get_current_cb, NULL); }
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 void _add_item(void *data, Evas_Object *obj, void *event_info) { static int num = 0; char *str = malloc(sizeof(char) * 10); Elm_Object_Item *hoversel_it; snprintf(str, 10, "item %d", ++num); hoversel_it = elm_hoversel_item_add(obj, str, NULL, ELM_ICON_NONE, NULL, str); elm_object_item_del_cb_set(hoversel_it, _free); }
static void _populate_users (Evas_Object *users_list) { struct passwd *pent = NULL; setpwent (); while ((pent = getpwent ()) != NULL) { if (g_strcmp0 ("x", pent->pw_passwd) == 0 && _is_valid_user (pent)) { elm_hoversel_item_add(users_list, pent->pw_name, NULL, ELM_ICON_NONE, NULL, NULL); } pent = NULL; } endpwent (); }
///////////////// GENGRID ///////////////////////////// static void _entrance_fill_hoversell(Evas_Object *obj, Entrance_Fill *ef, Eina_List *contents, Evas_Smart_Cb func) { Eina_List *l; char *str = NULL; void *content; EINA_LIST_FOREACH(contents, l, content) { if (ef->func.text_get) str = ef->func.text_get(content, obj, NULL); elm_hoversel_item_add(obj, str, NULL, ELM_ICON_FILE, func, content); free(str); } }
void vm_info_cb(void *data, Evas_Object *obj, void *event_info) { Elm_Genlist_Item *gl; vmitem *item; zrpc_vm *vm; const char *os_icon, *state; char tmp[PATH_MAX]; Eina_List *l; zrpc_disk *d; zrpc_vif *v; int cpus; elm_toolbar_item_unselect_all(win->main_vm->bar); gl = elm_genlist_selected_item_get(win->main_vm->list); if (!gl) return; ecore_timer_del(win->timerget); item = (vmitem*)elm_genlist_item_data_get(gl); vm = item->vm; win->info->vmuuid = eina_stringshare_ref(vm->uuid); evas_object_smart_callback_del(win->main_vm->list, "clicked", vm_info_cb); create_info_vm(); win->info->state = NULL; zinfo_job_updatevm(win); for (cpus = 0;cpus < vm->vcpus;cpus++) { win->info->cpus = elm_icon_add(win->win); elm_icon_file_set(win->info->cpus, "images/cpu.png", NULL); elm_icon_scale_set(win->info->cpus, 0, 0); elm_icon_smooth_set(win->info->cpus, 1); evas_object_size_hint_weight_set(win->info->state_icon, 0.0, 0.0); evas_object_size_hint_align_set(win->info->state_icon, 0.0, 1.0); elm_box_pack_after(win->info->vbox2, win->info->cpus, win->info->state_label); evas_object_show(win->info->cpus); } elm_frame_label_set(win->info->frame, vm->name); os_icon = get_os_icon(vm); elm_icon_file_set(win->info->os_icon, os_icon, NULL); eina_stringshare_del(os_icon); elm_label_label_set(win->info->os, vm->os); elm_label_label_set (win->info->uuid, vm->uuid); elm_label_label_set(win->info->puuid, vm->puuid); EINA_LIST_FOREACH(vm->disks, l, d) elm_hoversel_item_add(win->info->disks, d->ext_dev, NULL, ELM_ICON_NONE, NULL, d); state = get_state_icon(vm->state); elm_icon_file_set(win->info->state_icon, state, NULL); eina_stringshare_del(state); EINA_LIST_FOREACH(vm->vifs, l, v) elm_hoversel_item_add(win->info->vifs, v->name, NULL, ELM_ICON_NONE, NULL, v); sprintf(tmp, "Kernel: %s", vm->kernel); elm_label_label_set(win->info->kernel, tmp); sprintf(tmp, "Ramdisk: %s", vm->ramdisk); elm_label_label_set(win->info->ramdisk, tmp); sprintf(tmp, "Kernel args: %s", vm->cmdline); elm_label_label_set(win->info->cmdline, tmp); evas_object_key_ungrab(win->win, "Up", 0, 0); evas_object_key_ungrab(win->win, "Down", 0, 0); evas_object_key_ungrab(win->win, "Left", 0, 0); evas_object_key_ungrab(win->win, "Right", 0, 0); evas_object_key_ungrab(win->win, "Home", 0, 0); evas_object_key_ungrab(win->win, "End", 0, 0); elm_flip_content_back_set(win->main_vm->fl, win->info->frame); win->view = win->info->vmview; elm_flip_go(win->main_vm->fl, ELM_FLIP_ROTATE_X_CENTER_AXIS); EINA_LIST_FREE(win->elist, item) free_vmitem(item); win->elist = NULL; eina_list_free(win->list); win->list = NULL; evas_object_hide(win->main_vm->box2); evas_object_del(win->main_vm->box2); win->timerget = ecore_timer_add(5, zinfo_job_updatevm, NULL); }