rename pointer images, different edje group names (better namespace i guess),

rationalise pointer usage down to 1 for init, 1 for everything else.


SVN revision: 16304
This commit is contained in:
Carsten Haitzler 2005-08-24 04:22:52 +00:00
parent d4c6859178
commit 120960c191
11 changed files with 154 additions and 157 deletions

14
README
View File

@ -9,3 +9,17 @@ of its own (recommended) like:
./configure --prefix=/usr/local/e17
You will, as usual need to add the subsequent bin dir to your $PATH etc.
NOTES:
* do NOT use -mfpmath=sse in CFLAGS - we are not sure, but it may have bugds
and screws up things in edje, evas and e17. if your gcc uses this by default
(which apparently gcc4.x does on amd64), turn it off with a -fpmath=387 in
your CFLAGS.
* your freetype2 version must be > 2.1.7
* i remember hearing of bugs with later versions of freetype on some
distributions (2.1.9 and 2.1.10) with certain patches or missing certain
patches. be aware of this as a possible font problem.

View File

@ -1,123 +1,124 @@
images {
image: "pointer.png" COMP;
image: "pointer_mono.png" COMP;
image: "e17_pointer.png" COMP;
image: "e17_pointer_mono.png" COMP;
}
group {
name: "pointer/enlightenment/default";
parts {
part {
name: "pointer";
type: IMAGE;
mouse_events: 0;
description {
state: "default" 0.0;
rel1 {
relative: 0.0 0.0;
offset: 0 0;
}
rel2 {
relative: 0.68750 1.0;
offset: -1 -1;
}
image {
normal: "pointer.png";
}
group {
name: "pointer/enlightenment/default/color";
parts {
part {
name: "pointer";
type: IMAGE;
mouse_events: 0;
description {
state: "default" 0.0;
rel1 {
relative: 0.0 0.0;
offset: 0 0;
}
description {
state: "test" 0.0;
aspect: 0.75 1.0;
rel1 {
relative: 0.0 0.0;
offset: 8 8;
}
rel2 {
relative: 0.0 0.0;
offset: 24 32;
}
image {
normal: "pointer_mono.png";
}
rel2 {
relative: 0.68750 1.0;
offset: -1 -1;
}
image {
normal: "e17_pointer.png";
}
}
part {
name: "hotspot";
type: SWALLOW;
mouse_events: 0;
description {
state: "default" 0.0;
visible: 0;
rel1 {
relative: 0.0 0.0;
offset: 1 2;
}
rel2 {
relative: 0.0 0.0;
offset: 2 3;
}
description {
state: "test" 0.0;
aspect: 0.75 1.0;
rel1 {
relative: 0.0 0.0;
offset: 8 8;
}
description {
state: "test" 0.0;
visible: 0;
rel1 {
relative: 0.0 0.0;
offset: 8 8;
}
rel2 {
relative: 0.0 0.0;
offset: 9 9;
}
rel2 {
relative: 0.0 0.0;
offset: 24 32;
}
image {
normal: "e17_pointer_mono.png";
}
}
}
programs {
program {
name: "test_hot";
signal: "test";
source: "";
action: STATE_SET "test" 0.0;
target: "hotspot";
}
program {
name: "test_pointer";
signal: "test";
source: "";
action: STATE_SET "test" 0.0;
target: "pointer";
}
}
}
group {
name: "pointer/enlightenment/mono";
parts {
part {
name: "pointer";
type: IMAGE;
mouse_events: 0;
description {
state: "default" 0.0;
aspect: 0.75 1.0;
image {
normal: "pointer_mono.png";
}
part {
name: "hotspot";
type: SWALLOW;
mouse_events: 0;
description {
state: "default" 0.0;
visible: 0;
rel1 {
relative: 0.0 0.0;
offset: 1 2;
}
rel2 {
relative: 0.0 0.0;
offset: 1 2;
}
}
part {
name: "hotspot";
type: SWALLOW;
mouse_events: 0;
description {
state: "default" 0.0;
visible: 0;
rel1 {
relative: 0.0 0.0;
offset: 0 0;
}
rel2 {
relative: 0.0 0.0;
offset: 1 1;
}
description {
state: "test" 0.0;
visible: 0;
rel1 {
relative: 0.0 0.0;
offset: 8 8;
}
rel2 {
relative: 0.0 0.0;
offset: 8 8;
}
}
}
}
programs {
program {
name: "test_hot";
signal: "test";
source: "";
action: STATE_SET "test" 0.0;
target: "hotspot";
}
program {
name: "test_pointer";
signal: "test";
source: "";
action: STATE_SET "test" 0.0;
target: "pointer";
}
}
}
group {
name: "pointer/enlightenment/default/mono";
parts {
part {
name: "pointer";
type: IMAGE;
mouse_events: 0;
description {
state: "default" 0.0;
aspect: 0.75 1.0;
image {
normal: "e17_pointer_mono.png";
}
}
}
part {
name: "hotspot";
type: SWALLOW;
mouse_events: 0;
description {
state: "default" 0.0;
visible: 0;
rel1 {
relative: 0.0 0.0;
offset: 0 0;
}
rel2 {
relative: 0.0 0.0;
offset: 0 0;
}
}
}
}
}

View File

@ -306,6 +306,6 @@ e17_icon_run.png \
e17_icon_theme_0.png \
e17_icon_theme_glow_0.png \
e17_icon_windows.png \
e17_icon_lost_windows.png
e17_icon_lost_windows.png \
e17_pointer.png \
e17_pointer_mono.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

View File

@ -123,7 +123,6 @@ e_container_new(E_Manager *man)
evas_object_show(o);
con->pointer.root = e_pointer_window_set(con->manager->root);
con->pointer.win = e_pointer_window_set(con->win);
con->num = container_num;
container_num++;
@ -892,7 +891,6 @@ _e_container_free(E_Container *con)
int i;
if (con->pointer.root) e_object_del(E_OBJECT(con->pointer.root));
if (con->pointer.win) e_object_del(E_OBJECT(con->pointer.win));
ecore_x_window_del(con->event_win);
if (con->gadman) e_object_del(E_OBJECT(con->gadman));

View File

@ -57,7 +57,6 @@ struct _E_Container
struct {
E_Pointer *root;
E_Pointer *win;
} pointer;
};

View File

@ -61,7 +61,6 @@ e_error_message_manager_show(E_Manager *man, char *title, char *txt)
Evas_Coord maxw, maxh;
E_Container *con;
Ecore_X_Window win;
E_Pointer *p;
int x, y;
char *s;
@ -94,8 +93,6 @@ e_error_message_manager_show(E_Manager *man, char *title, char *txt)
ecore_evas_title_set(ee, "Enlightenment: Low Level Dialog");
// ecore_evas_avoid_damage_set(ee, 1);
e = ecore_evas_get(ee);
p = e_pointer_window_set(win);
ecore_evas_data_set(ee, "pointer", p);
o = edje_object_add(e);
if (!e_theme_edje_object_set(o, "base/theme/error", "error/main"))
@ -423,17 +420,12 @@ _e_error_cb_job_ecore_evas_free(void *data)
{
Ecore_Evas *ee;
Evas_List *shapelist, *l;
E_Pointer *p;
ee = data;
shapelist = ecore_evas_data_get(ee, "shapes");
for (l = shapelist; l; l = l->next)
e_object_del(E_OBJECT(l->data));
for (l = shapelist; l; l = l->next) e_object_del(E_OBJECT(l->data));
evas_list_free(shapelist);
p = ecore_evas_data_get(ee, "pointer");
e_object_del(E_OBJECT(p));
e_canvas_del(ee);
ecore_evas_free(ee);
}

View File

@ -56,28 +56,19 @@ e_pointer_window_set(Ecore_X_Window win)
{
if (!e_theme_edje_object_set(o,
"base/theme/pointer",
"pointer/enlightenment/default"))
{
/* error */
printf("ERROR: No default theme for pointer!\n");
if (!e_theme_edje_object_set(o,
"base/theme/pointer",
"pointer/enlightenment/mono"))
{
/* error */
printf("ERROR: No mono theme for pointer!\n");
}
}
"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/mono"))
{
/* error */
printf("ERROR: No mono theme for pointer!\n");
}
"pointer/enlightenment/default/mono"))
e_theme_edje_object_set(o,
"base/theme/pointer",
"pointer/enlightenment/default/color");
}
/* Create the hotspot object */
@ -109,15 +100,15 @@ e_pointer_idler_before(void)
p = l->data;
updates = evas_render_updates(p->evas);
if (updates)
if ((updates) || (p->hot.update))
{
Ecore_X_Cursor cur;
cur = ecore_x_cursor_new(p->win, p->pixels, p->w, p->h, p->hot.x, p->hot.y);
ecore_x_window_cursor_set(p->win, cur);
ecore_x_cursor_free(cur);
evas_render_updates_free(updates);
p->hot.update = 0;
}
}
}
@ -131,8 +122,12 @@ _e_pointer_cb_move(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event
p = data;
evas_object_geometry_get(p->hot_object, &x, &y, NULL, NULL);
p->hot.x = x;
p->hot.y = y;
if ((p->hot.x != x) || (p->hot.y != y))
{
p->hot.x = x;
p->hot.y = y;
p->hot.update = 1;
}
}
static void

View File

@ -13,20 +13,18 @@ typedef struct _E_Pointer E_Pointer;
struct _E_Pointer
{
E_Object e_obj_inherit;
Evas *evas;
Evas_Object *pointer_object;
Evas_Object *hot_object;
int *pixels;
Ecore_X_Window win;
int w, h;
struct {
int x, y;
} hot;
E_Object e_obj_inherit;
Evas *evas;
Evas_Object *pointer_object;
Evas_Object *hot_object;
int *pixels;
Ecore_X_Window win;
int w, h;
struct {
int x, y;
unsigned char update : 1;
} hot;
};
EAPI E_Pointer *e_pointer_window_set(Ecore_X_Window win);