Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/edje
Dir : e17/libs/edje/src/lib
Modified Files:
edje_embryo.c
Log Message:
and put back some calls we lost in the patch/diff... :)
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_embryo.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- edje_embryo.c 23 Apr 2004 08:06:33 -0000 1.12
+++ edje_embryo.c 19 May 2004 02:54:52 -0000 1.13
@@ -45,9 +45,103 @@
Embryo_Cell *___cptr; \
if ((___cptr = embryo_data_address_get(ep, (par)))) { \
embryo_data_string_set(ep, str, ___cptr);}}
+#define SETFLOAT(val, par) { \
+ float *___cptr; \
+ if ((___cptr = (float *)embryo_data_address_get(ep, (par)))) { \
+ *___cptr = (float)val;}}
+#define SETINT(val, par) { \
+ int *___cptr; \
+ if ((___cptr = (int *)embryo_data_address_get(ep, (par)))) { \
+ *___cptr = (int)val;}}
static void _edje_embryo_globals_init(Edje *ed);
+/* EDJE...
+ *
+ * implemented so far as examples:
+ *
+ * emit(sig[], src[])
+ * set_state(part_id, state[], Float:state_val)
+ * set_tween_state(part_id, Float:tween, state1[], Float:state1_val, state2[],
Float:state2_val)
+ * run_program(program_id)
+ * Direction:get_drag_dir(part_id)
+ * get_drag(part_id, &Float:dx, &Float:&dy)
+ * set_drag(part_id, Float:dx, Float:dy)
+ * text_set(part_id, str[])
+ * text_get(part_id, dst[], maxlen)
+ * get_min_size(w, h)
+ * get_max_size(w, h)
+ * set_color_class(class[], r, g, b, a)
+ * get_color_class(class[], &r, &g, &b, &a)
+ * set_text_class(class[], font[], Float:size)
+ * get_text_class(class[], font[], &Float:size)
+ * get_drag_step(part_id, &Float:dx, &Float:&dy)
+ * set_drag_step(part_id, Float:dx, Float:dy)
+ * get_drag_page(part_id, &Float:dx, &Float:&dy)
+ * set_drag_page(part_id, Float:dx, Float:dy)
+ * get_mouse(&x, &y)
+ * stop_program(program_id)
+ * stop_programs_on(part_id)
+ * set_min_size(&w, &h)
+ * set_max_size(&w, &h)
+ *
+ * still need to implement this:
+ *
+ * get_drag_count(part_id, &Float:dx, &Float:&dy)
+ * set_drag_count(part_id, Float:dx, Float:dy)
+ * set_drag_confine(part_id, confine_part_id)
+ * get_size(&w, &h)
+ * resize_request(w, h)
+ * get_mouse_buttons()
+ * //set_type(part_id, Type:type)
+ * //set_effect(part_id, Effect:fx)
+ * set_mouse_events(part_id, ev)
+ * get_mouse_events(part_id)
+ * set_repeat_events(part_id, rep)
+ * get_repeat_events(part_id)
+ * set_clip(part_id, clip_part_id)
+ * get_clip(part_id)
+ */
+
+/* MODIFY STATE VALUES
+ *
+ * set_state_val(part_id, state[], Float:state_val, Param:param, ...)
+ * get_state_val(part_id, state[], Float:state_val, Param:param, ...)
+ *
+ * FOR THESE PROPERTIES:
+ *
+ * visible
+ * align[x,y]
+ * min[w,h]
+ * max[w,h]
+ * step[x,y]
+ * aspect[min,max]
+ * rel1[rx,ry,part_id,part_id]
+ * rel1[x,y]
+ * rel2[rx,ry,part_id,part_id]
+ * rel2[x,y]
+ * image[id]
+ * image[tween_list...] (get???)
+ * border[l,r,t,b]
+ * fill[smooth]
+ * fill[pos_rx,pos_ry,pos_x,pos_y]
+ * fill[sz_rx,sz_ry,sz_x,sz_y]
+ * color_class
+ * color[r,g,b,a]
+ * color2[r,g,b,a]
+ * color3[r,g,b,a]
+ * text[text_class]
+ * text[font]
+ * text[size]
+ * text[fit_x,fit_y]
+ * text[min_x,min_y]
+ * text[align_x,align_y]
+ */
+
+/* FUTURE: KEYS???
+ *
+ */
+
/* get_int(id) */
static Embryo_Cell
_edje_embryo_fn_get_int(Embryo_Program *ep, Embryo_Cell *params)
@@ -239,53 +333,117 @@
return 0;
}
+/* set_min_size(Float:w, Float:h) */
+static Embryo_Cell
+_edje_embryo_fn_set_min_size(Embryo_Program *ep, Embryo_Cell *params)
+{
+ Edje *ed;
+ int part_id = 0;
+ float f = 0.0;
+ double w = 0.0, h = 0.0;
+
+ CHKPARAM(2);
+ ed = embryo_program_data_get(ep);
+ f = EMBRYO_CELL_TO_FLOAT(params[1]);
+ w = (double)f;
+ f = EMBRYO_CELL_TO_FLOAT(params[2]);
+ h = (double)f;
+
+ if (w < 0.0) w = 0.0;
+ if (h < 0.0) h = 0.0;
+ ed->collection->prop.min.w = w;
+ ed->collection->prop.min.h = h;
+ ed->dirty = 1;
+ _edje_recalc(ed);
+ return 0;
+}
-/* EDJE...
- *
- * implemented so far as examples:
- *
- * emit(sig[], src[])
- * set_state(part_id, state[], Float:state_val)
- * set_tween_state(part_id, Float:tween, state1[], Float:state1_val, state2[],
Float:state2_val)
- * run_program(program_id)
- * stop_program(program_id)
- * stop_programs_on(part_id)
- * set_drag(part_id, Float:dx, Float:dy)
- * set_drag_step(part_id, Float:dx, Float:dy)
- * set_drag_page(part_id, Float:dx, Float:dy)
- * text_set(part_id, str[])
- * set_min_size(Float:w, Float:h)
- * set_max_size(Float:w, Float:h)
- *
- * still need to implement this:
- *
- * Direction:get_drag_dir(part_id)
- * get_drag_count(part_id, &Float:dx, &Float:&dy)
- * set_drag_count(part_id, Float:dx, Float:dy)
- * set_drag_confine(part_id, confine_part_id)
- * text_get(part_id, dst[], maxlen)
- * get_drag(part_id, &Float:dx, &Float:&dy)
- * get_drag_step(part_id, &Float:dx, &Float:&dy)
- * get_drag_page(part_id, &Float:dx, &Float:&dy)
- * get_min_size(&Float:w, &Float:h)
- * get_max_size(&Float:w, &Float:h)
- * get_size(&Float:w, &Float:h)
- * resize_request(w, h)
- * get_mouse(&x, &y)
- * get_mouse_buttons()
- * set_color_class(class[], r, g, b, a)
- * get_color_class(class[], &r, &g, &b, &a)
- * set_text_class(class[], font[], Float:size)
- * get_text_class(class[], font[], &Float:size)
- * //set_type(part_id, Type:type)
- * //set_effect(part_id, Effect:fx)
- * set_mouse_events(part_id, ev)
- * get_mouse_events(part_id)
- * set_repeat_events(part_id, rep)
- * get_repeat_events(part_id)
- * set_clip(part_id, clip_part_id)
- * get_clip(part_id)
- */
+/* set_max_size(Float:w, Float:h) */
+static Embryo_Cell
+_edje_embryo_fn_set_max_size(Embryo_Program *ep, Embryo_Cell *params)
+{
+ Edje *ed;
+ int part_id = 0;
+ float f = 0.0;
+ double w = 0.0, h = 0.0;
+
+ CHKPARAM(2);
+ ed = embryo_program_data_get(ep);
+ f = EMBRYO_CELL_TO_FLOAT(params[1]);
+ w = (double)f;
+ f = EMBRYO_CELL_TO_FLOAT(params[2]);
+ h = (double)f;
+
+ if (w < 0.0) w = 0.0;
+ if (h < 0.0) h = 0.0;
+ ed->collection->prop.max.w = w;
+ ed->collection->prop.max.h = h;
+ ed->dirty = 1;
+ _edje_recalc(ed);
+
+ return 0;
+}
+
+/* stop_program(program_id) */
+static Embryo_Cell
+_edje_embryo_fn_stop_program(Embryo_Program *ep, Embryo_Cell *params)
+{
+ Edje *ed;
+ char *state1 = NULL, *state2 = NULL;
+ int program_id = 0;
+ Edje_Running_Program *runp;
+ Evas_List *l;
+
+ CHKPARAM(1);
+ ed = embryo_program_data_get(ep);
+ program_id = params[1];
+ if (program_id < 0) return 0;
+ for (l = ed->actions; l; l = l->next)
+ {
+ runp = l->data;
+ if (program_id == runp->program->id)
+ _edje_program_end(ed, runp);
+ }
+ return 0;
+}
+
+/* stop_programs_on(part_id) */
+static Embryo_Cell
+_edje_embryo_fn_stop_programs_on(Embryo_Program *ep, Embryo_Cell *params)
+{
+ Edje *ed;
+
+ char *state1 = NULL, *state2 = NULL;
+ int part_id = 0;
+ Edje_Real_Part *rp;
+
+ CHKPARAM(1);
+ ed = embryo_program_data_get(ep);
+ part_id = params[1];
+ if (part_id < 0) return 0;
+ rp = ed->table_parts[part_id % ed->table_parts_size];
+ if (rp)
+ {
+ /* there is only ever 1 program acting on a part at any time */
+ if (rp->program) _edje_program_end(ed, rp->program);
+ }
+ return 0;
+}
+
+/* get_mouse(&x, &y) */
+static Embryo_Cell
+_edje_embryo_fn_get_mouse(Embryo_Program *ep, Embryo_Cell *params)
+{
+ Edje *ed;
+ int x=0, y=0;
+
+ CHKPARAM(2);
+ ed = embryo_program_data_get(ep);
+ evas_pointer_output_xy_get(ed->evas, &x, &y);
+ SETINT(x, params[1]);
+ SETINT(y, params[2]);
+ return 0;
+}
/* emit(sig[], src[]) */
static Embryo_Cell
@@ -387,50 +545,40 @@
return 0;
}
-/* stop_program(program_id) */
+/* get_drag_dir(part_id) */
static Embryo_Cell
-_edje_embryo_fn_stop_program(Embryo_Program *ep, Embryo_Cell *params)
+_edje_embryo_fn_get_drag_dir(Embryo_Program *ep, Embryo_Cell *params)
{
Edje *ed;
- char *state1 = NULL, *state2 = NULL;
- int program_id = 0;
- Edje_Running_Program *runp;
- Evas_List *l;
-
+ int part_id = 0;
+ Edje_Real_Part *rp;
+
CHKPARAM(1);
ed = embryo_program_data_get(ep);
- program_id = params[1];
- if (program_id < 0) return 0;
-
- for (l = ed->actions; l; l = l->next)
- {
- runp = l->data;
- if (program_id == runp->program->id)
- _edje_program_end(ed, runp);
- }
- return 0;
+ part_id = params[1];
+ if (part_id < 0) return 0;
+ rp = ed->table_parts[part_id % ed->table_parts_size];
+ return edje_object_part_drag_dir_get(ed->obj, rp->part->name);
}
-/* stop_programs_on(part_id) */
+/* get_drag(part_id, &Float:dx, &Float:dy) */
static Embryo_Cell
-_edje_embryo_fn_stop_programs_on(Embryo_Program *ep, Embryo_Cell *params)
+_edje_embryo_fn_get_drag(Embryo_Program *ep, Embryo_Cell *params)
{
Edje *ed;
- char *state1 = NULL, *state2 = NULL;
int part_id = 0;
Edje_Real_Part *rp;
-
- CHKPARAM(1);
+ double dx = 0.0, dy = 0.0;
+
+ CHKPARAM(3);
ed = embryo_program_data_get(ep);
part_id = params[1];
if (part_id < 0) return 0;
-
rp = ed->table_parts[part_id % ed->table_parts_size];
- if (rp)
- {
- /* FIXME: are there more than one to stop? (rephorm) */
- if (rp->program) _edje_program_end(ed, rp->program);
- }
+ edje_object_part_drag_value_get(ed->obj, rp->part->name, &dx, &dy);
+ SETFLOAT(dx, params[2]);
+ SETFLOAT(dy, params[3]);
+
return 0;
}
@@ -440,228 +588,266 @@
{
Edje *ed;
int part_id = 0;
- float f = 0.0;
- double dx = 0.0, dy = 0.0;
Edje_Real_Part *rp;
-
+
CHKPARAM(3);
ed = embryo_program_data_get(ep);
part_id = params[1];
if (part_id < 0) return 0;
- f = EMBRYO_CELL_TO_FLOAT(params[2]);
- dx = (double)f;
- f = EMBRYO_CELL_TO_FLOAT(params[3]);
- dy = (double)f;
rp = ed->table_parts[part_id % ed->table_parts_size];
- if (rp)
- {
- if (rp->drag.down.count > 0) return;
- if(rp->part->dragable.confine_id != -1)
- {
- if (dx < 0.0) dx = 0.0;
- else if (dx > 1.0) dx = 1.0;
- if (dy < 0.0) dy = 0.0;
- else if (dy > 1.0) dy = 1.0;
- }
- if (rp->part->dragable.x < 0) dx = 1.0 - dx;
- if (rp->part->dragable.y < 0) dy = 1.0 - dy;
- if ((rp->drag.val.x == dx) && (rp->drag.val.y == dy)) return;
- rp->drag.val.x = dx;
- rp->drag.val.y = dy;
- _edje_dragable_pos_set(ed, rp, dx, dy);
- _edje_emit(ed, "drag,set", rp->part->name);
- }
- return 0;
+ edje_object_part_drag_value_set(ed->obj, rp->part->name,
+ (double)EMBRYO_CELL_TO_FLOAT(params[2]),
+ (double)EMBRYO_CELL_TO_FLOAT(params[3]));
+ return(0);
}
-/* set_drag_step(part_id, Float:dx, Float:dy) */
+/* text_set(part_id, str[]) */
static Embryo_Cell
-_edje_embryo_fn_set_drag_step(Embryo_Program *ep, Embryo_Cell *params)
+_edje_embryo_fn_text_set(Embryo_Program *ep, Embryo_Cell *params)
{
Edje *ed;
int part_id = 0;
- float f = 0.0;
- double dx = 0.0, dy = 0.0;
Edje_Real_Part *rp;
-
- CHKPARAM(3);
+ char *s;
+
+ CHKPARAM(2);
ed = embryo_program_data_get(ep);
part_id = params[1];
if (part_id < 0) return 0;
- f = EMBRYO_CELL_TO_FLOAT(params[2]);
- dx = (double)f;
- f = EMBRYO_CELL_TO_FLOAT(params[3]);
- dy = (double)f;
rp = ed->table_parts[part_id % ed->table_parts_size];
- if (rp)
- {
- if (rp->drag.down.count > 0) return;
- if (dx < 0.0) dx = 0.0;
- else if (dx > 1.0) dx = 1.0;
- if (dy < 0.0) dy = 0.0;
- else if (dy > 1.0) dy = 1.0;
-
- rp->drag.step.x = dx;
- rp->drag.step.y = dy;
- }
- return 0;
+ GETSTR(s, params[2]);
+ if (s){
+ edje_object_part_text_set(ed->obj, rp->part->name, s);
+ }
+ return(0);
}
-/* set_drag_page(part_id, Float:dx, Float:dy) */
+/* text_get(part_id, dst[], maxlen) */
static Embryo_Cell
-_edje_embryo_fn_set_drag_page(Embryo_Program *ep, Embryo_Cell *params)
+_edje_embryo_fn_text_get(Embryo_Program *ep, Embryo_Cell *params)
{
Edje *ed;
int part_id = 0;
- float f = 0.0;
- double dx = 0.0, dy = 0.0;
Edje_Real_Part *rp;
-
+ char *s;
+
CHKPARAM(3);
ed = embryo_program_data_get(ep);
part_id = params[1];
if (part_id < 0) return 0;
- f = EMBRYO_CELL_TO_FLOAT(params[2]);
- dx = (double)f;
- f = EMBRYO_CELL_TO_FLOAT(params[3]);
- dy = (double)f;
rp = ed->table_parts[part_id % ed->table_parts_size];
- if (rp)
+ s = edje_object_part_text_get(ed->obj, rp->part->name);
+ if (s)
{
- if (rp->drag.down.count > 0) return;
- if(rp->part->dragable.confine_id != -1)
- if (dx < 0.0) dx = 0.0;
- else if (dx > 1.0) dx = 1.0;
- if (dy < 0.0) dy = 0.0;
- else if (dy > 1.0) dy = 1.0;
- rp->drag.page.x = dx;
- rp->drag.page.y = dy;
+ if (strlen(s) < params[3])
+ {
+ SETSTR(s, params[2]);
+ }
+ else
+ {
+ char *ss;
+
+ ss = strdup(s);
+ if (ss)
+ {
+ ss[params[3] - 1] = 0;
+ SETSTR(ss, params[2]);
+ free(ss);
+ }
+ }
+ }
+ else
+ {
+ SETSTR("", params[2]);
}
return 0;
}
-/* text_set(part_id, str[]) */
+/* get_min_size(&w, &h) */
static Embryo_Cell
-_edje_embryo_fn_text_set(Embryo_Program *ep, Embryo_Cell *params)
+_edje_embryo_fn_get_min_size(Embryo_Program *ep, Embryo_Cell *params)
+{
+ Edje *ed;
+ Evas_Coord w = 0, h = 0;
+
+ CHKPARAM(2);
+ ed = embryo_program_data_get(ep);
+ edje_object_size_min_get(ed->obj, &w, &h);
+ SETINT(w, params[1]);
+ SETINT(h, params[2]);
+ return 0;
+}
+
+/* get_max_size(&w, &h) */
+static Embryo_Cell
+_edje_embryo_fn_get_max_size(Embryo_Program *ep, Embryo_Cell *params)
+{
+ Edje *ed;
+ Evas_Coord w = 0, h = 0;
+
+ CHKPARAM(2);
+ ed = embryo_program_data_get(ep);
+ edje_object_size_max_get(ed->obj, &w, &h);
+ SETINT(w, params[1]);
+ SETINT(h, params[2]);
+ return 0;
+
+}
+
+/* get_color_class(class[], &r, &g, &b, &a) */
+static Embryo_Cell
+_edje_embryo_fn_get_color_class(Embryo_Program *ep, Embryo_Cell *params)
+{
+ Edje *ed;
+ Edje_Color_Class *c_class;
+ char *class;
+
+ CHKPARAM(5);
+ ed = embryo_program_data_get(ep);
+ GETSTR(class, params[1]);
+ if (!class) return 0;
+ c_class = _edje_color_class_find(ed, class);
+ if (c_class == NULL) return 0;
+ SETINT(c_class->r, params[2]);
+ SETINT(c_class->g, params[3]);
+ SETINT(c_class->b, params[4]);
+ SETINT(c_class->a, params[5]);
+ return 0;
+}
+
+/* set_color_class(class[], r, g, b, a) */
+static Embryo_Cell
+_edje_embryo_fn_set_color_class(Embryo_Program *ep, Embryo_Cell *params)
+{
+ Edje *ed;
+ char *class;
+
+ CHKPARAM(5);
+ ed = embryo_program_data_get(ep);
+ GETSTR(class, params[1]);
+ if (!class) return 0;
+ edje_object_color_class_set(ed->obj, class, params[2], params[3], params[4],
params[5],
+ params[2], params[3], params[4], params[5],
+ params[2], params[3], params[4], params[5]);
+ return 0;
+}
+
+/* set_text_class(class[], font[], Float:size) */
+static Embryo_Cell
+_edje_embryo_fn_set_text_class(Embryo_Program *ep, Embryo_Cell *params)
+{
+ Edje *ed;
+ char *class, *font;
+ Evas_Font_Size fsize;
+
+ CHKPARAM(3);
+ ed = embryo_program_data_get(ep);
+ GETSTR(class, params[1]);
+ GETSTR(font, params[2]);
+ if( !class || !font ) return 0;
+ fsize = (Evas_Font_Size)EMBRYO_CELL_TO_FLOAT(params[3]);
+ edje_object_text_class_set(ed->obj, class, font, fsize);
+ return 0;
+}
+
+/* get_text_class(class[], font[], &Float:size) */
+static Embryo_Cell
+_edje_embryo_fn_get_text_class(Embryo_Program *ep, Embryo_Cell *params)
+{
+ Edje *ed;
+ char *class;
+ Edje_Text_Class *t_class;
+
+ CHKPARAM(3);
+ ed = embryo_program_data_get(ep);
+ GETSTR(class, params[1]);
+ if (!class) return 0;
+ t_class = _edje_text_class_find(ed, class);
+ if (t_class == NULL) return 0;
+ SETSTR(t_class->font, params[2]);
+ SETFLOAT(t_class->size, params[3]);
+ return 0;
+}
+
+/* get_drag_step(part_id, &Float:dx, &Float:&dy) */
+static Embryo_Cell
+_edje_embryo_fn_get_drag_step(Embryo_Program *ep, Embryo_Cell *params)
{
Edje *ed;
int part_id = 0;
- char *text = NULL;
Edje_Real_Part *rp;
-
- CHKPARAM(2);
+ double dx = 0.0, dy = 0.0;
+
+ CHKPARAM(3);
ed = embryo_program_data_get(ep);
part_id = params[1];
if (part_id < 0) return 0;
- GETSTR(text, params[2]);
-
rp = ed->table_parts[part_id % ed->table_parts_size];
- if (rp)
- {
- if (rp->part->type != EDJE_PART_TYPE_TEXT) return;
- if ((!rp->text.text) && (!text))
- return;
- if ((rp->text.text) && (text) &&
- (!strcmp(rp->text.text, text)))
- return;
- if (rp->text.text) free(rp->text.text);
- rp->text.text = strdup(text);
- ed->dirty = 1;
- _edje_recalc(ed);
- }
+ edje_object_part_drag_step_get(ed->obj, rp->part->name, &dx, &dy);
+ SETFLOAT(dx, params[2]);
+ SETFLOAT(dy, params[3]);
+
return 0;
}
-/* set_min_size(Float:w, Float:h) */
+/* set_drag_step(part_id, Float:dx, Float:dy) */
static Embryo_Cell
-_edje_embryo_fn_set_min_size(Embryo_Program *ep, Embryo_Cell *params)
+_edje_embryo_fn_set_drag_step(Embryo_Program *ep, Embryo_Cell *params)
{
Edje *ed;
int part_id = 0;
- float f = 0.0;
- double w = 0.0, h = 0.0;
-
- CHKPARAM(2);
- ed = embryo_program_data_get(ep);
- f = EMBRYO_CELL_TO_FLOAT(params[1]);
- w = (double)f;
- f = EMBRYO_CELL_TO_FLOAT(params[2]);
- h = (double)f;
-
- if (w < 0.0) w = 0.0;
- if (h < 0.0) h = 0.0;
- ed->collection->prop.min.w = w;
- ed->collection->prop.min.h = h;
- ed->dirty = 1;
- _edje_recalc(ed);
+ Edje_Real_Part *rp;
- return 0;
+ CHKPARAM(3);
+ ed = embryo_program_data_get(ep);
+ part_id = params[1];
+ if (part_id < 0) return 0;
+ rp = ed->table_parts[part_id % ed->table_parts_size];
+ edje_object_part_drag_step_set(ed->obj, rp->part->name,
+ (double)EMBRYO_CELL_TO_FLOAT(params[2]),
+ (double)EMBRYO_CELL_TO_FLOAT(params[3]));
+ return(0);
}
-/* set_max_size(Float:w, Float:h) */
+/* get_drag_page(part_id, &Float:dx, &Float:&dy) */
static Embryo_Cell
-_edje_embryo_fn_set_max_size(Embryo_Program *ep, Embryo_Cell *params)
+_edje_embryo_fn_get_drag_page(Embryo_Program *ep, Embryo_Cell *params)
{
Edje *ed;
int part_id = 0;
- float f = 0.0;
- double w = 0.0, h = 0.0;
-
- CHKPARAM(2);
+ Edje_Real_Part *rp;
+ double dx = 0.0, dy = 0.0;
+
+ CHKPARAM(3);
ed = embryo_program_data_get(ep);
- f = EMBRYO_CELL_TO_FLOAT(params[1]);
- w = (double)f;
- f = EMBRYO_CELL_TO_FLOAT(params[2]);
- h = (double)f;
-
- if (w < 0.0) w = 0.0;
- if (h < 0.0) h = 0.0;
- ed->collection->prop.max.w = w;
- ed->collection->prop.max.h = h;
- ed->dirty = 1;
- _edje_recalc(ed);
+ part_id = params[1];
+ if (part_id < 0) return 0;
+ rp = ed->table_parts[part_id % ed->table_parts_size];
+ edje_object_part_drag_page_get(ed->obj, rp->part->name, &dx, &dy);
+ SETFLOAT(dx, params[2]);
+ SETFLOAT(dy, params[3]);
return 0;
}
-/* MODIFY STATE VALUES
- *
- * set_state_val(part_id, state[], Float:state_val, Param:param, ...)
- * get_state_val(part_id, state[], Float:state_val, Param:param, ...)
- *
- * FOR THESE PROPERTIES:
- *
- * visible
- * align[x,y]
- * min[w,h]
- * max[w,h]
- * step[x,y]
- * aspect[min,max]
- * rel1[rx,ry,part_id,part_id]
- * rel1[x,y]
- * rel2[rx,ry,part_id,part_id]
- * rel2[x,y]
- * image[id]
- * image[tween_list...] (get???)
- * border[l,r,t,b]
- * fill[smooth]
- * fill[pos_rx,pos_ry,pos_x,pos_y]
- * fill[sz_rx,sz_ry,sz_x,sz_y]
- * color_class
- * color[r,g,b,a]
- * color2[r,g,b,a]
- * color3[r,g,b,a]
- * text[text_class]
- * text[font]
- * text[size]
- * text[fit_x,fit_y]
- * text[min_x,min_y]
- * text[align_x,align_y]
- */
+/* set_drag_page(part_id, Float:dx, Float:dy) */
+static Embryo_Cell
+_edje_embryo_fn_set_drag_page(Embryo_Program *ep, Embryo_Cell *params)
+{
+ Edje *ed;
+ int part_id = 0;
+ Edje_Real_Part *rp;
-/* FUTURE: KEYS???
- *
- */
+ CHKPARAM(3);
+ ed = embryo_program_data_get(ep);
+ part_id = params[1];
+ if (part_id < 0) return 0;
+ rp = ed->table_parts[part_id % ed->table_parts_size];
+ edje_object_part_drag_page_set(ed->obj, rp->part->name,
+ (double)EMBRYO_CELL_TO_FLOAT(params[2]),
+ (double)EMBRYO_CELL_TO_FLOAT(params[3]));
+ return(0);
+}
void
_edje_embryo_script_init(Edje *ed)
@@ -692,16 +878,28 @@
embryo_program_native_call_add(ep, "set_state", _edje_embryo_fn_set_state);
embryo_program_native_call_add(ep, "set_tween_state",
_edje_embryo_fn_set_tween_state);
embryo_program_native_call_add(ep, "run_program", _edje_embryo_fn_run_program);
- embryo_program_native_call_add(ep, "stop_program", _edje_embryo_fn_stop_program);
- embryo_program_native_call_add(ep, "stop_programs_on",
_edje_embryo_fn_stop_programs_on);
+ embryo_program_native_call_add(ep, "get_drag_dir", _edje_embryo_fn_get_drag_dir);
+ embryo_program_native_call_add(ep, "get_drag", _edje_embryo_fn_get_drag);
embryo_program_native_call_add(ep, "set_drag", _edje_embryo_fn_set_drag);
+ embryo_program_native_call_add(ep, "set_text", _edje_embryo_fn_text_set);
+ embryo_program_native_call_add(ep, "get_text", _edje_embryo_fn_text_get);
+ embryo_program_native_call_add(ep, "get_min_size", _edje_embryo_fn_get_min_size);
+ embryo_program_native_call_add(ep, "get_max_size", _edje_embryo_fn_get_max_size);
+ embryo_program_native_call_add(ep, "get_color_class",
_edje_embryo_fn_get_color_class);
+ embryo_program_native_call_add(ep, "set_color_class",
_edje_embryo_fn_set_color_class);
+ embryo_program_native_call_add(ep, "set_text_class",
_edje_embryo_fn_set_text_class);
+ embryo_program_native_call_add(ep, "get_text_class",
_edje_embryo_fn_get_text_class);
+ embryo_program_native_call_add(ep, "get_drag_step", _edje_embryo_fn_get_drag_step);
embryo_program_native_call_add(ep, "set_drag_step", _edje_embryo_fn_set_drag_step);
+ embryo_program_native_call_add(ep, "get_drag_page", _edje_embryo_fn_get_drag_page);
embryo_program_native_call_add(ep, "set_drag_page", _edje_embryo_fn_set_drag_page);
- embryo_program_native_call_add(ep, "text_set", _edje_embryo_fn_text_set);
+ embryo_program_native_call_add(ep, "get_mouse", _edje_embryo_fn_get_mouse);
+ embryo_program_native_call_add(ep, "stop_program", _edje_embryo_fn_stop_program);
+ embryo_program_native_call_add(ep, "stop_programs_on",
_edje_embryo_fn_stop_programs_on);
embryo_program_native_call_add(ep, "set_min_size", _edje_embryo_fn_set_min_size);
embryo_program_native_call_add(ep, "set_max_size", _edje_embryo_fn_set_max_size);
- embryo_program_vm_push(ep); /* need a new vm to run in */
+ embryo_program_vm_push(ep); /* neew a new vm to run in */
_edje_embryo_globals_init(ed);
}
@@ -752,6 +950,7 @@
embryo_program_run(ed->collection->script, fn);
embryo_program_data_set(ed->collection->script, pdata);
}
+ embryo_program_run(ed->collection->script, fn);
printf("EDJE DEBUG: Done.\n");
}
}
-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs