Commit: 70c3fd613bcf614222b8e5e1a76b32be59557035
Author: Julian Eisel
Date:   Sat Dec 19 16:12:20 2015 +0100
Branches: temp_widgets_c++_experiment
https://developer.blender.org/rB70c3fd613bcf614222b8e5e1a76b32be59557035

P

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

M       source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.cc
M       source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.h
M       source/blender/windowmanager/intern/widgets/wm_widgetmaptype.cc
M       source/blender/windowmanager/intern/widgets/wm_widgetmaptype.h
M       source/blender/windowmanager/intern/widgets/wm_widgets_c_api.cc
M       source/blender/windowmanager/intern/widgets/wm_widgets_c_api.h
M       source/blender/windowmanager/intern/wm_widgets.c
M       source/blender/windowmanager/wm.h
M       source/blender/windowmanager/wm_event_system.h

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

diff --git a/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.cc 
b/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.cc
index d8f070c..6f96594 100644
--- a/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.cc
+++ b/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.cc
@@ -79,7 +79,7 @@ void wmWidgetGroupType::init(
 
 
        /* init keymap - on startup there's an extra call to init keymaps for 
'permanent' widget-groups */
-//     wm_widgetgrouptype_keymap_init(wgrouptype, ((wmWindowManager 
*)bmain->wm.first)->defaultconf);
+       keymap_init_do(((wmWindowManager *)bmain->wm.first)->defaultconf);
 
        /* now create a widget for all existing areas */
        for (bScreen *sc = (bScreen *)bmain->screen.first; sc; sc = (bScreen 
*)sc->id.next) {
@@ -138,6 +138,11 @@ void wmWidgetGroupType::unregister(bContext *C, Main 
*bmain)
        delete this;
 }
 
+void wmWidgetGroupType::keymap_init_do(wmKeyConfig *keyconf)
+{
+       keymap = keymap_init(keyconf, name);
+}
+
 void wmWidgetGroupType::attach_to_handler(bContext *C, wmEventHandler 
*handler, wmOperator *op)
 {
        /* now instantiate the widgetmap */
diff --git a/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.h 
b/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.h
index 18287cd..ea0d9c3 100644
--- a/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.h
+++ b/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.h
@@ -55,6 +55,7 @@ public:
                const short spaceid, const short regionid, const bool is_3d);
        void unregister(bContext *C, Main *bmain);
 
+       void keymap_init_do(wmKeyConfig *keyconf);
        void attach_to_handler(bContext *C, struct wmEventHandler *handler, 
struct wmOperator *op);
        size_t get_idname(char *r_idname);
 
diff --git a/source/blender/windowmanager/intern/widgets/wm_widgetmaptype.cc 
b/source/blender/windowmanager/intern/widgets/wm_widgetmaptype.cc
index 637565d..210db03 100644
--- a/source/blender/windowmanager/intern/widgets/wm_widgetmaptype.cc
+++ b/source/blender/windowmanager/intern/widgets/wm_widgetmaptype.cc
@@ -33,7 +33,8 @@
 
 #include "DNA_defs.h"
 
-#include "wm_widgets_c_api.h"
+#include "wm_widgets_c_api.h" // tmp
+#include "wm_widgetgrouptype.h"
 #include "wm_widgetmaptype.h" // own include
 
 
@@ -70,3 +71,18 @@ wmWidgetMapType *WM_widgetmaptype_find(
        return wmaptype;
 }
 
+void widgets_keymap(wmKeyConfig *keyconf)
+{
+       for (wmWidgetMapType *wmaptype = (wmWidgetMapType 
*)widgetmaptypes.first;
+            wmaptype;
+            wmaptype = wmaptype->next)
+       {
+               for (wmWidgetGroupType *wgrouptype = (wmWidgetGroupType 
*)wmaptype->widgetgrouptypes.first;
+                    wgrouptype;
+                    wgrouptype = wgrouptype->next)
+               {
+                       wgrouptype->keymap_init_do(keyconf);
+               }
+       }
+}
+
diff --git a/source/blender/windowmanager/intern/widgets/wm_widgetmaptype.h 
b/source/blender/windowmanager/intern/widgets/wm_widgetmaptype.h
index 6f5f19b..c99977d 100644
--- a/source/blender/windowmanager/intern/widgets/wm_widgetmaptype.h
+++ b/source/blender/windowmanager/intern/widgets/wm_widgetmaptype.h
@@ -55,4 +55,7 @@ typedef struct wmWidgetMapType {
        ListBase widgetgrouptypes;
 } wmWidgetMapType;
 
+
+void widgets_keymap(struct wmKeyConfig *keyconf);
+
 #endif // __WM_WIDGETMAPTYPE_H__
diff --git a/source/blender/windowmanager/intern/widgets/wm_widgets_c_api.cc 
b/source/blender/windowmanager/intern/widgets/wm_widgets_c_api.cc
index 22e72fe..6fa7a63 100644
--- a/source/blender/windowmanager/intern/widgets/wm_widgets_c_api.cc
+++ b/source/blender/windowmanager/intern/widgets/wm_widgets_c_api.cc
@@ -35,6 +35,14 @@
 #include "wm_widgets_c_api.h" // own include
 
 
+/**
+ * Initialize keymaps for all existing widget-groups
+ */
+void wm_widgets_keymap(wmKeyConfig *keyconfig)
+{
+       widgets_keymap(keyconfig);
+}
+
 wmWidgetMap *WM_widgetmap_from_type(
         const char *idname, const int spaceid, const int regionid,
         const bool is_3d)
diff --git a/source/blender/windowmanager/intern/widgets/wm_widgets_c_api.h 
b/source/blender/windowmanager/intern/widgets/wm_widgets_c_api.h
index f148a85..67925187 100644
--- a/source/blender/windowmanager/intern/widgets/wm_widgets_c_api.h
+++ b/source/blender/windowmanager/intern/widgets/wm_widgets_c_api.h
@@ -43,6 +43,8 @@ struct wmWidgetGroup;
 struct wmWidgetGroupType;
 
 
+void wm_widgets_keymap(struct wmKeyConfig *keyconfig);
+
 struct wmWidgetMapType *WM_widgetmaptype_find(
         const char *idname, const int spaceid, const int regionid,
         const bool is_3d, const bool create);
diff --git a/source/blender/windowmanager/intern/wm_widgets.c 
b/source/blender/windowmanager/intern/wm_widgets.c
index 778888f..5079126 100644
--- a/source/blender/windowmanager/intern/wm_widgets.c
+++ b/source/blender/windowmanager/intern/wm_widgets.c
@@ -195,21 +195,6 @@ static void widget_calculate_scale(wmWidget *widget, const 
bContext *C)
        widget->scale = scale * widget->user_scale;
 }
 
-/**
- * Initialize keymaps for all existing widget-groups
- */
-void wm_widgets_keymap(wmKeyConfig *keyconf)
-{
-       wmWidgetMapType *wmaptype;
-       wmWidgetGroupTypeC *wgrouptype;
-
-       for (wmaptype = widgetmaptypes.first; wmaptype; wmaptype = 
wmaptype->next) {
-               for (wgrouptype = wmaptype->widgetgrouptypes.first; wgrouptype; 
wgrouptype = wgrouptype->next) {
-                       wm_widgetgrouptype_keymap_init(wgrouptype, keyconf);
-               }
-       }
-}
-
 BLI_INLINE bool widget_compare(const wmWidget *a, const wmWidget *b)
 {
        return STREQ(a->idname, b->idname);
@@ -1419,8 +1404,3 @@ wmKeyMap *WM_widgetgroup_keymap_common(wmKeyConfig 
*config, const char *wgroupna
        return km;
 }
 
-void wm_widgetgrouptype_keymap_init(wmWidgetGroupTypeC *wgrouptype, 
wmKeyConfig *keyconf)
-{
-       wgrouptype->keymap = wgrouptype->keymap_init(keyconf, wgrouptype->name);
-}
-
diff --git a/source/blender/windowmanager/wm.h 
b/source/blender/windowmanager/wm.h
index 5d26afb..56c013c 100644
--- a/source/blender/windowmanager/wm.h
+++ b/source/blender/windowmanager/wm.h
@@ -174,7 +174,6 @@ void wm_open_init_use_scripts(wmOperator *op, bool 
use_prefs);
 /* wm_widgets.c */
 bool wm_widgetmap_is_3d(const wmWidgetMap *wmap);
 bool wm_widget_register(wmWidgetGroup *wgroup, wmWidget *widget, const char 
*name);
-void wm_widgets_keymap(wmKeyConfig *keyconf);
 
 void WIDGETGROUP_OT_widget_select(wmOperatorType *ot);
 void WIDGETGROUP_OT_widget_tweak(wmOperatorType *ot);
diff --git a/source/blender/windowmanager/wm_event_system.h 
b/source/blender/windowmanager/wm_event_system.h
index f5d05ef..c8feb16 100644
--- a/source/blender/windowmanager/wm_event_system.h
+++ b/source/blender/windowmanager/wm_event_system.h
@@ -104,8 +104,6 @@ void        wm_drags_draw(bContext *C, wmWindow *win, rcti 
*rect);
 void wm_widget_handler_modal_update(bContext *C, wmEvent *event, 
wmEventHandler *handler);
 void wm_widgetmap_handler_context(bContext *C, wmEventHandler *handler);
 
-void wm_widgetgrouptype_keymap_init(wmWidgetGroupTypeC *wgrouptype, 
wmKeyConfig *keyconf);
-
 wmWidget *wm_widget_find_highlighted_3D(wmWidgetMap *wmap, bContext *C, const 
wmEvent *event, unsigned char *part);
 wmWidget *wm_widget_find_highlighted(wmWidgetMap *wmap, bContext *C, const 
wmEvent *event, unsigned char *part);
 void      wm_widgetmap_set_highlighted_widget(wmWidgetMap *wmap, bContext *C, 
wmWidget *widget, unsigned char part);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to