Manipulator: API call to invoke on setup
Needed for manipulators that start out interactive, similar use-case to modal operators, except these can be tweaked after.
This commit is contained in:
parent
80c9cd13da
commit
e6814acf13
|
@ -76,6 +76,10 @@ bool WM_manipulator_select_unlink(struct wmManipulatorMap *mmap, struct wmManipu
|
|||
bool WM_manipulator_select_set(struct wmManipulatorMap *mmap, struct wmManipulator *mpr, bool select);
|
||||
void WM_manipulator_highlight_set(struct wmManipulatorMap *mmap, struct wmManipulator *mpr);
|
||||
|
||||
void WM_manipulator_modal_set_from_setup(
|
||||
struct wmManipulatorMap *mmap, struct bContext *C,
|
||||
struct wmManipulator *mpr, int part_index, const struct wmEvent *event);
|
||||
|
||||
struct wmManipulatorOpElem *WM_manipulator_operator_get(
|
||||
struct wmManipulator *mpr, int part_index);
|
||||
struct PointerRNA *WM_manipulator_operator_set(
|
||||
|
|
|
@ -469,6 +469,26 @@ bool wm_manipulator_select_and_highlight(bContext *C, wmManipulatorMap *mmap, wm
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Special function to run from setup so manipulators start out interactive.
|
||||
*
|
||||
* We could do this when linking them, but this complicates things since the window update code needs to run first.
|
||||
*/
|
||||
void WM_manipulator_modal_set_from_setup(
|
||||
struct wmManipulatorMap *mmap, struct bContext *C,
|
||||
struct wmManipulator *mpr, int part_index, const wmEvent *event)
|
||||
{
|
||||
mpr->highlight_part = part_index;
|
||||
WM_manipulator_highlight_set(mmap, mpr);
|
||||
if (false) {
|
||||
wm_manipulatormap_modal_set(mmap, C, mpr, event, true);
|
||||
}
|
||||
else {
|
||||
/* WEAK: but it works. */
|
||||
WM_operator_name_call(C, "MANIPULATORGROUP_OT_manipulator_tweak", WM_OP_INVOKE_DEFAULT, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
void wm_manipulator_calculate_scale(wmManipulator *mpr, const bContext *C)
|
||||
{
|
||||
const RegionView3D *rv3d = CTX_wm_region_view3d(C);
|
||||
|
|
Loading…
Reference in New Issue