forked from enlightenment/efl
parent
67f86603a5
commit
3f4531de45
|
@ -12,10 +12,12 @@ typedef void * Evas_Group;
|
||||||
typedef int Evas_Callback_Type;
|
typedef int Evas_Callback_Type;
|
||||||
typedef int Evas_Image_Format;
|
typedef int Evas_Image_Format;
|
||||||
typedef int Evas_Blend_Mode;
|
typedef int Evas_Blend_Mode;
|
||||||
|
typedef int Evas_Render_Method;
|
||||||
typedef struct _Evas_List * Evas_List;
|
typedef struct _Evas_List * Evas_List;
|
||||||
typedef struct _Evas_Layer * Evas_Layer;
|
typedef struct _Evas_Layer * Evas_Layer;
|
||||||
typedef struct _Evas_Color_Point * Evas_Color_Point;
|
typedef struct _Evas_Color_Point * Evas_Color_Point;
|
||||||
typedef struct _Evas_Callback * Evas_Callback;
|
typedef struct _Evas_Callback * Evas_Callback;
|
||||||
|
typedef struct _Evas_Rectangle * Evas_Rectangle;
|
||||||
typedef struct _Evas_Object_Image * Evas_Object_Image;
|
typedef struct _Evas_Object_Image * Evas_Object_Image;
|
||||||
typedef struct _Evas_Object_Text * Evas_Object_Text;
|
typedef struct _Evas_Object_Text * Evas_Object_Text;
|
||||||
typedef struct _Evas_Object_Rectangle * Evas_Object_Rectangle;
|
typedef struct _Evas_Object_Rectangle * Evas_Object_Rectangle;
|
||||||
|
@ -24,9 +26,10 @@ typedef struct _Evas_Object_Gradient_Box * Evas_Object_Gradient_Box;
|
||||||
typedef struct _Evas_Object_Bits * Evas_Object_Bits;
|
typedef struct _Evas_Object_Bits * Evas_Object_Bits;
|
||||||
typedef struct _Evas_Object_Evas * Evas_Object_Evas;
|
typedef struct _Evas_Object_Evas * Evas_Object_Evas;
|
||||||
|
|
||||||
#define RENDER_METHOD_ALPHA_SOFTWARE 0
|
#define RENDER_METHOD_ALPHA_SOFTWARE 0
|
||||||
#define RENDER_METHOD_BASIC_HARDWARE 1
|
#define RENDER_METHOD_BASIC_HARDWARE 1
|
||||||
#define RENDER_METHOD_ALPHA_HARDWARE 2
|
#define RENDER_METHOD_3D_HARDWARE 2
|
||||||
|
#define RENDER_METHOD_ALPHA_HARDWARE 3
|
||||||
|
|
||||||
#define CALLBACK_MOUSE_IN 0
|
#define CALLBACK_MOUSE_IN 0
|
||||||
#define CALLBACK_MOUSE_OUT 1
|
#define CALLBACK_MOUSE_OUT 1
|
||||||
|
@ -46,6 +49,11 @@ typedef struct _Evas_Object_Evas * Evas_Object_Evas;
|
||||||
#define OBJECT_BITS 5
|
#define OBJECT_BITS 5
|
||||||
#define OBJECT_EVAS 6
|
#define OBJECT_EVAS 6
|
||||||
|
|
||||||
|
#define BLEND_ONTOP 0
|
||||||
|
#define BLEND_ADD 1
|
||||||
|
#define BLEND_SUBTRACT 2
|
||||||
|
#define BLEND_RESHADE 3
|
||||||
|
|
||||||
struct _Evas
|
struct _Evas
|
||||||
{
|
{
|
||||||
struct {
|
struct {
|
||||||
|
@ -62,11 +70,14 @@ struct _Evas
|
||||||
double x, y, w, h;
|
double x, y, w, h;
|
||||||
} viewport;
|
} viewport;
|
||||||
|
|
||||||
int render_method;
|
Evas_Render_Method render_method;
|
||||||
|
|
||||||
void *renderer_data;
|
void *renderer_data;
|
||||||
|
|
||||||
} current, previous;
|
} current, previous;
|
||||||
|
|
||||||
|
void (*object_render_data_free) (Evas _e, Evas_Object _o);
|
||||||
|
void (*evas_render_data_free) (Evas _e);
|
||||||
|
|
||||||
Evas_List layers;
|
Evas_List layers;
|
||||||
Evas_List updates;
|
Evas_List updates;
|
||||||
|
@ -89,11 +100,15 @@ struct _Evas_List
|
||||||
void *data;
|
void *data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct _Evas_Rectangle
|
||||||
|
{
|
||||||
|
int x, y, w, h;
|
||||||
|
};
|
||||||
|
|
||||||
struct _Evas_Layer
|
struct _Evas_Layer
|
||||||
{
|
{
|
||||||
int layer;
|
int layer;
|
||||||
Evas_List objects;
|
Evas_List objects;
|
||||||
Evas_List groups;
|
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
int store;
|
int store;
|
||||||
|
@ -116,9 +131,11 @@ struct _Evas_Object_Any
|
||||||
double x, y, w, h;
|
double x, y, w, h;
|
||||||
Evas_Blend_Mode mode;
|
Evas_Blend_Mode mode;
|
||||||
int zoomscale;
|
int zoomscale;
|
||||||
|
int layer;
|
||||||
} current, previous;
|
} current, previous;
|
||||||
|
|
||||||
|
void (*object_free) (Evas_Object _o);
|
||||||
|
|
||||||
Evas_List groups;
|
|
||||||
Evas_List callbacks;
|
Evas_List callbacks;
|
||||||
|
|
||||||
void *renderer_data;
|
void *renderer_data;
|
||||||
|
@ -131,6 +148,7 @@ struct _Evas_Object_Image
|
||||||
struct {
|
struct {
|
||||||
char *file;
|
char *file;
|
||||||
double angle;
|
double angle;
|
||||||
|
int new_data;
|
||||||
struct _fill {
|
struct _fill {
|
||||||
double x, y, w, h;
|
double x, y, w, h;
|
||||||
} fill;
|
} fill;
|
||||||
|
@ -204,14 +222,15 @@ void evas_update_rect(Evas e, int x, int y, int w, int h);
|
||||||
void evas_render(Evas e);
|
void evas_render(Evas e);
|
||||||
|
|
||||||
/* query for settings to use */
|
/* query for settings to use */
|
||||||
Visual *evas_get_optimal_visual(Display *disp);
|
Visual *evas_get_optimal_visual(Evas e, Display *disp);
|
||||||
Colormap evas_get_optimal_colormap(Display *disp);
|
Colormap evas_get_optimal_colormap(Evas e, Display *disp);
|
||||||
|
|
||||||
/* the output settings */
|
/* the output settings */
|
||||||
void evas_set_output(Evas e, Display *disp, Drawable d, Visual *v, Colormap c);
|
void evas_set_output(Evas e, Display *disp, Drawable d, Visual *v, Colormap c);
|
||||||
void evas_set_output_rect(Evas e, int x, int y, int w, int h);
|
void evas_set_output_rect(Evas e, int x, int y, int w, int h);
|
||||||
void evas_set_viewport(Evas e, double x, double y, double w, double h);
|
void evas_set_output_viewport(Evas e, double x, double y, double w, double h);
|
||||||
|
void evas_set_output_method(Evas e, Evas_Render_Method method);
|
||||||
|
|
||||||
/* deleting objects */
|
/* deleting objects */
|
||||||
void evas_del_object(Evas e, Evas_Object o);
|
void evas_del_object(Evas e, Evas_Object o);
|
||||||
|
|
||||||
|
@ -219,17 +238,19 @@ void evas_del_object(Evas e, Evas_Object o);
|
||||||
Evas_Object evas_add_image_from_file(Evas e, char *file);
|
Evas_Object evas_add_image_from_file(Evas e, char *file);
|
||||||
Evas_Object evas_add_image_from_data(Evas e, void *data, Evas_Image_Format format, int w, int h);
|
Evas_Object evas_add_image_from_data(Evas e, void *data, Evas_Image_Format format, int w, int h);
|
||||||
Evas_Object evas_add_text(Evas e, char *font, int size, char *text);
|
Evas_Object evas_add_text(Evas e, char *font, int size, char *text);
|
||||||
Evas_Object evas_add_rectangle(Evas e, int r, Evas_Group g, int b);
|
Evas_Object evas_add_rectangle(Evas e, int r, int g, int b, int a);
|
||||||
Evas_Object evas_add_line(Evas e, int r, Evas_Group g, int b, int a);
|
Evas_Object evas_add_line(Evas e, int r, int g, int b, int a);
|
||||||
Evas_Object evas_add_gradient_box(Evas e);
|
Evas_Object evas_add_gradient_box(Evas e);
|
||||||
Evas_Object evas_add_bits(Evas e, char *file);
|
Evas_Object evas_add_bits(Evas e, char *file);
|
||||||
Evas_Object evas_add_evas(Evas e, Evas evas);
|
Evas_Object evas_add_evas(Evas e, Evas evas);
|
||||||
|
|
||||||
/* set object settings */
|
/* set object settings */
|
||||||
void evas_set_image_file(Evas e, Evas_Object o, char *file);
|
void evas_set_image_file(Evas e, Evas_Object o, char *file);
|
||||||
|
void evas_set_image_data(Evas e, Evas_Object o, void *data, Evas_Image_Format format, int w, int h);
|
||||||
|
void evas_set_image_scale_smoothness(Evas e, Evas_Object o, int smooth);
|
||||||
void evas_set_image_fill(Evas e, Evas_Object o, double x, double y, double w, double h);
|
void evas_set_image_fill(Evas e, Evas_Object o, double x, double y, double w, double h);
|
||||||
void evas_set_bits_file(Evas e, Evas_Object o, char *file);
|
void evas_set_bits_file(Evas e, Evas_Object o, char *file);
|
||||||
void evas_set_color(Evas e, Evas_Object o, int r, Evas_Group g, int b, int a);
|
void evas_set_color(Evas e, Evas_Object o, int r, int g, int b, int a);
|
||||||
void evas_set_gradient(Evas e, Evas_Object o, Evas_Gradient grad);
|
void evas_set_gradient(Evas e, Evas_Object o, Evas_Gradient grad);
|
||||||
void evas_set_angle(Evas e, Evas_Object o, double angle);
|
void evas_set_angle(Evas e, Evas_Object o, double angle);
|
||||||
void evas_set_blend_mode(Evas e, Evas_Blend_Mode mode);
|
void evas_set_blend_mode(Evas e, Evas_Blend_Mode mode);
|
||||||
|
@ -260,13 +281,6 @@ void evas_get_geometry(Evas e, Evas_Object o, double *x, double *y, double *w, d
|
||||||
void evas_show(Evas e, Evas_Object o);
|
void evas_show(Evas e, Evas_Object o);
|
||||||
void evas_hide(Evas e, Evas_Object o);
|
void evas_hide(Evas e, Evas_Object o);
|
||||||
|
|
||||||
/* group operations */
|
|
||||||
Evas_Group evas_add_group(Evas e);
|
|
||||||
void evas_add_to_group(Evas e, Evas_Object o, Evas_Group g);
|
|
||||||
void evas_disband_group(Evas e, Evas_Group g);
|
|
||||||
void evas_free_group(Evas e, Evas_Group g);
|
|
||||||
void evas_del_from_group(Evas e, Evas_Object o, Evas_Group g);
|
|
||||||
|
|
||||||
/* evas bits ops */
|
/* evas bits ops */
|
||||||
void evas_bits_get_padding(Evas e, Evas_Object o, double *l, double *r, double *t, double *b);
|
void evas_bits_get_padding(Evas e, Evas_Object o, double *l, double *r, double *t, double *b);
|
||||||
void evas_bits_get_min(Evas e, Evas_Object o, double *w, double *h);
|
void evas_bits_get_min(Evas e, Evas_Object o, double *w, double *h);
|
||||||
|
|
|
@ -31,7 +31,7 @@ evas_free(Evas e)
|
||||||
|
|
||||||
for (l = e->layers; l; l = l->next)
|
for (l = e->layers; l; l = l->next)
|
||||||
{
|
{
|
||||||
/* free layer */
|
/* FIXME: free layer */
|
||||||
}
|
}
|
||||||
if (e->layers) evas_list_free(e->layers);
|
if (e->layers) evas_list_free(e->layers);
|
||||||
free(e);
|
free(e);
|
||||||
|
@ -41,6 +41,14 @@ evas_free(Evas e)
|
||||||
void
|
void
|
||||||
evas_update_rect(Evas e, int x, int y, int w, int h)
|
evas_update_rect(Evas e, int x, int y, int w, int h)
|
||||||
{
|
{
|
||||||
|
Evas_Rectangle r;
|
||||||
|
|
||||||
|
r = malloc(sizeof(struct _Evas_Rectangle));
|
||||||
|
r->x = x;
|
||||||
|
r->y = y;
|
||||||
|
r->w = w;
|
||||||
|
r->h = h;
|
||||||
|
e->updates = evas_list_prepend(e->updates, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* drawing */
|
/* drawing */
|
||||||
|
@ -51,12 +59,12 @@ evas_render(Evas e)
|
||||||
|
|
||||||
/* query for settings to use */
|
/* query for settings to use */
|
||||||
Visual *
|
Visual *
|
||||||
evas_get_optimal_visual(Display *disp)
|
evas_get_optimal_visual(Evas e, Display *disp)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Colormap
|
Colormap
|
||||||
evas_get_optimal_colormap(Display *disp)
|
evas_get_optimal_colormap(Evas e, Display *disp)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,22 +72,54 @@ evas_get_optimal_colormap(Display *disp)
|
||||||
void
|
void
|
||||||
evas_set_output(Evas e, Display *disp, Drawable d, Visual *v, Colormap c)
|
evas_set_output(Evas e, Display *disp, Drawable d, Visual *v, Colormap c)
|
||||||
{
|
{
|
||||||
|
e->current.display = disp;
|
||||||
|
e->current.drawable = d;
|
||||||
|
e->current.visual = v;
|
||||||
|
e->current.colormap = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
evas_set_output_rect(Evas e, int x, int y, int w, int h)
|
evas_set_output_rect(Evas e, int x, int y, int w, int h)
|
||||||
{
|
{
|
||||||
|
e->current.output.x = x;
|
||||||
|
e->current.output.y = y;
|
||||||
|
e->current.output.w = w;
|
||||||
|
e->current.output.h = h;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
evas_set_viewport(Evas e, double x, double y, double w, double h)
|
evas_set_output_viewport(Evas e, double x, double y, double w, double h)
|
||||||
{
|
{
|
||||||
|
e->current.viewport.x = x;
|
||||||
|
e->current.viewport.y = y;
|
||||||
|
e->current.viewport.w = w;
|
||||||
|
e->current.viewport.h = h;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
evas_set_output_method(Evas e, Evas_Render_Method method)
|
||||||
|
{
|
||||||
|
e->current.render_method = method;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* deleting objects */
|
/* deleting objects */
|
||||||
void
|
void
|
||||||
evas_del_object(Evas e, Evas_Object o)
|
evas_del_object(Evas e, Evas_Object o)
|
||||||
{
|
{
|
||||||
|
Evas_List l;
|
||||||
|
|
||||||
|
for (l = e->layers; l; l = l->next)
|
||||||
|
{
|
||||||
|
Evas_Layer layer;
|
||||||
|
|
||||||
|
layer = l->data;
|
||||||
|
if (layer->layer == o->current.layer)
|
||||||
|
{
|
||||||
|
layer->objects = evas_list_remove(layer->objects, o);
|
||||||
|
o->object_free(o);
|
||||||
|
e->object_render_data_free(e, o);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* adding objects */
|
/* adding objects */
|
||||||
|
@ -99,12 +139,12 @@ evas_add_text(Evas e, char *font, int size, char *text)
|
||||||
}
|
}
|
||||||
|
|
||||||
Evas_Object
|
Evas_Object
|
||||||
evas_add_rectangle(Evas e, int r, Evas_Group g, int b)
|
evas_add_rectangle(Evas e, int r, int g, int b, int a)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Evas_Object
|
Evas_Object
|
||||||
evas_add_line(Evas e, int r, Evas_Group g, int b, int a)
|
evas_add_line(Evas e, int r, int g, int b, int a)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,6 +169,16 @@ evas_set_image_file(Evas e, Evas_Object o, char *file)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
evas_set_image_data(Evas e, Evas_Object o, void *data, Evas_Image_Format format, int w, int h)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
evas_set_image_scale_smoothness(Evas e, Evas_Object o, int smooth)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
evas_set_image_fill(Evas e, Evas_Object o, double x, double y, double w, double h)
|
evas_set_image_fill(Evas e, Evas_Object o, double x, double y, double w, double h)
|
||||||
{
|
{
|
||||||
|
@ -140,7 +190,7 @@ evas_set_bits_file(Evas e, Evas_Object o, char *file)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
evas_set_color(Evas e, Evas_Object o, int r, Evas_Group g, int b, int a)
|
evas_set_color(Evas e, Evas_Object o, int r, int g, int b, int a)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -244,32 +294,6 @@ evas_hide(Evas e, Evas_Object o)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/* group operations */
|
|
||||||
Evas_Group
|
|
||||||
evas_add_group(Evas e)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
evas_add_to_group(Evas e, Evas_Object o, Evas_Group g)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
evas_disband_group(Evas e, Evas_Group g)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
evas_free_group(Evas e, Evas_Group g)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
evas_del_from_group(Evas e, Evas_Object o, Evas_Group g)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/* evas bits ops */
|
/* evas bits ops */
|
||||||
void
|
void
|
||||||
evas_bits_get_padding(Evas e, Evas_Object o, double *l, double *r, double *t, double *b)
|
evas_bits_get_padding(Evas e, Evas_Object o, double *l, double *r, double *t, double *b)
|
||||||
|
|
Loading…
Reference in New Issue