Manipulator: use 'void *' for callback data args

Non-float properties should be editable too.
This commit is contained in:
Campbell Barton 2017-06-26 14:31:26 +10:00
parent 2d2c64dd18
commit 3edff2e1a4
3 changed files with 34 additions and 19 deletions

View File

@ -457,10 +457,11 @@ static void manipulator_mesh_bisect_update_from_op(ManipulatorGroup *man)
/* depth callbacks */
static void manipulator_bisect_prop_depth_get(
const wmManipulator *mpr, wmManipulatorProperty *mpr_prop,
float *value)
void *value_p)
{
ManipulatorGroup *man = mpr->parent_mgroup->customdata;
wmOperator *op = man->data.op;
float *value = value_p;
BLI_assert(mpr_prop->type->array_length == 1);
UNUSED_VARS_NDEBUG(mpr_prop);
@ -474,10 +475,11 @@ static void manipulator_bisect_prop_depth_get(
static void manipulator_bisect_prop_depth_set(
const wmManipulator *mpr, wmManipulatorProperty *mpr_prop,
const float *value)
const void *value_p)
{
ManipulatorGroup *man = mpr->parent_mgroup->customdata;
wmOperator *op = man->data.op;
const float *value = value_p;
BLI_assert(mpr_prop->type->array_length == 1);
UNUSED_VARS_NDEBUG(mpr_prop);
@ -500,7 +502,7 @@ static void manipulator_bisect_prop_depth_set(
/* translate callbacks */
static void manipulator_bisect_prop_translate_get(
const wmManipulator *mpr, wmManipulatorProperty *mpr_prop,
float *value)
void *value_p)
{
ManipulatorGroup *man = mpr->parent_mgroup->customdata;
wmOperator *op = man->data.op;
@ -508,12 +510,12 @@ static void manipulator_bisect_prop_translate_get(
BLI_assert(mpr_prop->type->array_length == 3);
UNUSED_VARS_NDEBUG(mpr_prop);
RNA_property_float_get_array(op->ptr, man->data.prop_plane_co, value);
RNA_property_float_get_array(op->ptr, man->data.prop_plane_co, value_p);
}
static void manipulator_bisect_prop_translate_set(
const wmManipulator *mpr, wmManipulatorProperty *mpr_prop,
const float *value)
const void *value_p)
{
ManipulatorGroup *man = mpr->parent_mgroup->customdata;
wmOperator *op = man->data.op;
@ -521,7 +523,7 @@ static void manipulator_bisect_prop_translate_set(
BLI_assert(mpr_prop->type->array_length == 3);
UNUSED_VARS_NDEBUG(mpr_prop);
RNA_property_float_set_array(op->ptr, man->data.prop_plane_co, value);
RNA_property_float_set_array(op->ptr, man->data.prop_plane_co, value_p);
manipulator_bisect_exec(man);
}
@ -529,10 +531,11 @@ static void manipulator_bisect_prop_translate_set(
/* angle callbacks */
static void manipulator_bisect_prop_angle_get(
const wmManipulator *mpr, wmManipulatorProperty *mpr_prop,
float *value)
void *value_p)
{
ManipulatorGroup *man = mpr->parent_mgroup->customdata;
wmOperator *op = man->data.op;
float *value = value_p;
BLI_assert(mpr_prop->type->array_length == 1);
UNUSED_VARS_NDEBUG(mpr_prop);
@ -555,10 +558,11 @@ static void manipulator_bisect_prop_angle_get(
static void manipulator_bisect_prop_angle_set(
const wmManipulator *mpr, wmManipulatorProperty *mpr_prop,
const float *value)
const void *value_p)
{
ManipulatorGroup *man = mpr->parent_mgroup->customdata;
wmOperator *op = man->data.op;
const float *value = value_p;
BLI_assert(mpr_prop->type->array_length == 1);
UNUSED_VARS_NDEBUG(mpr_prop);

View File

@ -891,10 +891,11 @@ static void manipulator_mesh_spin_update_from_op(ManipulatorSpinGroup *man)
/* depth callbacks */
static void manipulator_spin_prop_depth_get(
const wmManipulator *mpr, wmManipulatorProperty *mpr_prop,
float *value)
void *value_p)
{
ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata;
wmOperator *op = man->data.op;
float *value = value_p;
BLI_assert(mpr_prop->type->array_length == 1);
UNUSED_VARS_NDEBUG(mpr_prop);
@ -908,10 +909,11 @@ static void manipulator_spin_prop_depth_get(
static void manipulator_spin_prop_depth_set(
const wmManipulator *mpr, wmManipulatorProperty *mpr_prop,
const float *value)
const void *value_p)
{
ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata;
wmOperator *op = man->data.op;
const float *value = value_p;
BLI_assert(mpr_prop->type->array_length == 1);
UNUSED_VARS_NDEBUG(mpr_prop);
@ -934,10 +936,11 @@ static void manipulator_spin_prop_depth_set(
/* translate callbacks */
static void manipulator_spin_prop_translate_get(
const wmManipulator *mpr, wmManipulatorProperty *mpr_prop,
float *value)
void *value_p)
{
ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata;
wmOperator *op = man->data.op;
float *value = value_p;
BLI_assert(mpr_prop->type->array_length == 3);
UNUSED_VARS_NDEBUG(mpr_prop);
@ -947,7 +950,7 @@ static void manipulator_spin_prop_translate_get(
static void manipulator_spin_prop_translate_set(
const wmManipulator *mpr, wmManipulatorProperty *mpr_prop,
const float *value)
const void *value)
{
ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata;
wmOperator *op = man->data.op;
@ -963,10 +966,11 @@ static void manipulator_spin_prop_translate_set(
/* angle callbacks */
static void manipulator_spin_prop_axis_angle_get(
const wmManipulator *mpr, wmManipulatorProperty *mpr_prop,
float *value)
void *value_p)
{
ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata;
wmOperator *op = man->data.op;
float *value = value_p;
BLI_assert(mpr_prop->type->array_length == 1);
UNUSED_VARS_NDEBUG(mpr_prop);
@ -989,10 +993,11 @@ static void manipulator_spin_prop_axis_angle_get(
static void manipulator_spin_prop_axis_angle_set(
const wmManipulator *mpr, wmManipulatorProperty *mpr_prop,
const float *value)
const void *value_p)
{
ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata;
wmOperator *op = man->data.op;
const float *value = value_p;
BLI_assert(mpr_prop->type->array_length == 1);
UNUSED_VARS_NDEBUG(mpr_prop);
@ -1023,10 +1028,12 @@ static void manipulator_spin_prop_axis_angle_set(
/* angle callbacks */
static void manipulator_spin_prop_angle_get(
const wmManipulator *mpr, wmManipulatorProperty *mpr_prop,
float *value)
void *value_p)
{
ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata;
wmOperator *op = man->data.op;
float *value = value_p;
BLI_assert(mpr_prop->type->array_length == 1);
UNUSED_VARS_NDEBUG(mpr_prop);
value[0] = RNA_property_float_get(op->ptr, man->data.prop_angle);
@ -1034,12 +1041,13 @@ static void manipulator_spin_prop_angle_get(
static void manipulator_spin_prop_angle_set(
const wmManipulator *mpr, wmManipulatorProperty *mpr_prop,
const float *value)
const void *value_p)
{
ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata;
wmOperator *op = man->data.op;
BLI_assert(mpr_prop->type->array_length == 1);
UNUSED_VARS_NDEBUG(mpr_prop);
const float *value = value_p;
RNA_property_float_set(op->ptr, man->data.prop_angle, value[0]);
manipulator_spin_exec(man);

View File

@ -61,13 +61,16 @@ typedef void (*wmManipulatorFnSelect)(struct bContext *, struct wmManipulator
/* wmManipulatorProperty */
typedef void (*wmManipulatorPropertyFnGet)(
const struct wmManipulator *, struct wmManipulatorProperty *,
float *value);
/* typically 'float *' */
void *value);
typedef void (*wmManipulatorPropertyFnSet)(
const struct wmManipulator *, struct wmManipulatorProperty *,
const float *value);
/* typically 'const float *' */
const void *value);
typedef void (*wmManipulatorPropertyFnRangeGet)(
const struct wmManipulator *, struct wmManipulatorProperty *,
float range[2]);
/* typically 'float[2]' */
void *range);
typedef void (*wmManipulatorPropertyFnFree)(
const struct wmManipulator *, struct wmManipulatorProperty *);