forked from enlightenment/enlightenment
parent
16e771c87b
commit
b7ec896ab8
|
@ -122,13 +122,7 @@ e_container_new(E_Manager *man)
|
||||||
evas_object_data_set(o, "e_container", con);
|
evas_object_data_set(o, "e_container", con);
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
|
|
||||||
if (e_config->use_e_cursor)
|
con->pointer.root = e_pointer_window_set(con->manager->root);
|
||||||
con->pointer.root = e_pointer_window_set(con->manager->root);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ecore_x_window_cursor_set(con->manager->root,
|
|
||||||
ecore_x_cursor_shape_get(ECORE_X_CURSOR_LEFT_PTR));
|
|
||||||
}
|
|
||||||
|
|
||||||
con->num = container_num;
|
con->num = container_num;
|
||||||
container_num++;
|
container_num++;
|
||||||
|
|
|
@ -62,14 +62,7 @@ e_init_init(void)
|
||||||
ecore_evas_name_class_set(_e_init_ecore_evas, "E", "Init_Window");
|
ecore_evas_name_class_set(_e_init_ecore_evas, "E", "Init_Window");
|
||||||
ecore_evas_title_set(_e_init_ecore_evas, "Enlightenment Init");
|
ecore_evas_title_set(_e_init_ecore_evas, "Enlightenment Init");
|
||||||
|
|
||||||
if (e_config->use_e_cursor)
|
_e_init_pointer = e_pointer_window_set(_e_init_win);
|
||||||
_e_init_pointer = e_pointer_window_set(_e_init_win);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_e_init_pointer = NULL;
|
|
||||||
ecore_x_window_cursor_set(_e_init_win,
|
|
||||||
ecore_x_cursor_shape_get(ECORE_X_CURSOR_LEFT_PTR));
|
|
||||||
}
|
|
||||||
|
|
||||||
ecore_evas_raise(_e_init_ecore_evas);
|
ecore_evas_raise(_e_init_ecore_evas);
|
||||||
ecore_evas_show(_e_init_ecore_evas);
|
ecore_evas_show(_e_init_ecore_evas);
|
||||||
|
|
|
@ -13,78 +13,86 @@ E_Pointer *
|
||||||
e_pointer_window_set(Ecore_X_Window win)
|
e_pointer_window_set(Ecore_X_Window win)
|
||||||
{
|
{
|
||||||
Evas_Engine_Info_Buffer *einfo;
|
Evas_Engine_Info_Buffer *einfo;
|
||||||
E_Pointer *p;
|
E_Pointer *p = NULL;
|
||||||
Evas_Object *o;
|
Evas_Object *o;
|
||||||
int rmethod;
|
int rmethod;
|
||||||
|
|
||||||
rmethod = evas_render_method_lookup("buffer");
|
if (e_config->use_e_cursor)
|
||||||
if (!rmethod) return NULL;
|
|
||||||
|
|
||||||
p = E_OBJECT_ALLOC(E_Pointer, E_POINTER_TYPE, _e_pointer_free);
|
|
||||||
if (!p) return NULL;
|
|
||||||
|
|
||||||
p->win = win;
|
|
||||||
|
|
||||||
p->w = e_config->cursor_size;
|
|
||||||
p->h = e_config->cursor_size;
|
|
||||||
|
|
||||||
/* create evas */
|
|
||||||
p->evas = evas_new();
|
|
||||||
evas_output_method_set(p->evas, rmethod);
|
|
||||||
evas_output_size_set(p->evas, p->w, p->h);
|
|
||||||
evas_output_viewport_set(p->evas, 0, 0, p->w, p->h);
|
|
||||||
|
|
||||||
p->pixels = malloc(p->w * p->h * sizeof(int));
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(p->evas);
|
|
||||||
if (einfo)
|
|
||||||
{
|
{
|
||||||
einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_ARGB32;
|
rmethod = evas_render_method_lookup("buffer");
|
||||||
einfo->info.dest_buffer = p->pixels;
|
if (!rmethod) return NULL;
|
||||||
einfo->info.dest_buffer_row_bytes = p->w * sizeof(int);
|
|
||||||
einfo->info.use_color_key = 0;
|
|
||||||
einfo->info.alpha_threshold = 0;
|
|
||||||
einfo->info.func.new_update_region = NULL;
|
|
||||||
einfo->info.func.free_update_region = NULL;
|
|
||||||
evas_engine_info_set(p->evas, (Evas_Engine_Info *)einfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* set the pointer edje */
|
p = E_OBJECT_ALLOC(E_Pointer, E_POINTER_TYPE, _e_pointer_free);
|
||||||
o = edje_object_add(p->evas);
|
if (!p) return NULL;
|
||||||
p->pointer_object = o;
|
|
||||||
if (ecore_x_cursor_color_supported_get())
|
p->win = win;
|
||||||
{
|
|
||||||
if (!e_theme_edje_object_set(o,
|
p->w = e_config->cursor_size;
|
||||||
"base/theme/pointer",
|
p->h = e_config->cursor_size;
|
||||||
"pointer/enlightenment/default/color"))
|
|
||||||
e_theme_edje_object_set(o,
|
/* create evas */
|
||||||
"base/theme/pointer",
|
p->evas = evas_new();
|
||||||
"pointer/enlightenment/default/mono");
|
evas_output_method_set(p->evas, rmethod);
|
||||||
|
evas_output_size_set(p->evas, p->w, p->h);
|
||||||
|
evas_output_viewport_set(p->evas, 0, 0, p->w, p->h);
|
||||||
|
|
||||||
|
p->pixels = malloc(p->w * p->h * sizeof(int));
|
||||||
|
|
||||||
|
einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(p->evas);
|
||||||
|
if (einfo)
|
||||||
|
{
|
||||||
|
einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_ARGB32;
|
||||||
|
einfo->info.dest_buffer = p->pixels;
|
||||||
|
einfo->info.dest_buffer_row_bytes = p->w * sizeof(int);
|
||||||
|
einfo->info.use_color_key = 0;
|
||||||
|
einfo->info.alpha_threshold = 0;
|
||||||
|
einfo->info.func.new_update_region = NULL;
|
||||||
|
einfo->info.func.free_update_region = NULL;
|
||||||
|
evas_engine_info_set(p->evas, (Evas_Engine_Info *)einfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* set the pointer edje */
|
||||||
|
o = edje_object_add(p->evas);
|
||||||
|
p->pointer_object = o;
|
||||||
|
if (ecore_x_cursor_color_supported_get())
|
||||||
|
{
|
||||||
|
if (!e_theme_edje_object_set(o,
|
||||||
|
"base/theme/pointer",
|
||||||
|
"pointer/enlightenment/default/color"))
|
||||||
|
e_theme_edje_object_set(o,
|
||||||
|
"base/theme/pointer",
|
||||||
|
"pointer/enlightenment/default/mono");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!e_theme_edje_object_set(o,
|
||||||
|
"base/theme/pointer",
|
||||||
|
"pointer/enlightenment/default/mono"))
|
||||||
|
e_theme_edje_object_set(o,
|
||||||
|
"base/theme/pointer",
|
||||||
|
"pointer/enlightenment/default/color");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Create the hotspot object */
|
||||||
|
o = evas_object_rectangle_add(p->evas);
|
||||||
|
p->hot_object = o;
|
||||||
|
evas_object_event_callback_add(o,
|
||||||
|
EVAS_CALLBACK_MOVE,
|
||||||
|
_e_pointer_cb_move, p);
|
||||||
|
edje_object_part_swallow(p->pointer_object, "hotspot", o);
|
||||||
|
|
||||||
|
/* init edje */
|
||||||
|
evas_object_move(p->pointer_object, 0, 0);
|
||||||
|
evas_object_resize(p->pointer_object, p->w, p->h);
|
||||||
|
evas_object_show(p->pointer_object);
|
||||||
|
|
||||||
|
_e_pointers = evas_list_append(_e_pointers, p);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!e_theme_edje_object_set(o,
|
ecore_x_window_cursor_set(win,
|
||||||
"base/theme/pointer",
|
ecore_x_cursor_shape_get(ECORE_X_CURSOR_LEFT_PTR));
|
||||||
"pointer/enlightenment/default/mono"))
|
|
||||||
e_theme_edje_object_set(o,
|
|
||||||
"base/theme/pointer",
|
|
||||||
"pointer/enlightenment/default/color");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create the hotspot object */
|
|
||||||
o = evas_object_rectangle_add(p->evas);
|
|
||||||
p->hot_object = o;
|
|
||||||
evas_object_event_callback_add(o,
|
|
||||||
EVAS_CALLBACK_MOVE,
|
|
||||||
_e_pointer_cb_move, p);
|
|
||||||
edje_object_part_swallow(p->pointer_object, "hotspot", o);
|
|
||||||
|
|
||||||
/* init edje */
|
|
||||||
evas_object_move(p->pointer_object, 0, 0);
|
|
||||||
evas_object_resize(p->pointer_object, p->w, p->h);
|
|
||||||
evas_object_show(p->pointer_object);
|
|
||||||
|
|
||||||
_e_pointers = evas_list_append(_e_pointers, p);
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue