Commit: 157bd82fdecb46708d1d2cc041a4930db2cb40b2
Author: Julian Eisel
Date:   Thu Sep 15 12:49:00 2016 +0200
Branches: temp_manipulators_core
https://developer.blender.org/rB157bd82fdecb46708d1d2cc041a4930db2cb40b2

Move structs to lower level, avoid storing manipulator-group pointers, naming, 
etc

===================================================================

M       source/blender/windowmanager/WM_api.h
M       source/blender/windowmanager/intern/wm_event_system.c
M       source/blender/windowmanager/intern/wm_init_exit.c
M       source/blender/windowmanager/manipulators/WM_manipulator_api.h
M       source/blender/windowmanager/manipulators/WM_manipulator_types.h
M       
source/blender/windowmanager/manipulators/intern/manipulator_library/arrow2d_manipulator.c
M       
source/blender/windowmanager/manipulators/intern/manipulator_library/arrow_manipulator.c
M       
source/blender/windowmanager/manipulators/intern/manipulator_library/cage_manipulator.c
M       
source/blender/windowmanager/manipulators/intern/manipulator_library/dial_manipulator.c
M       
source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_library_utils.c
M       
source/blender/windowmanager/manipulators/intern/manipulator_library/primitive_manipulator.c
M       source/blender/windowmanager/manipulators/intern/wm_manipulator.c
M       source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h
M       source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c
M       source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c
M       source/blender/windowmanager/manipulators/wm_manipulator_wmapi.h

===================================================================

diff --git a/source/blender/windowmanager/WM_api.h 
b/source/blender/windowmanager/WM_api.h
index f2df6c0..006f1b7 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -75,6 +75,7 @@ struct wmNDOFMotionData;
 
 typedef struct wmJob wmJob;
 typedef struct wmManipulator wmManipulator;
+typedef struct wmManipulatorMap wmManipulatorMap;
 typedef struct wmManipulatorMapType wmManipulatorMapType;
 
 /* general API */
diff --git a/source/blender/windowmanager/intern/wm_event_system.c 
b/source/blender/windowmanager/intern/wm_event_system.c
index 97f2d2b..d9cdb07 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -2123,9 +2123,10 @@ static int wm_handlers_do_intern(bContext *C, wmEvent 
*event, ListBase *handlers
                                        }
                                }
                                /* handle user configurable manipulator-map 
keymap */
-                               else if (manipulator && 
mmap->mmap_context.activegroup) {
+                               else if (manipulator) {
                                        /* get user customized keymap from 
default one */
-                                       const wmKeyMap *keymap = 
WM_keymap_active(wm, mmap->mmap_context.activegroup->type->keymap);
+                                       const wmManipulatorGroup 
*highlightgroup = wm_manipulator_group_find(mmap, manipulator);
+                                       const wmKeyMap *keymap = 
WM_keymap_active(wm, highlightgroup->type->keymap);
                                        wmKeyMapItem *kmi;
 
                                        PRINT("%s:   checking '%s' ...", 
__func__, keymap->idname);
diff --git a/source/blender/windowmanager/intern/wm_init_exit.c 
b/source/blender/windowmanager/intern/wm_init_exit.c
index 57f7fde..0070c87 100644
--- a/source/blender/windowmanager/intern/wm_init_exit.c
+++ b/source/blender/windowmanager/intern/wm_init_exit.c
@@ -532,7 +532,7 @@ void WM_exit_ext(bContext *C, const bool do_python)
        BKE_node_clipboard_clear();
 
        /* free manipulator-maps after freeing blender, so no deleted data get 
accessed during cleaning up of areas */
-       WM_manipulatormaptypes_free();
+       wm_manipulatormaptypes_free();
 
        BLF_exit();
 
diff --git a/source/blender/windowmanager/manipulators/WM_manipulator_api.h 
b/source/blender/windowmanager/manipulators/WM_manipulator_api.h
index 3b4eace..f9d3a5b 100644
--- a/source/blender/windowmanager/manipulators/WM_manipulator_api.h
+++ b/source/blender/windowmanager/manipulators/WM_manipulator_api.h
@@ -97,13 +97,11 @@ struct wmManipulatorMapType *WM_manipulatormaptype_find(
         const struct wmManipulatorMapType_Params *mmap_params);
 struct wmManipulatorMapType *WM_manipulatormaptype_ensure(
         const struct wmManipulatorMapType_Params *mmap_params);
-struct wmManipulatorMap *WM_manipulatormap_from_type(
+struct wmManipulatorMap *WM_manipulatormap_new_from_type(
         const struct wmManipulatorMapType_Params *mmap_params);
 struct wmManipulatorMap *WM_manipulatormap_find(
         const struct ARegion *ar, const struct wmManipulatorMapType_Params 
*mmap_params);
 
-void WM_manipulatormaptypes_free(void);
-
 void WM_manipulatormap_tag_refresh(struct wmManipulatorMap *mmap);
 void WM_manipulatormap_update(const struct bContext *C, struct 
wmManipulatorMap *mmap);
 void WM_manipulatormap_draw(
diff --git a/source/blender/windowmanager/manipulators/WM_manipulator_types.h 
b/source/blender/windowmanager/manipulators/WM_manipulator_types.h
index 6fc748f..f97e46d 100644
--- a/source/blender/windowmanager/manipulators/WM_manipulator_types.h
+++ b/source/blender/windowmanager/manipulators/WM_manipulator_types.h
@@ -88,37 +88,6 @@ typedef struct wmManipulatorGroupType {
        char mapidname[64];
 } wmManipulatorGroupType;
 
-
-typedef struct wmManipulatorMap {
-       struct wmManipulatorMap *next, *prev;
-
-       struct wmManipulatorMapType *type;
-       ListBase manipulator_groups;
-
-       char update_flag; /* private, update tagging */
-
-       /**
-        * \brief Manipulator map runtime context
-        *
-        * Contains information about this manipulator-map. Currently
-        * highlighted manipulator, currently selected manipulators, ...
-        */
-       struct {
-               /* we redraw the manipulator-map when this changes */
-               struct wmManipulator *highlighted_manipulator;
-               /* user has clicked this manipulator and it gets all input */
-               struct wmManipulator *active_manipulator;
-               /* array for all selected manipulators
-                * TODO  check on using BLI_array */
-               struct wmManipulator **selected_manipulator;
-               int tot_selected;
-
-               /* set while manipulator is highlighted/active */
-               struct wmManipulatorGroup *activegroup;
-       } mmap_context;
-} wmManipulatorMap;
-
-
 struct wmManipulatorMapType_Params {
        const char *idname;
        const int spaceid;
diff --git 
a/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow2d_manipulator.c
 
b/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow2d_manipulator.c
index d8e5d39..b6ae239 100644
--- 
a/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow2d_manipulator.c
+++ 
b/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow2d_manipulator.c
@@ -193,7 +193,7 @@ wmManipulator *MANIPULATOR_arrow2d_new(wmManipulatorGroup 
*mgroup, const char *n
 
        arrow->line_len = 1.0f;
 
-       WM_manipulator_register(mgroup, &arrow->manipulator, name);
+       wm_manipulator_register(mgroup, &arrow->manipulator, name);
 
        return (wmManipulator *)arrow;
 }
diff --git 
a/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow_manipulator.c
 
b/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow_manipulator.c
index a9503ce..78e8cc1 100644
--- 
a/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow_manipulator.c
+++ 
b/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow_manipulator.c
@@ -66,9 +66,9 @@
 //#define MANIPULATOR_USE_CUSTOM_ARROWS
 
 #ifdef MANIPULATOR_USE_CUSTOM_ARROWS
-ManipulatorDrawInfo arrow_head_draw_info = {0};
+ManipulatorGeometryInfo arrow_head_draw_info = {0};
 #endif
-ManipulatorDrawInfo cube_draw_info = {0};
+ManipulatorGeometryInfo cube_draw_info = {0};
 
 /* ArrowManipulator->flag */
 enum {
@@ -134,7 +134,7 @@ static void arrow_draw_geom(const ArrowManipulator *arrow, 
const bool select)
        }
        else {
 #ifdef MANIPULATOR_USE_CUSTOM_ARROWS
-               manipulator_drawinfo_draw(&arrow_head_draw_info, select);
+               wm_manipulator_geometryinfo_draw(&arrow_head_draw_info, select);
 #else
                const float vec[2][3] = {
                        {0.0f, 0.0f, 0.0f},
@@ -162,7 +162,7 @@ static void arrow_draw_geom(const ArrowManipulator *arrow, 
const bool select)
                        glScalef(size, size, size);
 
                        /* draw cube */
-                       manipulator_drawinfo_draw(&cube_draw_info, select);
+                       wm_manipulator_geometryinfo_draw(&cube_draw_info, 
select);
                }
                else {
                        const float len = 0.25f;
@@ -482,7 +482,7 @@ wmManipulator *MANIPULATOR_arrow_new(wmManipulatorGroup 
*mgroup, const char *nam
        arrow->data.range_fac = 1.0f;
        copy_v3_v3(arrow->direction, dir_default);
 
-       WM_manipulator_register(mgroup, &arrow->manipulator, name);
+       wm_manipulator_register(mgroup, &arrow->manipulator, name);
 
        return (wmManipulator *)arrow;
 }
diff --git 
a/source/blender/windowmanager/manipulators/intern/manipulator_library/cage_manipulator.c
 
b/source/blender/windowmanager/manipulators/intern/manipulator_library/cage_manipulator.c
index 96c1f85..a22ccfa 100644
--- 
a/source/blender/windowmanager/manipulators/intern/manipulator_library/cage_manipulator.c
+++ 
b/source/blender/windowmanager/manipulators/intern/manipulator_library/cage_manipulator.c
@@ -541,7 +541,7 @@ wmManipulator 
*MANIPULATOR_rect_transform_new(wmManipulatorGroup *mgroup, const
        cage->scale[0] = cage->scale[1] = 1.0f;
        cage->style = style;
 
-       WM_manipulator_register(mgroup, &cage->manipulator, name);
+       wm_manipulator_register(mgroup, &cage->manipulator, name);
 
        return (wmManipulator *)cage;
 }
diff --git 
a/source/blender/windowmanager/manipulators/intern/manipulator_library/dial_manipulator.c
 
b/source/blender/windowmanager/manipulators/intern/manipulator_library/dial_manipulator.c
index ef1c955..287fd55 100644
--- 
a/source/blender/windowmanager/manipulators/intern/manipulator_library/dial_manipulator.c
+++ 
b/source/blender/windowmanager/manipulators/intern/manipulator_library/dial_manipulator.c
@@ -65,7 +65,7 @@
 //#define MANIPULATOR_USE_CUSTOM_DIAS
 
 #ifdef MANIPULATOR_USE_CUSTOM_DIAS
-ManipulatorDrawInfo dial_draw_info = {0};
+ManipulatorGeometryInfo dial_draw_info = {0};
 #endif
 
 typedef struct DialManipulator {
@@ -92,7 +92,7 @@ typedef struct DialInteraction {
 static void dial_geom_draw(const DialManipulator *dial, const float col[4], 
const bool select)
 {
 #ifdef MANIPULATOR_USE_CUSTOM_DIAS
-       manipulator_drawinfo_draw(&dial_draw_info, select);
+       wm_manipulator_geometryinfo_draw(&dial_draw_info, select);
 #else
        const bool filled = (dial->style == MANIPULATOR_DIAL_STYLE_RING_FILLED);
 
@@ -325,7 +325,7 @@ wmManipulator *MANIPULATOR_dial_new(wmManipulatorGroup 
*mgroup, const char *name
        /* defaults */
        copy_v3_v3(dial->direction, dir_default);
 
-       WM_manipulator_register(mgroup, &dial->manipulator, name);
+       wm_manipulator_register(mgroup, &dial->manipulator, name);
 
        return (wmManipulator *)dial;
 }
diff --git 
a/source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_library_utils.c
 
b/source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_library_utils.c
index fdea67d..0617e9e 100644
--- 
a/source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_library_utils.c
+++ 
b/source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_library_utils.c
@@ -42,6 +42,7 @@
 /* own includes */
 #include "WM_manipulator_types.h"
 #include "wm_manipulator_wmapi.h"
+#include "wm_manipulator_intern.h"
 #include "manipulator_library_intern.h"
 
 /* factor for precision tweaking */
diff --git 
a/source/blender/windowmanager/manipulators/intern/manipulator_library/primitive_manipulator.c
 
b/source/blender/windowmanager/manipulators/intern/manipulator_library/primitive_manipulator.c
index b6a19ef..8293be6 100644
--- 
a/source/blender/windowmanager/manipulators/intern/manipulator_library/primitive_manipulator.c
+++ 
b/source/blender/windowmanager/manipulators/intern/manipulator_library/primitive_manipulator.c
@@ -208,7 +208,7 @@ wmManipulator *MANIPULATOR_primitive_new(

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to