Hi, I was creating a theme with edje and missed some functions to
resize a dragable part with embryo inside the .edc
Looking at the code of edje I verified that these functions were
already implemented, so all that would be needed to do was to create a
binding for embryo that pointed to these functions.
I made a patch that create these bindings, and called these functions
set_drag_size and get_drag_size. It works fine for me.
[]'s
Rafael Antognolli
Index: data/include/edje.inc
===
RCS file: /var/cvs/e17/libs/edje/data/include/edje.inc,v
retrieving revision 1.24
diff -u -r1.24 edje.inc
--- data/include/edje.inc 11 Apr 2008 23:36:35 - 1.24
+++ data/include/edje.inc 13 May 2008 21:59:26 -
@@ -90,6 +90,8 @@
native get_drag_dir (part_id);
native get_drag (part_id, Float:dx, Float:dy);
native set_drag (part_id, Float:dx, Float:dy);
+native get_drag_size(part_id, Float:dx, Float:dy);
+native set_drag_size(part_id, Float:dx, Float:dy);
native get_drag_step(part_id, Float:dx, Float:dy);
native set_drag_step(part_id, Float:dx, Float:dy);
native get_drag_page(part_id, Float:dx, Float:dy);
Index: src/lib/edje_embryo.c
===
RCS file: /var/cvs/e17/libs/edje/src/lib/edje_embryo.c,v
retrieving revision 1.60
diff -u -r1.60 edje_embryo.c
--- src/lib/edje_embryo.c 11 Apr 2008 23:36:35 - 1.60
+++ src/lib/edje_embryo.c 13 May 2008 21:59:26 -
@@ -80,6 +80,8 @@
* Direction:get_drag_dir(part_id)
* get_drag(part_id, Float:dx, Float:dy)
* set_drag(part_id, Float:dx, Float:dy)
+ * get_drag_size(part_id, Float:dx, Float:dy)
+ * set_drag_size(part_id, Float:dx, Float:dy)
* set_text(part_id, str[])
* get_text(part_id, dst[], maxlen)
* get_min_size(w, h)
@@ -998,6 +1000,46 @@
return(0);
}
+/* get_drag_size(part_id, Float:dx, Float:dy) */
+static Embryo_Cell
+_edje_embryo_fn_get_drag_size(Embryo_Program *ep, Embryo_Cell *params)
+{
+ Edje *ed;
+ int part_id = 0;
+ Edje_Real_Part *rp;
+ 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];
+ edje_object_part_drag_size_get(ed-obj, rp-part-name, dx, dy);
+ SETFLOAT(dx, params[2]);
+ SETFLOAT(dy, params[3]);
+
+ return 0;
+}
+
+/* set_drag_size(part_id, Float:dx, Float:dy) */
+static Embryo_Cell
+_edje_embryo_fn_set_drag_size(Embryo_Program *ep, Embryo_Cell *params)
+{
+ Edje *ed;
+ int part_id = 0;
+ Edje_Real_Part *rp;
+
+ 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_size_set(ed-obj, rp-part-name,
+ (double)EMBRYO_CELL_TO_FLOAT(params[2]),
+ (double)EMBRYO_CELL_TO_FLOAT(params[3]));
+ return(0);
+}
+
/* set_text(part_id, str[]) */
static Embryo_Cell
_edje_embryo_fn_set_text(Embryo_Program *ep, Embryo_Cell *params)
@@ -2216,6 +2258,8 @@
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, get_drag_size,
_edje_embryo_fn_get_drag_size);
+ embryo_program_native_call_add(ep, set_drag_size,
_edje_embryo_fn_set_drag_size);
embryo_program_native_call_add(ep, set_text, _edje_embryo_fn_set_text);
embryo_program_native_call_add(ep, get_text, _edje_embryo_fn_get_text);
embryo_program_native_call_add(ep, get_min_size,
_edje_embryo_fn_get_min_size);
-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel