clouseau: Added highlight on bmp window
Signed-off-by: Aharon Hillel <a.hillel@samsung.com> SVN revision: 72342
This commit is contained in:
parent
8cdb2636d9
commit
e7f43b2bea
|
@ -524,7 +524,8 @@ _get_bmp_node(bmp_info_st *st, app_info_st *app)
|
||||||
if (!app)
|
if (!app)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
do{ /* First find according to Evas ptr, then match ctr with refresh_ctr */
|
do
|
||||||
|
{ /* First find according to Evas ptr, then match ctr with refresh_ctr */
|
||||||
req_list = eina_list_search_unsorted_list(req_list, _bmp_node_cmp,
|
req_list = eina_list_search_unsorted_list(req_list, _bmp_node_cmp,
|
||||||
(void *) (uintptr_t) st->object);
|
(void *) (uintptr_t) st->object);
|
||||||
|
|
||||||
|
@ -539,7 +540,8 @@ _get_bmp_node(bmp_info_st *st, app_info_st *app)
|
||||||
/* ctr did not match, look further in list */
|
/* ctr did not match, look further in list */
|
||||||
req_list = eina_list_next(req_list);
|
req_list = eina_list_next(req_list);
|
||||||
}
|
}
|
||||||
}while(req_list);
|
}
|
||||||
|
while(req_list);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -942,7 +944,9 @@ _gl_selected(void *data EINA_UNUSED, Evas_Object *pobj EINA_UNUSED,
|
||||||
clouseau_obj_information_list_clear();
|
clouseau_obj_information_list_clear();
|
||||||
gui_elements *g = data;
|
gui_elements *g = data;
|
||||||
Tree_Item *treeit = elm_object_item_data_get(event_info);
|
Tree_Item *treeit = elm_object_item_data_get(event_info);
|
||||||
if (!elm_genlist_item_parent_get(event_info))
|
const Elm_Object_Item *parent;
|
||||||
|
const Elm_Object_Item *prt = elm_genlist_item_parent_get(event_info);
|
||||||
|
if (!prt)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* START - replacing libclouseau_highlight(obj); */
|
/* START - replacing libclouseau_highlight(obj); */
|
||||||
|
@ -962,6 +966,25 @@ _gl_selected(void *data EINA_UNUSED, Evas_Object *pobj EINA_UNUSED,
|
||||||
free(p);
|
free(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* We also like to HIGHLIGHT on any app views that open (for offline) */
|
||||||
|
do
|
||||||
|
{
|
||||||
|
parent = prt;
|
||||||
|
prt = elm_genlist_item_parent_get(prt);
|
||||||
|
}
|
||||||
|
while (prt);
|
||||||
|
|
||||||
|
Tree_Item *t = elm_object_item_data_get(parent);
|
||||||
|
Variant_st *v = eina_list_search_unsorted(app->view,
|
||||||
|
_bmp_object_ptr_cmp, t->ptr);
|
||||||
|
|
||||||
|
if (v)
|
||||||
|
{
|
||||||
|
bmp_info_st *view = v->data;
|
||||||
|
libclouseau_highlight(treeit->ptr, evas_object_evas_get(view->win),
|
||||||
|
&treeit->info->evas_props);
|
||||||
|
}
|
||||||
/* END - replacing libclouseau_highlight(obj); */
|
/* END - replacing libclouseau_highlight(obj); */
|
||||||
|
|
||||||
clouseau_obj_information_list_populate(treeit, gui->lb);
|
clouseau_obj_information_list_populate(treeit, gui->lb);
|
||||||
|
|
|
@ -530,3 +530,58 @@ Eina_Bool eet_info_read(const char *filename,
|
||||||
|
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* HIGHLIGHT code. */
|
||||||
|
static Eina_Bool
|
||||||
|
libclouseau_highlight_fade(void *_rect)
|
||||||
|
{
|
||||||
|
Evas_Object *rect = _rect;
|
||||||
|
int r, g, b, a;
|
||||||
|
double na;
|
||||||
|
|
||||||
|
evas_object_color_get(rect, &r, &g, &b, &a);
|
||||||
|
if (a < 20)
|
||||||
|
{
|
||||||
|
evas_object_del(rect);
|
||||||
|
return EINA_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
na = a - 20;
|
||||||
|
r = na / a * r;
|
||||||
|
g = na / a * g;
|
||||||
|
b = na / a * b;
|
||||||
|
evas_object_color_set(rect, r, g, b, na);
|
||||||
|
|
||||||
|
return EINA_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
libclouseau_highlight(Evas_Object *obj, Evas *e, st_evas_props *props)
|
||||||
|
{
|
||||||
|
Evas_Object *r;
|
||||||
|
int x, y, wd, ht;
|
||||||
|
|
||||||
|
if (!e) return;
|
||||||
|
|
||||||
|
if (props)
|
||||||
|
{ /* When working offline grab info from struct */
|
||||||
|
x = props->x;
|
||||||
|
y = props->y;
|
||||||
|
wd = props->w;
|
||||||
|
ht = props->h;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
evas_object_geometry_get(obj, &x, &y, &wd, &ht);
|
||||||
|
|
||||||
|
r = evas_object_rectangle_add(e);
|
||||||
|
evas_object_move(r, x - PADDING, y - PADDING);
|
||||||
|
evas_object_resize(r, wd + (2 * PADDING), ht + (2 * PADDING));
|
||||||
|
evas_object_color_set(r, HIGHLIGHT_R, HIGHLIGHT_G, HIGHLIGHT_B,
|
||||||
|
HIGHLIGHT_A);
|
||||||
|
evas_object_show(r);
|
||||||
|
ecore_timer_add(0.1, libclouseau_highlight_fade, r);
|
||||||
|
/* Print backtrace info, saved for future ref
|
||||||
|
tmp = evas_object_data_get(obj, ".clouseau.bt");
|
||||||
|
fprintf(stderr, "Creation backtrace :\n%s*******\n", tmp); */
|
||||||
|
}
|
||||||
|
|
|
@ -182,4 +182,7 @@ void *packet_compose(message_type t, void *data, int data_size, int *size, void
|
||||||
Variant_st *packet_info_get(void *data, int size);
|
Variant_st *packet_info_get(void *data, int size);
|
||||||
Eina_Bool eet_info_save(const char *filename, app_info_st *app, tree_data_st *ftd);
|
Eina_Bool eet_info_save(const char *filename, app_info_st *app, tree_data_st *ftd);
|
||||||
Eina_Bool eet_info_read(const char *filename, app_info_st **app, tree_data_st **ftd);
|
Eina_Bool eet_info_read(const char *filename, app_info_st **app, tree_data_st **ftd);
|
||||||
|
|
||||||
|
/* Highlight code, we may choose to move this to other file later */
|
||||||
|
void libclouseau_highlight(Evas_Object *obj, Evas *e, st_evas_props *props);
|
||||||
#endif /* EET_DATA_H */
|
#endif /* EET_DATA_H */
|
||||||
|
|
|
@ -13,8 +13,6 @@
|
||||||
static Eina_Bool _elm_is_init = EINA_FALSE;
|
static Eina_Bool _elm_is_init = EINA_FALSE;
|
||||||
static const char *_my_app_name = NULL;
|
static const char *_my_app_name = NULL;
|
||||||
|
|
||||||
static void libclouseau_highlight(Evas_Object *obj);
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
libclouseau_item_add(Evas_Object *o, Tree_Item *parent)
|
libclouseau_item_add(Evas_Object *o, Tree_Item *parent)
|
||||||
{
|
{
|
||||||
|
@ -204,7 +202,8 @@ _data(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_Ipc_Event_Server_Data
|
||||||
case HIGHLIGHT:
|
case HIGHLIGHT:
|
||||||
{ /* Highlight msg contains PTR of object to highlight */
|
{ /* Highlight msg contains PTR of object to highlight */
|
||||||
highlight_st *ht = v->data;
|
highlight_st *ht = v->data;
|
||||||
libclouseau_highlight((Evas_Object *) (uintptr_t) ht->object);
|
Evas_Object *obj = (Evas_Object *) (uintptr_t) ht->object;
|
||||||
|
libclouseau_highlight(obj, evas_object_evas_get(obj), NULL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -369,63 +368,3 @@ evas_object_free(Evas_Object *obj, int clean_layer)
|
||||||
|
|
||||||
_evas_object_free(obj, clean_layer);
|
_evas_object_free(obj, clean_layer);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* HIGHLIGHT code. */
|
|
||||||
/* The color of the highlight */
|
|
||||||
enum {
|
|
||||||
HIGHLIGHT_R = 255,
|
|
||||||
HIGHLIGHT_G = 128,
|
|
||||||
HIGHLIGHT_B = 128,
|
|
||||||
HIGHLIGHT_A = 255,
|
|
||||||
|
|
||||||
/* How much padding around the highlight box.
|
|
||||||
* Currently we don't want any. */
|
|
||||||
PADDING = 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
static Eina_Bool
|
|
||||||
libclouseau_highlight_fade(void *_rect)
|
|
||||||
{
|
|
||||||
Evas_Object *rect = _rect;
|
|
||||||
int r, g, b, a;
|
|
||||||
double na;
|
|
||||||
|
|
||||||
evas_object_color_get(rect, &r, &g, &b, &a);
|
|
||||||
if (a < 20)
|
|
||||||
{
|
|
||||||
evas_object_del(rect);
|
|
||||||
return EINA_FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
na = a - 20;
|
|
||||||
r = na / a * r;
|
|
||||||
g = na / a * g;
|
|
||||||
b = na / a * b;
|
|
||||||
evas_object_color_set(rect, r, g, b, na);
|
|
||||||
|
|
||||||
return EINA_TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
libclouseau_highlight(Evas_Object *obj)
|
|
||||||
{
|
|
||||||
Evas *e;
|
|
||||||
Evas_Object *r;
|
|
||||||
int x, y, w, h;
|
|
||||||
|
|
||||||
e = evas_object_evas_get(obj);
|
|
||||||
if (!e) return;
|
|
||||||
|
|
||||||
evas_object_geometry_get(obj, &x, &y, &w, &h);
|
|
||||||
|
|
||||||
r = evas_object_rectangle_add(e);
|
|
||||||
evas_object_move(r, x - PADDING, y - PADDING);
|
|
||||||
evas_object_resize(r, w + (2 * PADDING), h + (2 * PADDING));
|
|
||||||
evas_object_color_set(r, HIGHLIGHT_R, HIGHLIGHT_G, HIGHLIGHT_B,
|
|
||||||
HIGHLIGHT_A);
|
|
||||||
evas_object_show(r);
|
|
||||||
ecore_timer_add(0.1, libclouseau_highlight_fade, r);
|
|
||||||
/* Print backtrace info, saved for future ref
|
|
||||||
tmp = evas_object_data_get(obj, ".clouseau.bt");
|
|
||||||
fprintf(stderr, "Creation backtrace :\n%s*******\n", tmp); */
|
|
||||||
}
|
|
||||||
|
|
|
@ -18,6 +18,18 @@
|
||||||
#define CLOUSEAU_OBJ_TYPE_EDJE_STR "CLOUSEAU_OBJ_TYPE_EDJE"
|
#define CLOUSEAU_OBJ_TYPE_EDJE_STR "CLOUSEAU_OBJ_TYPE_EDJE"
|
||||||
#define CLOUSEAU_OBJ_TYPE_TEXTBLOCK_STR "CLOUSEAU_OBJ_TYPE_TEXTBLOCK"
|
#define CLOUSEAU_OBJ_TYPE_TEXTBLOCK_STR "CLOUSEAU_OBJ_TYPE_TEXTBLOCK"
|
||||||
|
|
||||||
|
/* The color of the highlight */
|
||||||
|
enum {
|
||||||
|
HIGHLIGHT_R = 255,
|
||||||
|
HIGHLIGHT_G = 128,
|
||||||
|
HIGHLIGHT_B = 128,
|
||||||
|
HIGHLIGHT_A = 255,
|
||||||
|
|
||||||
|
/* How much padding around the highlight box.
|
||||||
|
* Currently we don't want any. */
|
||||||
|
PADDING = 0,
|
||||||
|
};
|
||||||
|
|
||||||
enum _en_obj_type
|
enum _en_obj_type
|
||||||
{
|
{
|
||||||
CLOUSEAU_OBJ_TYPE_UNKNOWN,
|
CLOUSEAU_OBJ_TYPE_UNKNOWN,
|
||||||
|
|
Loading…
Reference in New Issue