From b7ec896ab8233c6f354a08078b8b79ce85584e81 Mon Sep 17 00:00:00 2001 From: sebastid Date: Tue, 27 Sep 2005 10:18:52 +0000 Subject: [PATCH] Move cursor logic to e_pointer.c SVN revision: 16988 --- src/bin/e_container.c | 8 +-- src/bin/e_init.c | 9 +-- src/bin/e_pointer.c | 134 ++++++++++++++++++++++-------------------- 3 files changed, 73 insertions(+), 78 deletions(-) diff --git a/src/bin/e_container.c b/src/bin/e_container.c index a073ac814..9ef689a9b 100644 --- a/src/bin/e_container.c +++ b/src/bin/e_container.c @@ -122,13 +122,7 @@ e_container_new(E_Manager *man) evas_object_data_set(o, "e_container", con); evas_object_show(o); - if (e_config->use_e_cursor) - 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->pointer.root = e_pointer_window_set(con->manager->root); con->num = container_num; container_num++; diff --git a/src/bin/e_init.c b/src/bin/e_init.c index bc2488a14..58119a9ca 100644 --- a/src/bin/e_init.c +++ b/src/bin/e_init.c @@ -62,14 +62,7 @@ e_init_init(void) ecore_evas_name_class_set(_e_init_ecore_evas, "E", "Init_Window"); 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); - else - { - _e_init_pointer = NULL; - ecore_x_window_cursor_set(_e_init_win, - ecore_x_cursor_shape_get(ECORE_X_CURSOR_LEFT_PTR)); - } + _e_init_pointer = e_pointer_window_set(_e_init_win); ecore_evas_raise(_e_init_ecore_evas); ecore_evas_show(_e_init_ecore_evas); diff --git a/src/bin/e_pointer.c b/src/bin/e_pointer.c index 46d3b46fa..f13d96875 100644 --- a/src/bin/e_pointer.c +++ b/src/bin/e_pointer.c @@ -13,78 +13,86 @@ E_Pointer * e_pointer_window_set(Ecore_X_Window win) { Evas_Engine_Info_Buffer *einfo; - E_Pointer *p; + E_Pointer *p = NULL; Evas_Object *o; int rmethod; - rmethod = evas_render_method_lookup("buffer"); - 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) + if (e_config->use_e_cursor) { - 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); - } + rmethod = evas_render_method_lookup("buffer"); + if (!rmethod) return NULL; - /* 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"); + 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; + 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 { - 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"); + ecore_x_window_cursor_set(win, + ecore_x_cursor_shape_get(ECORE_X_CURSOR_LEFT_PTR)); } - - /* 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; }