native stop_programs_on (part_id);
native set_min_size (Float:w, Float:h);
native set_max_size (Float:w, Float:h);
+native set_mouse_events (part_id, ev);
+native get_mouse_events (part_id);
+native set_repeat_events(part_id, rep);
+native get_repeat_events(part_id);
native part_swallow (part_id, GROUP:str[]);
native external_param_get_int(id, param_name[]);
return 0;
}
+/* set_mouse_events(part_id, ev) */
+static Embryo_Cell
+_edje_embryo_fn_set_mouse_events(Embryo_Program *ep, Embryo_Cell *params)
+{
+ int part_id = 0;
+ Edje *ed;
+ Edje_Real_Part *rp;
+
+ CHKPARAM(2);
+
+ part_id = params[1];
+ if (part_id < 0) return 0;
+
+ ed = embryo_program_data_get(ep);
+ rp = ed->table_parts[part_id % ed->table_parts_size];
+
+ if (rp)
+ _edje_part_mouse_events_set(ed, rp, params[2]);
+
+ return 0;
+}
+
+/* get_mouse_events(part_id) */
+static Embryo_Cell
+_edje_embryo_fn_get_mouse_events(Embryo_Program *ep, Embryo_Cell *params)
+{
+ int part_id = 0;
+ Edje *ed;
+ Edje_Real_Part *rp;
+
+ CHKPARAM(1);
+
+ part_id = params[1];
+ if (part_id < 0) return 0;
+
+ ed = embryo_program_data_get(ep);
+ rp = ed->table_parts[part_id % ed->table_parts_size];
+
+ if (rp)
+ return (Embryo_Cell)_edje_var_int_get(ed, (int)_edje_part_mouse_events_get(ed, rp));
+
+ return 0;
+
+}
+
+/* set_repeat_events(part_id, rep) */
+static Embryo_Cell
+_edje_embryo_fn_set_repeat_events(Embryo_Program *ep, Embryo_Cell *params)
+{
+ int part_id = 0;
+ Edje *ed;
+ Edje_Real_Part *rp;
+
+ CHKPARAM(2);
+
+ part_id = params[1];
+ if (part_id < 0) return 0;
+
+ ed = embryo_program_data_get(ep);
+ rp = ed->table_parts[part_id % ed->table_parts_size];
+
+ if (rp)
+ _edje_part_repeat_events_set(ed, rp, params[2]);
+
+ return 0;
+}
+
+/* get_repeat_events(part_id) */
+static Embryo_Cell
+_edje_embryo_fn_get_repeat_events(Embryo_Program *ep, Embryo_Cell *params)
+{
+ int part_id = 0;
+ Edje *ed;
+ Edje_Real_Part *rp;
+
+ CHKPARAM(1);
+
+ part_id = params[1];
+ if (part_id < 0) return 0;
+
+ ed = embryo_program_data_get(ep);
+ rp = ed->table_parts[part_id % ed->table_parts_size];
+
+ if (rp)
+ return (Embryo_Cell)_edje_var_int_get(ed, (int)_edje_part_repeat_events_get(ed, rp));
+
+ return 0;
+
+}
+
/* part_swallow(part_id, group_name) */
static Embryo_Cell
_edje_embryo_fn_part_swallow(Embryo_Program *ep, Embryo_Cell *params)
embryo_program_native_call_add(ep, "get_state_val", _edje_embryo_fn_get_state_val);
embryo_program_native_call_add(ep, "set_state_anim", _edje_embryo_fn_set_state_anim);
+ embryo_program_native_call_add(ep, "set_mouse_events", _edje_embryo_fn_set_mouse_events);
+ embryo_program_native_call_add(ep, "get_mouse_events", _edje_embryo_fn_get_mouse_events);
+ embryo_program_native_call_add(ep, "set_repeat_events", _edje_embryo_fn_set_repeat_events);
+ embryo_program_native_call_add(ep, "get_repeat_events", _edje_embryo_fn_get_repeat_events);
+
embryo_program_native_call_add(ep, "part_swallow", _edje_embryo_fn_part_swallow);
embryo_program_native_call_add(ep, "external_param_get_int", _edje_embryo_fn_external_param_get_int);
return rp ? rp->part->name : NULL;
}
+Eina_Bool
+_edje_part_mouse_events_get(Edje *ed EINA_UNUSED, Edje_Real_Part *rp)
+{
+ if (!rp) return EINA_FALSE;
+
+ return rp->part->mouse_events;
+}
+
+void
+_edje_part_mouse_events_set(Edje *ed EINA_UNUSED, Edje_Real_Part *rp, Eina_Bool mouse_events)
+{
+ if (!rp) return;
+
+ rp->part->mouse_events = !!mouse_events;
+
+ if (mouse_events)
+ {
+ evas_object_pass_events_set(rp->object, 0);
+ _edje_callbacks_add(rp->object, ed, rp);
+ }
+ else
+ {
+ evas_object_pass_events_set(rp->object, 1);
+ _edje_callbacks_del(rp->object, ed);
+ }
+}
+
+Eina_Bool
+_edje_part_repeat_events_get(Edje *ed EINA_UNUSED, Edje_Real_Part *rp)
+{
+ if (!rp) return EINA_FALSE;
+
+ return rp->part->repeat_events;
+}
+
+void
+_edje_part_repeat_events_set(Edje *ed EINA_UNUSED, Edje_Real_Part *rp, Eina_Bool repeat_events)
+{
+ if (!rp) return;
+
+ rp->part->repeat_events = !!repeat_events;
+
+ if (repeat_events)
+ evas_object_repeat_events_set(rp->object, 1);
+ else
+ evas_object_repeat_events_set(rp->object, 0);
+}
+
/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/