Fill objects genlist when selecting app
This commit is contained in:
parent
99d3ca6b25
commit
e10deb0479
|
@ -47,6 +47,15 @@ static uint32_t _cid = 0;
|
|||
static int my_argc = 0;
|
||||
static char **my_argv = NULL;
|
||||
static int selected_app = -1;
|
||||
static Elm_Genlist_Item_Class *_itc = NULL;
|
||||
Eina_List *objs = NULL;
|
||||
|
||||
static char *
|
||||
_item_label_get(void *data, Evas_Object *obj, const char *part)
|
||||
{
|
||||
Obj_Info *info = data;
|
||||
return strdup(info->kl_name);
|
||||
}
|
||||
|
||||
static void
|
||||
_hoversel_selected_app(void *data, Evas_Object *obj, void *event_info)
|
||||
|
@ -54,6 +63,19 @@ _hoversel_selected_app(void *data, Evas_Object *obj, void *event_info)
|
|||
Elm_Object_Item *hoversel_it = event_info;
|
||||
selected_app = (int)(long)elm_object_item_data_get(hoversel_it);
|
||||
printf("selected app %d\n", selected_app);
|
||||
|
||||
if(objs)
|
||||
{
|
||||
Obj_Info *data;
|
||||
EINA_LIST_FREE(objs, data)
|
||||
free(data);
|
||||
objs = NULL;
|
||||
elm_genlist_clear(pub_widgets->elm_win1->elm_genlist1);
|
||||
}
|
||||
|
||||
Eina_Debug_Client *cl = eina_debug_client_new(_session, selected_app);
|
||||
eina_debug_session_send(cl, _elm_list_opcode, NULL, 0);
|
||||
eina_debug_client_free(cl);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -159,12 +181,32 @@ static Eina_Bool
|
|||
_elm_objects_list_cb(Eina_Debug_Client *src EINA_UNUSED, void *buffer, int size)
|
||||
{
|
||||
printf("size=%d\n", size);
|
||||
Eina_List *objs = eo_debug_list_response_decode(buffer, size), *itr;
|
||||
Eina_List *itr;
|
||||
objs = eo_debug_list_response_decode(buffer, size);
|
||||
Obj_Info *info;
|
||||
EINA_LIST_FOREACH(objs, itr, info)
|
||||
{
|
||||
printf("%p: %s\n", info->ptr, info->kl_name);
|
||||
|
||||
elm_genlist_item_append(pub_widgets->elm_win1->elm_genlist1, _itc,
|
||||
(void *)info, NULL,
|
||||
ELM_GENLIST_ITEM_NONE,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_ecore_thread_dispatcher(void *data)
|
||||
{
|
||||
eina_debug_dispatch(_session, data);
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
_disp_cb(Eina_Debug_Session *session, void *buffer)
|
||||
{
|
||||
ecore_main_loop_thread_safe_call_async(_ecore_thread_dispatcher, buffer);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
|
@ -173,6 +215,7 @@ _args_handle(Eina_Bool flag)
|
|||
{
|
||||
int i;
|
||||
if(!flag) return;
|
||||
eina_debug_session_dispatch_override(_session, _disp_cb);
|
||||
Eina_Debug_Client *cl = eina_debug_client_new(_session, 0);
|
||||
eina_debug_session_send(cl, _cl_stat_reg_opcode, NULL, 0);
|
||||
|
||||
|
@ -234,11 +277,24 @@ elm_main(int argc, char **argv)
|
|||
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
|
||||
pub_widgets = gui_gui_get();
|
||||
|
||||
if (!_itc)
|
||||
{
|
||||
_itc = elm_genlist_item_class_new();
|
||||
_itc->item_style = "default";
|
||||
_itc->func.text_get = _item_label_get;
|
||||
_itc->func.content_get = NULL;
|
||||
_itc->func.state_get = NULL;
|
||||
_itc->func.del = NULL;
|
||||
}
|
||||
evas_object_size_hint_weight_set(pub_widgets->elm_win1->elm_genlist1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
|
||||
evas_object_show(pub_widgets->elm_win1->elm_genlist1);
|
||||
evas_object_show(pub_widgets->elm_win1->elm_win1);
|
||||
|
||||
eina_init();
|
||||
|
||||
_session = eina_debug_session_new();
|
||||
|
||||
if (!eina_debug_local_connect(_session))
|
||||
{
|
||||
fprintf(stderr, "ERROR: Cannot connect to debug daemon.\n");
|
||||
|
|
Loading…
Reference in New Issue