forked from enlightenment/efl
i've been leaning mem usage down... save 30% on all evas_objects now! :)
SVN revision: 6678
This commit is contained in:
parent
702156de93
commit
9854af242d
|
@ -44,45 +44,68 @@ static void
|
|||
evas_object_event_callback_clear(Evas_Object *obj)
|
||||
{
|
||||
Evas_Callback_Type t;
|
||||
|
||||
if (!obj->callbacks.deletions_waiting) return;
|
||||
obj->callbacks.deletions_waiting = 0;
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks.in));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks.out));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks.down));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks.up));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks.move));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks.free));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks.key_down));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks.key_up));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks.obj_focus_in));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks.obj_focus_out));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks.obj_show));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks.obj_hide));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks.obj_move));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks.obj_resize));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks.obj_restack));
|
||||
|
||||
if (!obj->callbacks) return;
|
||||
if (!obj->callbacks->deletions_waiting) return;
|
||||
obj->callbacks->deletions_waiting = 0;
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks->in));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks->out));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks->down));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks->up));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks->move));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks->free));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks->key_down));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks->key_up));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks->obj_focus_in));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks->obj_focus_out));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks->obj_show));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks->obj_hide));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks->obj_move));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks->obj_resize));
|
||||
evas_object_event_callback_list_post_free(&(obj->callbacks->obj_restack));
|
||||
if ((!obj->callbacks->in) &&
|
||||
(!obj->callbacks->out) &&
|
||||
(!obj->callbacks->down) &&
|
||||
(!obj->callbacks->up) &&
|
||||
(!obj->callbacks->move) &&
|
||||
(!obj->callbacks->free) &&
|
||||
(!obj->callbacks->key_down) &&
|
||||
(!obj->callbacks->key_up) &&
|
||||
(!obj->callbacks->obj_focus_in) &&
|
||||
(!obj->callbacks->obj_focus_out) &&
|
||||
(!obj->callbacks->obj_show) &&
|
||||
(!obj->callbacks->obj_hide) &&
|
||||
(!obj->callbacks->obj_move) &&
|
||||
(!obj->callbacks->obj_resize) &&
|
||||
(!obj->callbacks->obj_restack))
|
||||
{
|
||||
free(obj->callbacks);
|
||||
obj->callbacks = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
evas_object_event_callback_cleanup(Evas_Object *obj)
|
||||
{
|
||||
/* MEM OK */
|
||||
evas_object_event_callback_list_free(&(obj->callbacks.in));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks.out));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks.down));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks.up));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks.move));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks.free));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks.key_down));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks.key_up));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks.obj_focus_in));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks.obj_focus_out));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks.obj_show));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks.obj_hide));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks.obj_move));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks.obj_resize));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks.obj_restack));
|
||||
if (!obj->callbacks) return;
|
||||
evas_object_event_callback_list_free(&(obj->callbacks->in));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks->out));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks->down));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks->up));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks->move));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks->free));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks->key_down));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks->key_up));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks->obj_focus_in));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks->obj_focus_out));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks->obj_show));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks->obj_hide));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks->obj_move));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks->obj_resize));
|
||||
evas_object_event_callback_list_free(&(obj->callbacks->obj_restack));
|
||||
free(obj->callbacks);
|
||||
obj->callbacks = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -91,58 +114,59 @@ evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void
|
|||
/* MEM OK */
|
||||
Evas_Object_List **l_mod, *l;
|
||||
|
||||
if (!obj->callbacks) return;
|
||||
switch (type)
|
||||
{
|
||||
case EVAS_CALLBACK_MOUSE_IN:
|
||||
l_mod = &(obj->callbacks.in);
|
||||
l_mod = &(obj->callbacks->in);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOUSE_OUT:
|
||||
l_mod = &(obj->callbacks.out);
|
||||
l_mod = &(obj->callbacks->out);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOUSE_DOWN:
|
||||
l_mod = &(obj->callbacks.down);
|
||||
l_mod = &(obj->callbacks->down);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOUSE_UP:
|
||||
l_mod = &(obj->callbacks.up);
|
||||
l_mod = &(obj->callbacks->up);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOUSE_MOVE:
|
||||
l_mod = &(obj->callbacks.move);
|
||||
l_mod = &(obj->callbacks->move);
|
||||
break;
|
||||
case EVAS_CALLBACK_FREE:
|
||||
l_mod = &(obj->callbacks.free);
|
||||
l_mod = &(obj->callbacks->free);
|
||||
break;
|
||||
case EVAS_CALLBACK_KEY_DOWN:
|
||||
l_mod = &(obj->callbacks.key_down);
|
||||
l_mod = &(obj->callbacks->key_down);
|
||||
break;
|
||||
case EVAS_CALLBACK_KEY_UP:
|
||||
l_mod = &(obj->callbacks.key_up);
|
||||
l_mod = &(obj->callbacks->key_up);
|
||||
break;
|
||||
case EVAS_CALLBACK_FOCUS_IN:
|
||||
l_mod = &(obj->callbacks.obj_focus_in);
|
||||
l_mod = &(obj->callbacks->obj_focus_in);
|
||||
break;
|
||||
case EVAS_CALLBACK_FOCUS_OUT:
|
||||
l_mod = &(obj->callbacks.obj_focus_out);
|
||||
l_mod = &(obj->callbacks->obj_focus_out);
|
||||
break;
|
||||
case EVAS_CALLBACK_SHOW:
|
||||
l_mod = &(obj->callbacks.obj_show);
|
||||
l_mod = &(obj->callbacks->obj_show);
|
||||
break;
|
||||
case EVAS_CALLBACK_HIDE:
|
||||
l_mod = &(obj->callbacks.obj_hide);
|
||||
l_mod = &(obj->callbacks->obj_hide);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOVE:
|
||||
l_mod = &(obj->callbacks.obj_move);
|
||||
l_mod = &(obj->callbacks->obj_move);
|
||||
break;
|
||||
case EVAS_CALLBACK_RESIZE:
|
||||
l_mod = &(obj->callbacks.obj_resize);
|
||||
l_mod = &(obj->callbacks->obj_resize);
|
||||
break;
|
||||
case EVAS_CALLBACK_RESTACK:
|
||||
l_mod = &(obj->callbacks.obj_restack);
|
||||
l_mod = &(obj->callbacks->obj_restack);
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
break;
|
||||
}
|
||||
obj->callbacks.walking_list++;
|
||||
obj->callbacks->walking_list++;
|
||||
for (l = *l_mod; l; l = l->next)
|
||||
{
|
||||
Evas_Func_Node *fn;
|
||||
|
@ -152,8 +176,8 @@ evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void
|
|||
fn->func(fn->data, obj->layer->evas, obj, event_info);
|
||||
if (obj->delete_me) break;
|
||||
}
|
||||
obj->callbacks.walking_list--;
|
||||
if (!obj->callbacks.walking_list)
|
||||
obj->callbacks->walking_list--;
|
||||
if (!obj->callbacks->walking_list)
|
||||
evas_object_event_callback_clear(obj);
|
||||
}
|
||||
|
||||
|
@ -328,52 +352,59 @@ evas_object_event_callback_add(Evas_Object *obj, Evas_Callback_Type type, void (
|
|||
fn->func = func;
|
||||
fn->data = (void *)data;
|
||||
|
||||
if (!obj->callbacks)
|
||||
obj->callbacks = evas_mem_calloc(sizeof(Evas_Callbacks));
|
||||
if (!obj->callbacks)
|
||||
{
|
||||
free(fn);
|
||||
return;
|
||||
}
|
||||
switch (type)
|
||||
{
|
||||
case EVAS_CALLBACK_MOUSE_IN:
|
||||
l_mod = &(obj->callbacks.in);
|
||||
l_mod = &(obj->callbacks->in);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOUSE_OUT:
|
||||
l_mod = &(obj->callbacks.out);
|
||||
l_mod = &(obj->callbacks->out);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOUSE_DOWN:
|
||||
l_mod = &(obj->callbacks.down);
|
||||
l_mod = &(obj->callbacks->down);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOUSE_UP:
|
||||
l_mod = &(obj->callbacks.up);
|
||||
l_mod = &(obj->callbacks->up);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOUSE_MOVE:
|
||||
l_mod = &(obj->callbacks.move);
|
||||
l_mod = &(obj->callbacks->move);
|
||||
break;
|
||||
case EVAS_CALLBACK_FREE:
|
||||
l_mod = &(obj->callbacks.free);
|
||||
l_mod = &(obj->callbacks->free);
|
||||
break;
|
||||
case EVAS_CALLBACK_KEY_DOWN:
|
||||
l_mod = &(obj->callbacks.key_down);
|
||||
l_mod = &(obj->callbacks->key_down);
|
||||
break;
|
||||
case EVAS_CALLBACK_KEY_UP:
|
||||
l_mod = &(obj->callbacks.key_up);
|
||||
l_mod = &(obj->callbacks->key_up);
|
||||
break;
|
||||
case EVAS_CALLBACK_FOCUS_IN:
|
||||
l_mod = &(obj->callbacks.obj_focus_in);
|
||||
l_mod = &(obj->callbacks->obj_focus_in);
|
||||
break;
|
||||
case EVAS_CALLBACK_FOCUS_OUT:
|
||||
l_mod = &(obj->callbacks.obj_focus_out);
|
||||
l_mod = &(obj->callbacks->obj_focus_out);
|
||||
break;
|
||||
case EVAS_CALLBACK_SHOW:
|
||||
l_mod = &(obj->callbacks.obj_show);
|
||||
l_mod = &(obj->callbacks->obj_show);
|
||||
break;
|
||||
case EVAS_CALLBACK_HIDE:
|
||||
l_mod = &(obj->callbacks.obj_hide);
|
||||
l_mod = &(obj->callbacks->obj_hide);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOVE:
|
||||
l_mod = &(obj->callbacks.obj_move);
|
||||
l_mod = &(obj->callbacks->obj_move);
|
||||
break;
|
||||
case EVAS_CALLBACK_RESIZE:
|
||||
l_mod = &(obj->callbacks.obj_resize);
|
||||
l_mod = &(obj->callbacks->obj_resize);
|
||||
break;
|
||||
case EVAS_CALLBACK_RESTACK:
|
||||
l_mod = &(obj->callbacks.obj_restack);
|
||||
l_mod = &(obj->callbacks->obj_restack);
|
||||
break;
|
||||
default:
|
||||
free(fn);
|
||||
|
@ -418,52 +449,54 @@ evas_object_event_callback_del(Evas_Object *obj, Evas_Callback_Type type, void (
|
|||
|
||||
if (!func) return NULL;
|
||||
|
||||
if (!obj->callbacks) return NULL;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case EVAS_CALLBACK_MOUSE_IN:
|
||||
l_mod = &(obj->callbacks.in);
|
||||
l_mod = &(obj->callbacks->in);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOUSE_OUT:
|
||||
l_mod = &(obj->callbacks.out);
|
||||
l_mod = &(obj->callbacks->out);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOUSE_DOWN:
|
||||
l_mod = &(obj->callbacks.down);
|
||||
l_mod = &(obj->callbacks->down);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOUSE_UP:
|
||||
l_mod = &(obj->callbacks.up);
|
||||
l_mod = &(obj->callbacks->up);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOUSE_MOVE:
|
||||
l_mod = &(obj->callbacks.move);
|
||||
l_mod = &(obj->callbacks->move);
|
||||
break;
|
||||
case EVAS_CALLBACK_FREE:
|
||||
l_mod = &(obj->callbacks.free);
|
||||
l_mod = &(obj->callbacks->free);
|
||||
break;
|
||||
case EVAS_CALLBACK_KEY_DOWN:
|
||||
l_mod = &(obj->callbacks.key_down);
|
||||
l_mod = &(obj->callbacks->key_down);
|
||||
break;
|
||||
case EVAS_CALLBACK_KEY_UP:
|
||||
l_mod = &(obj->callbacks.key_up);
|
||||
l_mod = &(obj->callbacks->key_up);
|
||||
break;
|
||||
case EVAS_CALLBACK_FOCUS_IN:
|
||||
l_mod = &(obj->callbacks.obj_focus_in);
|
||||
l_mod = &(obj->callbacks->obj_focus_in);
|
||||
break;
|
||||
case EVAS_CALLBACK_FOCUS_OUT:
|
||||
l_mod = &(obj->callbacks.obj_focus_out);
|
||||
l_mod = &(obj->callbacks->obj_focus_out);
|
||||
break;
|
||||
case EVAS_CALLBACK_SHOW:
|
||||
l_mod = &(obj->callbacks.obj_show);
|
||||
l_mod = &(obj->callbacks->obj_show);
|
||||
break;
|
||||
case EVAS_CALLBACK_HIDE:
|
||||
l_mod = &(obj->callbacks.obj_hide);
|
||||
l_mod = &(obj->callbacks->obj_hide);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOVE:
|
||||
l_mod = &(obj->callbacks.obj_move);
|
||||
l_mod = &(obj->callbacks->obj_move);
|
||||
break;
|
||||
case EVAS_CALLBACK_RESIZE:
|
||||
l_mod = &(obj->callbacks.obj_resize);
|
||||
l_mod = &(obj->callbacks->obj_resize);
|
||||
break;
|
||||
case EVAS_CALLBACK_RESTACK:
|
||||
l_mod = &(obj->callbacks.obj_restack);
|
||||
l_mod = &(obj->callbacks->obj_restack);
|
||||
break;
|
||||
default:
|
||||
return NULL;
|
||||
|
@ -480,8 +513,8 @@ evas_object_event_callback_del(Evas_Object *obj, Evas_Callback_Type type, void (
|
|||
|
||||
data = fn->data;
|
||||
fn->delete_me = 1;
|
||||
obj->callbacks.deletions_waiting = 1;
|
||||
if (!obj->callbacks.walking_list)
|
||||
obj->callbacks->deletions_waiting = 1;
|
||||
if (!obj->callbacks->walking_list)
|
||||
evas_object_event_callback_clear(obj);
|
||||
return data;
|
||||
}
|
||||
|
|
|
@ -15,9 +15,9 @@ struct _Evas_Object_Gradient
|
|||
struct {
|
||||
double angle;
|
||||
} cur, prev;
|
||||
int changed : 1;
|
||||
int gradient_changed : 1;
|
||||
int gradient_opaque : 1;
|
||||
char changed : 1;
|
||||
char gradient_changed : 1;
|
||||
char gradient_opaque : 1;
|
||||
|
||||
void *engine_data;
|
||||
};
|
||||
|
|
|
@ -15,24 +15,22 @@ struct _Evas_Object_Image
|
|||
struct {
|
||||
struct {
|
||||
double x, y, w, h;
|
||||
} fill;
|
||||
|
||||
} fill;
|
||||
struct {
|
||||
int w, h;
|
||||
short w, h;
|
||||
} image;
|
||||
|
||||
struct {
|
||||
int l, r, t, b;
|
||||
short l, r, t, b;
|
||||
} border;
|
||||
|
||||
char *file;
|
||||
char *key;
|
||||
|
||||
int smooth_scale : 1;
|
||||
int has_alpha :1;
|
||||
char smooth_scale : 1;
|
||||
char has_alpha :1;
|
||||
} cur, prev;
|
||||
|
||||
int changed : 1;
|
||||
char changed : 1;
|
||||
|
||||
int load_error;
|
||||
Evas_List *pixel_updates;
|
||||
|
|
|
@ -20,7 +20,7 @@ struct _Evas_Object_Line
|
|||
} cache;
|
||||
double x1, y1, x2, y2;
|
||||
} cur, prev;
|
||||
int changed : 1;
|
||||
char changed : 1;
|
||||
|
||||
void *engine_data;
|
||||
};
|
||||
|
|
|
@ -12,9 +12,9 @@ typedef struct _Evas_Polygon_Point Evas_Polygon_Point;
|
|||
struct _Evas_Object_Polygon
|
||||
{
|
||||
DATA32 magic;
|
||||
int changed : 1;
|
||||
Evas_List *points;
|
||||
|
||||
Evas_List *points;
|
||||
char changed : 1;
|
||||
|
||||
void *engine_data;
|
||||
};
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ struct _Evas_Object_Smart
|
|||
struct _Evas_Smart_Callback
|
||||
{
|
||||
char *event;
|
||||
int delete_me : 1;
|
||||
char delete_me : 1;
|
||||
void (*func) (void *data, Evas_Object *obj, void *event_info);
|
||||
void *func_data;
|
||||
};
|
||||
|
|
|
@ -17,10 +17,10 @@ struct _Evas_Object_Text
|
|||
char *font;
|
||||
double size;
|
||||
} cur, prev;
|
||||
int changed : 1;
|
||||
char changed : 1;
|
||||
|
||||
double ascent, descent;
|
||||
double max_ascent, max_descent;
|
||||
float ascent, descent;
|
||||
float max_ascent, max_descent;
|
||||
|
||||
void *engine_data;
|
||||
};
|
||||
|
|
|
@ -53,6 +53,7 @@ typedef struct _Evas_Intercept_Func_SizePos Evas_Intercept_Func_SizePos;
|
|||
typedef struct _Evas_Intercept_Func_Obj Evas_Intercept_Func_Obj;
|
||||
typedef struct _Evas_Intercept_Func_Int Evas_Intercept_Func_Int;
|
||||
typedef struct _Evas_Key_Grab Evas_Key_Grab;
|
||||
typedef struct _Evas_Callbacks Evas_Callbacks;
|
||||
|
||||
#define MAGIC_EVAS 0x70777770
|
||||
#define MAGIC_OBJ 0x71777770
|
||||
|
@ -128,7 +129,7 @@ struct _Evas_Key_Grab
|
|||
Evas_Modifier_Mask modifiers;
|
||||
Evas_Modifier_Mask not_modifiers;
|
||||
Evas_Object *object;
|
||||
int exclusive : 1;
|
||||
char exclusive : 1;
|
||||
};
|
||||
|
||||
struct _Evas_Intercept_Func
|
||||
|
@ -152,7 +153,7 @@ struct _Evas_Smart
|
|||
int usage;
|
||||
void *data;
|
||||
|
||||
int delete_me : 1;
|
||||
char delete_me : 1;
|
||||
|
||||
void (*func_add) (Evas_Object *o);
|
||||
void (*func_del) (Evas_Object *o);
|
||||
|
@ -188,6 +189,27 @@ struct _Evas_Lock
|
|||
Evas_Modifier_Mask mask; /* we have a max of 64 locks */
|
||||
};
|
||||
|
||||
struct _Evas_Callbacks
|
||||
{
|
||||
char deletions_waiting : 1;
|
||||
int walking_list;
|
||||
Evas_Object_List *down;
|
||||
Evas_Object_List *up;
|
||||
Evas_Object_List *move;
|
||||
Evas_Object_List *in;
|
||||
Evas_Object_List *out;
|
||||
Evas_Object_List *key_down;
|
||||
Evas_Object_List *key_up;
|
||||
Evas_Object_List *free;
|
||||
Evas_Object_List *obj_focus_in;
|
||||
Evas_Object_List *obj_focus_out;
|
||||
Evas_Object_List *obj_show;
|
||||
Evas_Object_List *obj_hide;
|
||||
Evas_Object_List *obj_move;
|
||||
Evas_Object_List *obj_resize;
|
||||
Evas_Object_List *obj_restack;
|
||||
};
|
||||
|
||||
struct _Evas
|
||||
{
|
||||
Evas_Object_List _list_data;
|
||||
|
@ -195,8 +217,8 @@ struct _Evas
|
|||
DATA32 magic;
|
||||
|
||||
struct {
|
||||
int inside : 1;
|
||||
int mouse_grabbed : 1;
|
||||
char inside : 1;
|
||||
char mouse_grabbed : 1;
|
||||
DATA32 button;
|
||||
int x, y;
|
||||
|
||||
|
@ -210,13 +232,13 @@ struct _Evas
|
|||
|
||||
struct {
|
||||
double x, y, w, h;
|
||||
int changed : 1;
|
||||
char changed : 1;
|
||||
} viewport;
|
||||
|
||||
struct {
|
||||
int w, h;
|
||||
DATA32 render_method;
|
||||
int changed : 1;
|
||||
char changed : 1;
|
||||
} output;
|
||||
|
||||
int output_validity;
|
||||
|
@ -228,7 +250,7 @@ struct _Evas
|
|||
|
||||
Evas_Hash *name_hash;
|
||||
|
||||
int changed : 1;
|
||||
char changed : 1;
|
||||
|
||||
int events_frozen;
|
||||
|
||||
|
@ -260,8 +282,6 @@ struct _Evas_Layer
|
|||
int layer;
|
||||
Evas_Object *objects;
|
||||
|
||||
int store : 1;
|
||||
|
||||
Evas *evas;
|
||||
|
||||
void *engine_data;
|
||||
|
@ -273,8 +293,7 @@ struct _Evas_Object
|
|||
|
||||
DATA32 magic;
|
||||
|
||||
const char *type;
|
||||
|
||||
const char *type;
|
||||
Evas_Layer *layer;
|
||||
|
||||
struct {
|
||||
|
@ -285,39 +304,22 @@ struct _Evas_Object
|
|||
} geometry;
|
||||
struct {
|
||||
int x, y, w, h;
|
||||
int r, g, b, a;
|
||||
int visible;
|
||||
unsigned char r, g, b, a;
|
||||
char visible : 1;
|
||||
} clip;
|
||||
} cache;
|
||||
struct {
|
||||
double x, y, w, h;
|
||||
} geometry;
|
||||
struct {
|
||||
int r, g, b, a;
|
||||
} color;
|
||||
|
||||
int visible : 1;
|
||||
|
||||
int layer;
|
||||
|
||||
Evas_Object *clipper;
|
||||
|
||||
unsigned char r, g, b, a;
|
||||
} color;
|
||||
char visible : 1;
|
||||
int layer;
|
||||
Evas_Object *clipper;
|
||||
} cur, prev;
|
||||
|
||||
char *name;
|
||||
|
||||
int store : 1;
|
||||
int pass_events : 1;
|
||||
int repeat_events : 1;
|
||||
int restack : 1;
|
||||
int changed : 1;
|
||||
int mouse_in : 1;
|
||||
int mouse_grabbed : 1;
|
||||
int pre_render_done : 1;
|
||||
int intercepted : 1;
|
||||
int focused : 1;
|
||||
|
||||
int delete_me;
|
||||
char *name;
|
||||
|
||||
Evas_Intercept_Func *interceptors;
|
||||
|
||||
|
@ -326,26 +328,8 @@ struct _Evas_Object
|
|||
} data;
|
||||
|
||||
Evas_List *grabs;
|
||||
|
||||
struct {
|
||||
int deletions_waiting : 1;
|
||||
int walking_list;
|
||||
Evas_Object_List *in;
|
||||
Evas_Object_List *out;
|
||||
Evas_Object_List *down;
|
||||
Evas_Object_List *up;
|
||||
Evas_Object_List *move;
|
||||
Evas_Object_List *free;
|
||||
Evas_Object_List *key_down;
|
||||
Evas_Object_List *key_up;
|
||||
Evas_Object_List *obj_focus_in;
|
||||
Evas_Object_List *obj_focus_out;
|
||||
Evas_Object_List *obj_show;
|
||||
Evas_Object_List *obj_hide;
|
||||
Evas_Object_List *obj_move;
|
||||
Evas_Object_List *obj_resize;
|
||||
Evas_Object_List *obj_restack;
|
||||
} callbacks;
|
||||
|
||||
Evas_Callbacks *callbacks;
|
||||
|
||||
struct {
|
||||
Evas_List *clipees;
|
||||
|
@ -353,24 +337,37 @@ struct _Evas_Object
|
|||
} clip;
|
||||
|
||||
Evas_Object_Func *func;
|
||||
|
||||
void *object_data;
|
||||
|
||||
struct {
|
||||
int walking_list;
|
||||
int deletions_waiting : 1;
|
||||
Evas_Smart *smart;
|
||||
void *data;
|
||||
Evas_Object *parent;
|
||||
Evas_List *contained;
|
||||
Evas_List *callbacks;
|
||||
char deletions_waiting : 1;
|
||||
} smart;
|
||||
|
||||
void *object_data;
|
||||
short store : 1;
|
||||
short pass_events : 1;
|
||||
short repeat_events : 1;
|
||||
short restack : 1;
|
||||
short changed : 1;
|
||||
short mouse_in : 1;
|
||||
short mouse_grabbed : 1;
|
||||
short pre_render_done : 1;
|
||||
short intercepted : 1;
|
||||
short focused : 1;
|
||||
|
||||
unsigned char delete_me;
|
||||
};
|
||||
|
||||
struct _Evas_Func_Node
|
||||
{
|
||||
Evas_Object_List _list_data;
|
||||
int delete_me : 1;
|
||||
char delete_me : 1;
|
||||
void (*func) (void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||
void *data;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue