[Bf-blender-cvs] [9c09a60] temp_widgets_files_refactor: Move stuff from wm_widgets.c file to proper places

Julian Eisel noreply at git.blender.org
Mon Feb 8 18:40:30 CET 2016


Commit: 9c09a6077dbbfe58eaf0a1719e28bb4f0932ddc9
Author: Julian Eisel
Date:   Mon Feb 8 18:38:14 2016 +0100
Branches: temp_widgets_files_refactor
https://developer.blender.org/rB9c09a6077dbbfe58eaf0a1719e28bb4f0932ddc9

Move stuff from wm_widgets.c file to proper places

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

M	source/blender/editors/space_graph/graph_edit.c
M	source/blender/editors/space_node/space_node.c
M	source/blender/editors/space_sequencer/sequencer_view.c
M	source/blender/editors/space_view3d/space_view3d.c
M	source/blender/windowmanager/WM_api.h
M	source/blender/windowmanager/intern/wm_event_system.c
M	source/blender/windowmanager/intern/wm_widgets.c
M	source/blender/windowmanager/widgets/WM_widgets_api.h
M	source/blender/windowmanager/widgets/wm_widgetgroup.c
M	source/blender/windowmanager/widgets/wm_widgetmap.c
M	source/blender/windowmanager/widgets/wm_widgets.h

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

diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c
index 66b5c02..cec7e0f 100644
--- a/source/blender/editors/space_graph/graph_edit.c
+++ b/source/blender/editors/space_graph/graph_edit.c
@@ -2648,7 +2648,7 @@ static int graph_widget_backdrop_transform_invoke(bContext *C, wmOperator *op, c
 	        "Backdrop Transform Widgets");
 	struct wmEventHandler *handler = WM_event_add_modal_handler(C, op);
 	BackDropTransformData *data = MEM_mallocN(sizeof(BackDropTransformData), "overdrop transform data");
-	WM_modal_handler_attach_widgetgroup(C, handler, cagetype, op);
+	WM_widgetgroup_attach_to_modal_handler(C, handler, cagetype, op);
 
 	RNA_float_set_array(op->ptr, "offset", sipo->backdrop_offset);
 	RNA_float_set(op->ptr, "scale", sipo->backdrop_zoom);
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c
index 13d865c..8e0cd42 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -654,7 +654,7 @@ static void node_main_region_init(wmWindowManager *wm, ARegion *ar)
 		BLI_addhead(&ar->widgetmaps, wmap);
 	}
 
-	WM_event_add_area_widgetmap_handlers(ar);
+	WM_widgetmaps_add_handlers(ar);
 
 	/* own keymaps */
 	keymap = WM_keymap_find(wm->defaultconf, "Node Generic", SPACE_NODE, 0);
diff --git a/source/blender/editors/space_sequencer/sequencer_view.c b/source/blender/editors/space_sequencer/sequencer_view.c
index 44857a1..00184a7 100644
--- a/source/blender/editors/space_sequencer/sequencer_view.c
+++ b/source/blender/editors/space_sequencer/sequencer_view.c
@@ -301,7 +301,7 @@ static int sequencer_overdrop_transform_invoke(bContext *C, wmOperator *op, cons
 	        "Backdrop Transform Widgets");
 	struct wmEventHandler *handler = WM_event_add_modal_handler(C, op);
 	OverDropTransformData *data = MEM_mallocN(sizeof(OverDropTransformData), "overdrop transform data");
-	WM_modal_handler_attach_widgetgroup(C, handler, cagetype, op);
+	WM_widgetgroup_attach_to_modal_handler(C, handler, cagetype, op);
 	
 	RNA_float_set_array(op->ptr, "offset", sseq->overdrop_offset);
 	RNA_float_set(op->ptr, "scale", sseq->overdrop_zoom);
@@ -475,7 +475,7 @@ static int sequencer_image_transform_widget_invoke(bContext *C, wmOperator *op,
 		return OPERATOR_CANCELLED;
 	}
 
-	WM_modal_handler_attach_widgetgroup(C, handler, cagetype, op);
+	WM_widgetgroup_attach_to_modal_handler(C, handler, cagetype, op);
 
 	copy_v2_v2_int(data->init_size, &ibuf->x);
 	data->cagetype = cagetype;
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index 5aabb3c..d8b5482 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -506,7 +506,7 @@ static void view3d_main_region_init(wmWindowManager *wm, ARegion *ar)
 		BLI_addhead(&ar->widgetmaps, wmap);
 	}
 
-	WM_event_add_area_widgetmap_handlers(ar);
+	WM_widgetmaps_add_handlers(ar);
 
 	/* object ops. */
 	
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index 7d443ea..e384bae 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -520,13 +520,6 @@ float       WM_event_tablet_data(const struct wmEvent *event, int *pen_flip, flo
 bool        WM_event_is_tablet(const struct wmEvent *event);
 
 
-/* *************** Widget API ******************** */
-
-void  WM_event_add_area_widgetmap_handlers(struct ARegion *ar);
-void  WM_modal_handler_attach_widgetgroup(struct bContext *C, struct wmEventHandler *handler,
-                                          struct wmWidgetGroupType *wgrouptype, struct wmOperator *op);
-
-
 #ifdef WITH_INPUT_IME
 bool        WM_event_is_ime_switch(const struct wmEvent *event);
 #endif
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index b743772..2297e6a 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -1723,7 +1723,7 @@ static int wm_handler_operator_call(bContext *C, ListBase *handlers, wmEventHand
 				}
 
 				/* update widgets during modal handlers */
-				wm_widget_handler_modal_update(C, event, handler);
+				wm_widgetmaps_handled_modal_update(C, event, handler);
 
 				/* remove modal handler, operator itself should have been canceled and freed */
 				if (retval & (OPERATOR_CANCELLED | OPERATOR_FINISHED)) {
diff --git a/source/blender/windowmanager/intern/wm_widgets.c b/source/blender/windowmanager/intern/wm_widgets.c
index 73b449e..6caa550 100644
--- a/source/blender/windowmanager/intern/wm_widgets.c
+++ b/source/blender/windowmanager/intern/wm_widgets.c
@@ -75,262 +75,5 @@
 #include "BPY_extern.h"
 
 
-void WM_event_add_area_widgetmap_handlers(ARegion *ar)
-{
-	for (wmWidgetMap *wmap = ar->widgetmaps.first; wmap; wmap = wmap->next) {
-		wmEventHandler *handler = MEM_callocN(sizeof(wmEventHandler), "widget handler");
 
-		handler->widgetmap = wmap;
-		BLI_addtail(&ar->handlers, handler);
-	}
-}
-
-void WM_modal_handler_attach_widgetgroup(
-        bContext *C, wmEventHandler *handler, wmWidgetGroupType *wgrouptype, wmOperator *op)
-{
-	/* maybe overly careful, but widgetgrouptype could come from a failed creation */
-	if (!wgrouptype) {
-		return;
-	}
-
-	/* now instantiate the widgetmap */
-	wgrouptype->op = op;
-
-	if (handler->op_region && !BLI_listbase_is_empty(&handler->op_region->widgetmaps)) {
-		for (wmWidgetMap *wmap = handler->op_region->widgetmaps.first; wmap; wmap = wmap->next) {
-			wmWidgetMapType *wmaptype = wmap->type;
-
-			if (wmaptype->spaceid == wgrouptype->spaceid && wmaptype->regionid == wgrouptype->regionid) {
-				handler->widgetmap = wmap;
-			}
-		}
-	}
-	
-	WM_event_add_mousemove(C);
-}
-
-
-/** \name Widget operators
- *
- * Basic operators for widget interaction with user configurable keymaps.
- *
- * \{ */
-
-
-static int widget_select_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
-{
-	ARegion *ar = CTX_wm_region(C);
-
-	bool extend = RNA_boolean_get(op->ptr, "extend");
-	bool deselect = RNA_boolean_get(op->ptr, "deselect");
-	bool toggle = RNA_boolean_get(op->ptr, "toggle");
-
-
-	for (wmWidgetMap *wmap = ar->widgetmaps.first; wmap; wmap = wmap->next) {
-		wmWidget ***sel = &wmap->wmap_context.selected_widgets;
-		wmWidget *highlighted = wmap->wmap_context.highlighted_widget;
-
-		/* deselect all first */
-		if (extend == false && deselect == false && toggle == false) {
-			wm_widgetmap_deselect_all(wmap, sel);
-			BLI_assert(*sel == NULL && wmap->wmap_context.tot_selected == 0);
-		}
-
-		if (highlighted) {
-			const bool is_selected = (highlighted->flag & WM_WIDGET_SELECTED);
-
-			if (toggle) {
-				/* toggle: deselect if already selected, else select */
-				deselect = is_selected;
-			}
-
-			if (deselect) {
-				if (is_selected)
-					wm_widget_deselect(C, wmap, highlighted);
-			}
-			else {
-				wm_widget_select(C, wmap, highlighted);
-			}
-
-			return OPERATOR_FINISHED;
-		}
-		else {
-			BLI_assert(0);
-			return (OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH);
-		}
-	}
-
-	return OPERATOR_PASS_THROUGH;
-}
-
-void WIDGETGROUP_OT_widget_select(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name = "Widget Select";
-	ot->description = "Select the currently highlighted widget";
-	ot->idname = "WIDGETGROUP_OT_widget_select";
-
-	/* api callbacks */
-	ot->invoke = widget_select_invoke;
-
-	ot->flag = OPTYPE_UNDO;
-
-	WM_operator_properties_mouse_select(ot);
-}
-
-typedef struct WidgetTweakData {
-	wmWidgetMap *wmap;
-	wmWidget *active;
-
-	int init_event; /* initial event type */
-	int flag;       /* tweak flags */
-} WidgetTweakData;
-
-static void widget_tweak_finish(bContext *C, wmOperator *op, const bool cancel)
-{
-	WidgetTweakData *wtweak = op->customdata;
-	if (wtweak->active->exit) {
-		wtweak->active->exit(C, wtweak->active, cancel);
-	}
-	wm_widgetmap_set_active_widget(wtweak->wmap, C, NULL, NULL);
-	MEM_freeN(wtweak);
-}
-
-static int widget_tweak_modal(bContext *C, wmOperator *op, const wmEvent *event)
-{
-	WidgetTweakData *wtweak = op->customdata;
-	wmWidget *widget = wtweak->active;
-
-	if (!widget) {
-		BLI_assert(0);
-		return (OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH);
-	}
-
-	if (event->type == wtweak->init_event && event->val == KM_RELEASE) {
-		widget_tweak_finish(C, op, false);
-		return OPERATOR_FINISHED;
-	}
-
-
-	if (event->type == EVT_MODAL_MAP) {
-		switch (event->val) {
-			case TWEAK_MODAL_CANCEL:
-				widget_tweak_finish(C, op, true);
-				return OPERATOR_CANCELLED;
-			case TWEAK_MODAL_CONFIRM:
-				widget_tweak_finish(C, op, false);
-				return OPERATOR_FINISHED;
-			case TWEAK_MODAL_PRECISION_ON:
-				wtweak->flag |= WM_WIDGET_TWEAK_PRECISE;
-				break;
-			case TWEAK_MODAL_PRECISION_OFF:
-				wtweak->flag &= ~WM_WIDGET_TWEAK_PRECISE;
-				break;
-		}
-	}
-
-	/* handle widget */
-	if (widget->handler) {
-		widget->handler(C, event, widget, wtweak->flag);
-	}
-
-	/* Ugly hack to send widget events */
-	((wmEvent *)event)->type = EVT_WIDGET_UPDATE;
-
-	/* always return PASS_THROUGH so modal handlers
-	 * with widgets attached can update */
-	return OPERATOR_PASS_THROUGH;
-}
-
-static int widget_tweak_invoke(bContext *C, wmOperator *op, const wmEvent *event)
-{
-	ARegion *ar = CTX_wm_region(C);
-	wmWidgetMap *wmap;
-	wmWidget *widget;
-
-	for (wmap = ar->widgetmaps.first; wmap; wmap = wmap->next)
-		if ((widget = wmap->wmap_context.highlighted_widget))
-			break;
-
-	if (!widget) {
-		/* wm_handlers_do_intern shouldn't let this happen */
-		BLI_assert(0);
-		return (OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH);
-	}
-
-
-	/* activate highlighted widget */
-	wm_widgetmap_set_active_widget(wmap, C, event, widget);
-
-	/* XXX temporary workaround for modal widget operator
-	 * conflicting with modal operator attached to widget */
-	if (widget->opname) {
-		wmOperatorType *ot = WM_operatortype_find(widget->opname, true);
-		if (ot->modal) {
-			return OPERATOR_FINISHED;
-		}
-	}
-
-
-	WidgetTweakData *wtweak = MEM_mallocN(sizeof(WidgetTweakData), __func__);
-
-	wtweak->init_event = event

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list