예제 #1
0
static void
vm_action_cb(const char *reply, void *data)
{
	xmlNode *r;
	Elm_Genlist_Item *gl;
	vmitem *item;
	zrpc_vm *vm;

	if (!reply || !(r = xml_parse_xml(reply)) || (!xml_parse_int(r)))
	{
		elm_label_label_set(win->main_vm->status, "Job add failed!");
		evas_object_show(win->main_vm->notify);
		return;
	}

	elm_label_label_set(win->main_vm->status, "Job add was successful!");
	evas_object_show(win->main_vm->notify);
	if ((win->view == win->main_vm->view) || (win->view == win->main_user->view))
	{
		gl = elm_genlist_selected_item_get(win->main_vm->list);
		if (gl)
		{
			item = (vmitem*)elm_genlist_item_data_get(gl);
			vm = item->vm;
			win->list = eina_list_remove(win->list, vm);
#ifdef DEBUG
printf("Removing %s from all lists...\n", vm->uuid);
#endif
			win->elist = eina_list_remove(win->elist, item);
			free_vmitem(item);
			elm_genlist_item_del(gl);
		}
	}
}
예제 #2
0
void
vm_shutdown_cb(void *data, Evas_Object *obj, void *event_info)
{
	const char *uuid;
	Elm_Genlist_Item *gl;
	vmitem *item;

	if (win->view == win->main_vm->view)
	{
		gl = elm_genlist_selected_item_get(win->main_vm->list);
		if (!gl)
			return;
		item = (vmitem*)elm_genlist_item_data_get(gl);
		elm_toolbar_item_unselect_all(win->main_vm->bar);
		uuid = item->vm->uuid;
	}
	else if ((win->view == win->info->vmview) || (win->view == win->info->vmhover))
		uuid = win->info->vmuuid;

	if (!uuid || (eina_stringshare_strlen(uuid) != 36))
		elm_label_label_set(win->main_vm->status, "Could not retrieve valid uuid for operation!");
	else if (!zrpc_VM_shutdown(uuid, zcon, vm_action_cb, NULL))
		elm_label_label_set(win->main_vm->status, "Connection to zrpc failed!");
	else
		elm_label_label_set(win->main_vm->status, "Connection succeeded!");

	evas_object_show(win->main_vm->notify);
	if (win->view == win->info->vmhover)
		zinfo_destroy_hover(NULL, NULL, NULL);
}
예제 #3
0
파일: view_list.c 프로젝트: GeeXboX/enna
static void
_item_activate(Elm_Genlist_Item *item)
{
    List_Item *li;

    li = (List_Item*)elm_genlist_item_data_get(item);
    if (li->func_activated)
            li->func_activated(li->data);
}
/**
 * @brief Positive test case of elm_genlist_item_data_get()
 */
static void utc_UIFW_elm_genlist_item_data_get_func_01(void)
{
	Elm_Object_Item *it = NULL;
	char *my_data = NULL, *data = "123", *get_data = NULL;

	it = elm_genlist_item_append(genlist, &itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);

	my_data = (char *)calloc(sizeof(char), 10);
	strcpy(my_data, data);
	elm_genlist_item_data_set(it, my_data);
	get_data = (char *)elm_genlist_item_data_get(it);

	if (get_data != my_data) {
		tet_infoline("elm_genlist_add() failed in positive test case");
		tet_result(TET_FAIL);
		return;
	}
	tet_result(TET_PASS);
}
예제 #5
0
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);
}
/**
 * @brief Negative test case of ug_init elm_genlist_item_data_get()
 */
static void utc_UIFW_elm_genlist_item_data_get_func_02(void)
{
	elm_genlist_item_data_get(NULL);
	tet_result(TET_PASS);
}
예제 #7
0
    bug->desc = buf;
    bug->type = eina_stringshare_add(type);

    enobj->bugs = eina_list_prepend(enobj->bugs, bug);

    return 0;
}

void
enasn_display_bugs(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event)
{
    Eina_List *l;
    Elm_Genlist_Item *it = event;
    Evas_Object *gl = elm_genlist_item_genlist_get(it);
    struct bug *bug;
    const struct enobj *enobj = elm_genlist_item_data_get(it);

    EINA_LIST_FOREACH (enobj->bugs, l, bug)
    {
        elm_genlist_item_append(gl, &bugc, bug, enobj->genitem, ELM_GENLIST_ITEM_NONE, NULL, NULL); /* No selection */
    }
}

static void
bug_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
{
}

static char *
bug_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
{