edje: make it possible to change body attributes via
script Support physics attributes on set_state_val and get_state_val So custom_states can be created SVN revision: 80484
This commit is contained in:
parent
af221f3d6d
commit
476391343a
|
@ -210,7 +210,10 @@ enum State_Param
|
||||||
STATE_MAP_BACK_CULL = 39,
|
STATE_MAP_BACK_CULL = 39,
|
||||||
STATE_MAP_PERSP_ON = 40,
|
STATE_MAP_PERSP_ON = 40,
|
||||||
STATE_PERSP_ZPLANE = 41,
|
STATE_PERSP_ZPLANE = 41,
|
||||||
STATE_PERSP_FOCAL = 42
|
STATE_PERSP_FOCAL = 42,
|
||||||
|
STATE_PHYSICS_MASS = 43,
|
||||||
|
STATE_PHYSICS_FRICTION = 44,
|
||||||
|
STATE_PHYSICS_RESTITUTION = 45
|
||||||
};
|
};
|
||||||
|
|
||||||
native set_state_val(part_id, State_Param:p, ...);
|
native set_state_val(part_id, State_Param:p, ...);
|
||||||
|
|
|
@ -451,6 +451,30 @@ collections {
|
||||||
target: "blue_circle";
|
target: "blue_circle";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
program {
|
||||||
|
name: "customize";
|
||||||
|
signal: "custom";
|
||||||
|
script {
|
||||||
|
new Float: mass, Float:rest, Float:fric;
|
||||||
|
|
||||||
|
custom_state(PART:"red_circle", "default", 0.0);
|
||||||
|
set_state_val(PART:"red_circle", STATE_COLOR, 0, 0, 0, 255);
|
||||||
|
set_state_val(PART:"red_circle", STATE_PHYSICS_MASS, 4.5);
|
||||||
|
set_state_val(PART:"red_circle", STATE_PHYSICS_RESTITUTION, 0.1);
|
||||||
|
set_state_val(PART:"red_circle", STATE_PHYSICS_FRICTION, 0.345);
|
||||||
|
set_state(PART:"red_circle", "custom", 0.0);
|
||||||
|
|
||||||
|
get_state_val(PART:"red_circle", STATE_PHYSICS_MASS, mass);
|
||||||
|
get_state_val(PART:"red_circle", STATE_PHYSICS_RESTITUTION,
|
||||||
|
rest);
|
||||||
|
get_state_val(PART:"red_circle", STATE_PHYSICS_FRICTION,
|
||||||
|
fric);
|
||||||
|
send_message(MSG_STRING_FLOAT_SET, 1, "Mass", mass);
|
||||||
|
send_message(MSG_STRING_FLOAT_SET, 1, "Friction", fric);
|
||||||
|
send_message(MSG_STRING_FLOAT_SET, 1, "Restitution", rest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2258,6 +2258,26 @@ _edje_embryo_fn_set_state_val(Embryo_Program *ep, Embryo_Cell *params)
|
||||||
GETINT(rp->custom->description->persp.focal, params[3]);
|
GETINT(rp->custom->description->persp.focal, params[3]);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
#ifdef HAVE_EPHYSICS
|
||||||
|
case EDJE_STATE_PARAM_PHYSICS_MASS:
|
||||||
|
CHKPARAM(3);
|
||||||
|
|
||||||
|
GETFLOAT_T(rp->custom->description->physics.mass, params[3]);
|
||||||
|
|
||||||
|
break;
|
||||||
|
case EDJE_STATE_PARAM_PHYSICS_RESTITUTION:
|
||||||
|
CHKPARAM(3);
|
||||||
|
|
||||||
|
GETFLOAT_T(rp->custom->description->physics.restitution, params[3]);
|
||||||
|
|
||||||
|
break;
|
||||||
|
case EDJE_STATE_PARAM_PHYSICS_FRICTION:
|
||||||
|
CHKPARAM(3);
|
||||||
|
|
||||||
|
GETFLOAT_T(rp->custom->description->physics.friction, params[3]);
|
||||||
|
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -2641,6 +2661,26 @@ _edje_embryo_fn_get_state_val(Embryo_Program *ep, Embryo_Cell *params)
|
||||||
SETINT(rp->custom->description->visible, params[3]);
|
SETINT(rp->custom->description->visible, params[3]);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
#ifdef HAVE_EPHYSICS
|
||||||
|
case EDJE_STATE_PARAM_PHYSICS_MASS:
|
||||||
|
CHKPARAM(3);
|
||||||
|
|
||||||
|
SETFLOAT_T(rp->custom->description->physics.mass, params[3]);
|
||||||
|
|
||||||
|
break;
|
||||||
|
case EDJE_STATE_PARAM_PHYSICS_RESTITUTION:
|
||||||
|
CHKPARAM(3);
|
||||||
|
|
||||||
|
SETFLOAT_T(rp->custom->description->physics.restitution, params[3]);
|
||||||
|
|
||||||
|
break;
|
||||||
|
case EDJE_STATE_PARAM_PHYSICS_FRICTION:
|
||||||
|
CHKPARAM(3);
|
||||||
|
|
||||||
|
SETFLOAT_T(rp->custom->description->physics.friction, params[3]);
|
||||||
|
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -414,7 +414,10 @@ typedef struct _Edje_Markup_Filter_Callback Edje_Markup_Filter_Callback;
|
||||||
#define EDJE_STATE_PARAM_MAP_PERSP_ON 40
|
#define EDJE_STATE_PARAM_MAP_PERSP_ON 40
|
||||||
#define EDJE_STATE_PARAM_PERSP_ZPLANE 41
|
#define EDJE_STATE_PARAM_PERSP_ZPLANE 41
|
||||||
#define EDJE_STATE_PARAM_PERSP_FOCAL 42
|
#define EDJE_STATE_PARAM_PERSP_FOCAL 42
|
||||||
#define EDJE_STATE_PARAM_LAST 43
|
#define EDJE_STATE_PARAM_PHYSICS_MASS 43
|
||||||
|
#define EDJE_STATE_PARAM_PHYSICS_FRICTION 44
|
||||||
|
#define EDJE_STATE_PARAM_PHYSICS_RESTITUTION 45
|
||||||
|
#define EDJE_STATE_PARAM_LAST 46
|
||||||
|
|
||||||
#define EDJE_ENTRY_EDIT_MODE_NONE 0
|
#define EDJE_ENTRY_EDIT_MODE_NONE 0
|
||||||
#define EDJE_ENTRY_EDIT_MODE_SELECTABLE 1
|
#define EDJE_ENTRY_EDIT_MODE_SELECTABLE 1
|
||||||
|
|
Loading…
Reference in New Issue