Commit: 0fb37c710fc2aa7869f7d2cd32ba50e4209eb771
Author: Antony Riakiotakis
Date:   Wed Dec 10 12:46:15 2014 +0100
Branches: wiggly-widgets
https://developer.blender.org/rB0fb37c710fc2aa7869f7d2cd32ba50e4209eb771

Add back idnames to the widgetmaps, we could well need to define both
for different transform areas.

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

M       source/blender/editors/space_node/space_node.c
M       source/blender/editors/space_sequencer/sequencer_ops.c
M       source/blender/editors/space_sequencer/sequencer_view.c
M       source/blender/editors/space_view3d/space_view3d.c
M       source/blender/makesrna/intern/rna_wm.c
M       source/blender/windowmanager/WM_api.h
M       source/blender/windowmanager/WM_types.h
M       source/blender/windowmanager/intern/wm_widgets.c

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

diff --git a/source/blender/editors/space_node/space_node.c 
b/source/blender/editors/space_node/space_node.c
index 79b7411..a6f60ff 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -342,7 +342,7 @@ static SpaceLink *node_new(const bContext *UNUSED(C))
 
        /* main area */
        ar = MEM_callocN(sizeof(ARegion), "main area for node");
-       ar->widgetmap = WM_widgetmap_from_type(SPACE_NODE, RGN_TYPE_WINDOW, 
true);
+       ar->widgetmap = WM_widgetmap_from_type("View3D", SPACE_NODE, 
RGN_TYPE_WINDOW, true);
 
        BLI_addtail(&snode->regionbase, ar);
        ar->regiontype = RGN_TYPE_WINDOW;
@@ -664,7 +664,7 @@ static void node_main_area_init(wmWindowManager *wm, 
ARegion *ar)
 
        /* make sure we have a widgetmap - sucks a bit to do it here, but works 
for now */
        if (!ar->widgetmap) {
-               ar->widgetmap = WM_widgetmap_from_type(SPACE_NODE, 
RGN_TYPE_WINDOW, false);
+               ar->widgetmap = WM_widgetmap_from_type("Node_Canvas", 
SPACE_NODE, RGN_TYPE_WINDOW, false);
        }
 
        WM_event_add_widget_handler(ar);
@@ -886,13 +886,10 @@ static void WIDGETGROUP_node_transform_update(const 
struct bContext *C, struct w
 
 static void node_widgets(void)
 {
-       struct wmWidgetGroupType *wgroup_node_transform;
-
-       WM_widgetmaptype_find(SPACE_NODE, RGN_TYPE_WINDOW, false, true);
+       /* create the widgetmap for the area here */
+       WM_widgetmaptype_find("Node_Canvas", SPACE_NODE, RGN_TYPE_WINDOW, 
false, true);
        
-       wgroup_node_transform = 
WM_widgetgrouptype_new(WIDGETGROUP_node_transform_poll, 
WIDGETGROUP_node_transform_update, SPACE_NODE, RGN_TYPE_WINDOW, false);
-       /* create the widgetmap here */
-       WM_widgetgrouptype_register(NULL, wgroup_node_transform);
+       WM_widgetgrouptype_new(WIDGETGROUP_node_transform_poll, 
WIDGETGROUP_node_transform_update, NULL, "Node_Canvas", SPACE_NODE, 
RGN_TYPE_WINDOW, false);
 }
 
 /* only called once, from space/spacetypes.c */
diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c 
b/source/blender/editors/space_sequencer/sequencer_ops.c
index d62ee51..af9e33f 100644
--- a/source/blender/editors/space_sequencer/sequencer_ops.c
+++ b/source/blender/editors/space_sequencer/sequencer_ops.c
@@ -123,7 +123,7 @@ void sequencer_operatortypes(void)
 
        /* sequencer_view.h */
        WM_operatortype_append(SEQUENCER_OT_sample);
-       WM_operatortype_append(SEQUENCER_OT_backdrop_transform);        
+       WM_operatortype_append(SEQUENCER_OT_backdrop_transform);
 }
 
 
@@ -199,6 +199,8 @@ void sequencer_keymap(wmKeyConfig *keyconf)
        WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all", HOMEKEY, KM_PRESS, 
0, 0);
        WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all", NDOF_BUTTON_FIT, 
KM_PRESS, 0, 0);
        WM_keymap_add_item(keymap, "SEQUENCER_OT_view_selected", PADPERIOD, 
KM_PRESS, 0, 0);
+       
+       WM_keymap_add_item(keymap, "SEQUENCER_OT_backdrop_transform", VKEY, 
KM_PRESS, 0, 0);
 
        kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_strip_jump", PAGEUPKEY, 
KM_PRESS, 0, 0);
        RNA_boolean_set(kmi->ptr, "next", true);
diff --git a/source/blender/editors/space_sequencer/sequencer_view.c 
b/source/blender/editors/space_sequencer/sequencer_view.c
index 261e261..f6befd5 100644
--- a/source/blender/editors/space_sequencer/sequencer_view.c
+++ b/source/blender/editors/space_sequencer/sequencer_view.c
@@ -247,7 +247,7 @@ static int sequencer_backdrop_transform_poll(bContext *C)
        SpaceSeq *sseq = CTX_wm_space_seq(C);
        ARegion *ar = CTX_wm_region(C);
 
-       return (sseq && ar && ar->type == RGN_TYPE_WINDOW && (sseq->draw_flag & 
SEQ_DRAW_BACKDROP));
+       return (sseq && ar && ar->type->regionid == RGN_TYPE_WINDOW && 
(sseq->draw_flag & SEQ_DRAW_BACKDROP));
 }
 
 static void widgetgroup_backdrop_draw(const struct bContext *C, struct 
wmWidgetGroup *wgroup)
@@ -268,7 +268,7 @@ static void widgetgroup_backdrop_draw(const struct bContext 
*C, struct wmWidgetG
 static int sequencer_backdrop_transform_invoke(bContext *C, wmOperator *op, 
const wmEvent *UNUSED(event))
 {
        /* no poll, lives always for the duration of the operator */
-       wmWidgetGroupType *cagetype = WM_widgetgrouptype_new(NULL, 
widgetgroup_backdrop_draw, SPACE_SEQ, RGN_TYPE_WINDOW, false);
+       wmWidgetGroupType *cagetype = WM_widgetgrouptype_new(NULL, 
widgetgroup_backdrop_draw, CTX_data_main(C), "Seq_Canvas", SPACE_SEQ, 
RGN_TYPE_WINDOW, false);
        
        WM_event_add_modal_handler(C, op);
        WM_event_add_widget_modal_handler(C, cagetype, op);
@@ -294,6 +294,8 @@ static int sequencer_backdrop_transform_modal(bContext *C, 
wmOperator *op, const
 
 void SEQUENCER_OT_backdrop_transform(struct wmOperatorType *ot)
 {
+       float default_offset[2] = {0.0f, 0.0f};
+       
        /* identifiers */
        ot->name = "Change Data/Files";
        ot->idname = "SEQUENCER_OT_backdrop_transform";
@@ -305,6 +307,8 @@ void SEQUENCER_OT_backdrop_transform(struct wmOperatorType 
*ot)
        ot->poll = sequencer_backdrop_transform_poll;
 
        /* flags */
-       ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;       
+       ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+       
+       RNA_def_float_array(ot->srna, "offset", 2, default_offset, FLT_MIN, 
FLT_MAX, "Offset", "Offset of the backdrop", FLT_MIN, FLT_MAX);
 }
 
diff --git a/source/blender/editors/space_view3d/space_view3d.c 
b/source/blender/editors/space_view3d/space_view3d.c
index 6c15ed8..e2c23a7 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -386,7 +386,7 @@ static SpaceLink *view3d_new(const bContext *C)
        
        BLI_addtail(&v3d->regionbase, ar);
        ar->regiontype = RGN_TYPE_WINDOW;
-       ar->widgetmap = WM_widgetmap_from_type(SPACE_VIEW3D, RGN_TYPE_WINDOW, 
true);
+       ar->widgetmap = WM_widgetmap_from_type("View3D", SPACE_VIEW3D, 
RGN_TYPE_WINDOW, true);
        
        ar->regiondata = MEM_callocN(sizeof(RegionView3D), "region view3d");
 
@@ -556,7 +556,7 @@ static void view3d_main_area_init(wmWindowManager *wm, 
ARegion *ar)
 
        /* make sure we have a widgetmap - sucks a bit to do it here, but works 
for now */
        if (!ar->widgetmap) {
-               ar->widgetmap = WM_widgetmap_from_type(SPACE_VIEW3D, 
RGN_TYPE_WINDOW, true);
+               ar->widgetmap = WM_widgetmap_from_type("View3D", SPACE_VIEW3D, 
RGN_TYPE_WINDOW, true);
        }
 
        WM_event_add_widget_handler(ar);
@@ -780,14 +780,11 @@ static void WIDGETGROUP_shapekey_draw(const struct 
bContext *C, struct wmWidgetG
 
 static void view3d_widgets(void)
 {
-       wmWidgetGroupType *wgroup_light,*wgroup_camera, *wgroup_shapekey;
-       // struct wmWidgetGroupType *wgroup_manipulator;
-
-       WM_widgetmaptype_find(SPACE_VIEW3D, RGN_TYPE_WINDOW, true, true);
+       WM_widgetmaptype_find("View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW, true, 
true);
        
-       wgroup_light = WM_widgetgrouptype_new(WIDGETGROUP_lamp_poll, 
WIDGETGROUP_lamp_draw, SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
-       wgroup_camera = WM_widgetgrouptype_new(WIDGETGROUP_camera_poll, 
WIDGETGROUP_camera_draw, SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
-       wgroup_shapekey = WM_widgetgrouptype_new(WIDGETGROUP_shapekey_poll, 
WIDGETGROUP_shapekey_draw, SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
+       WM_widgetgrouptype_new(WIDGETGROUP_lamp_poll, WIDGETGROUP_lamp_draw, 
NULL, "View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
+       WM_widgetgrouptype_new(WIDGETGROUP_camera_poll, 
WIDGETGROUP_camera_draw, NULL, "View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
+       WM_widgetgrouptype_new(WIDGETGROUP_shapekey_poll, 
WIDGETGROUP_shapekey_draw, NULL, "View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
 
 #if 0
        wgroup_manipulator = WM_widgetgrouptype_new(
@@ -795,10 +792,6 @@ static void view3d_widgets(void)
                WIDGETGROUP_manipulator_update);
 #endif
        
-       //WM_widgetgrouptype_register(wmaptype, wgroup_manipulator);
-       WM_widgetgrouptype_register(NULL, wgroup_light);
-       WM_widgetgrouptype_register(NULL, wgroup_camera);
-       WM_widgetgrouptype_register(NULL, wgroup_shapekey);
 }
 
 
diff --git a/source/blender/makesrna/intern/rna_wm.c 
b/source/blender/makesrna/intern/rna_wm.c
index 3265890..e1273d1 100644
--- a/source/blender/makesrna/intern/rna_wm.c
+++ b/source/blender/makesrna/intern/rna_wm.c
@@ -1396,7 +1396,6 @@ static void rna_WidgetGroup_unregister(struct Main 
*bmain, StructRNA *type)
        //RNA_struct_free_extension(type, &wgrouptype->ext);
 
        WM_widgetgrouptype_unregister(bmain, wgrouptype);
-       MEM_freeN(wgrouptype);
        //WM_operatortype_remove_ptr(ot);
 
        /* not to be confused with the RNA_struct_free that 
WM_operatortype_remove calls, they are 2 different srna's */
@@ -1501,7 +1500,7 @@ static StructRNA *rna_WidgetGroup_register(Main *bmain, 
ReportList *reports, voi
        }
        
        /* check if the area supports widgets */
-       if (!WM_widgetmaptype_find(dummywgt.spaceid, dummywgt.regionid, 
dummywgt.is_3d, false)) {
+       if (!WM_widgetmaptype_find(dummywgt.mapidname ,dummywgt.spaceid, 
dummywgt.regionid, dummywgt.is_3d, false)) {
                BKE_reportf(reports, RPT_ERROR, "Area type does not support 
widgets");
                return NULL;
        }
@@ -1528,10 +1527,9 @@ static StructRNA *rna_WidgetGroup_register(Main *bmain, 
ReportList *reports, voi
        dummywgt.poll = (have_function[0]) ? widgetgroup_poll : NULL;
        dummywgt.draw = (have_function[1]) ? widgetgroup_draw : NULL;
 
-       wgrouptype = WM_widgetgrouptype_new(NULL, NULL, 0, 0, 0);
+       wgrouptype = WM_widgetgrouptype_new(dummywgt.poll, dummywgt.draw, 
bmain, dummywgt.mapidname, dummywgt.spaceid, dummywgt.regionid, dummywgt.is_3d);
        memcpy(wgrouptype, &dummywgt, sizeof(dummywgt));
        
-       WM_widgetgrouptype_register(bmain, wgrouptype);
        /* update while blender is running */
        WM_main_add_notifier(NC_SCREEN | NA_EDITED, NULL);
 
diff --git a/source/blender/windowmanager/WM_api.h 
b/source/blender/windowmanager/WM_api.h
index 33e922e..6ad62c4 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -471,9 +471,6 @@ bool        WM_event_is_tablet(const struct wmEvent *event);
 
 
 /* widget API */
-struct wmWidgetGroupType *WM_widgetgrouptype_new(int (*poll)(const struct 
bContext *, struct wmWidgetGroupType *),
-                                                 void (*draw)(const struct 
bContext *, struct wmWidgetGroup *), short spaceid, short regionid, bool is_3d);
-
 struct wmWidget *WM_widget_new(void (*draw)(struct wmWidget *, const struct 
bContext *),
                                void (*render_3d_intersection)(const struct 
bContext *, struct wmWidget *, int),
                                int  (*intersect)(struct bContext

@@ Diff output truncated at 10240 characters. @@

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

Reply via email to