Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2017-06-15 13:48:24 +0300
committerCampbell Barton <ideasman42@gmail.com>2017-06-15 13:56:22 +0300
commit830df9b33d3e2afdf3bb23b469378899c34fda78 (patch)
tree4f2fad8cdd48937e28d2c45115476c9045e4525b /source/blender/editors/space_view3d/space_view3d.c
parent1a7099f3ecf52fa8a54c2ba3f652d5827ca9103c (diff)
Updates to manipulator API
While this is work-in-progress from custom-manipulators branch its stable so adding into 2.8 so we don't get too much out of sync. - ManipulatorGroupType's are moved out of the manipulator-map and are now global (like operators, panels etc) and added into spaces as needed. Without this all operators that might ever use a manipulator in the 3D view would be polling the viewport. - Add optional get/set callbacks for non-RNA properties Needed so re-usable manipulators can control values that don't correspond to a single properly or need conversion. - Fix divide by zero bug in arrow manipulator (when moving zero pixels).
Diffstat (limited to 'source/blender/editors/space_view3d/space_view3d.c')
-rw-r--r--source/blender/editors/space_view3d/space_view3d.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index 65740fe6794..eaf9f73b39c 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -491,9 +491,9 @@ static void view3d_main_region_init(wmWindowManager *wm, ARegion *ar)
ListBase *lb;
wmKeyMap *keymap;
- if (!ar->manipulator_map) {
- ar->manipulator_map = WM_manipulatormap_new_from_type(&(const struct wmManipulatorMapType_Params) {
- "View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW});
+ if (ar->manipulator_map == NULL) {
+ ar->manipulator_map = WM_manipulatormap_new_from_type(
+ &(const struct wmManipulatorMapType_Params) {SPACE_VIEW3D, RGN_TYPE_WINDOW});
}
WM_manipulatormap_add_handlers(ar, ar->manipulator_map);
@@ -731,16 +731,13 @@ static void view3d_dropboxes(void)
static void view3d_widgets(void)
{
- const struct wmManipulatorMapType_Params wmap_params = {
- .idname = "View3D",
- .spaceid = SPACE_VIEW3D, .regionid = RGN_TYPE_WINDOW,
- };
- wmManipulatorMapType *wmaptype = WM_manipulatormaptype_ensure(&wmap_params);
-
- WM_manipulatorgrouptype_append(wmaptype, TRANSFORM_WGT_manipulator);
- WM_manipulatorgrouptype_append(wmaptype, VIEW3D_WGT_lamp);
- WM_manipulatorgrouptype_append(wmaptype, VIEW3D_WGT_force_field);
- WM_manipulatorgrouptype_append(wmaptype, VIEW3D_WGT_camera);
+ wmManipulatorMapType *mmap_type = WM_manipulatormaptype_ensure(
+ &(const struct wmManipulatorMapType_Params){SPACE_VIEW3D, RGN_TYPE_WINDOW});
+
+ WM_manipulatorgrouptype_append_and_link(mmap_type, TRANSFORM_WGT_manipulator);
+ WM_manipulatorgrouptype_append_and_link(mmap_type, VIEW3D_WGT_lamp);
+ WM_manipulatorgrouptype_append_and_link(mmap_type, VIEW3D_WGT_force_field);
+ WM_manipulatorgrouptype_append_and_link(mmap_type, VIEW3D_WGT_camera);
}