[Bf-blender-cvs] [81e2e1b] wiggly-widgets: Widget API: remove unused identifier member
Campbell Barton
noreply at git.blender.org
Sat Dec 6 15:12:20 CET 2014
Commit: 81e2e1be41085f5523fc6e102348e79bf31fbf54
Author: Campbell Barton
Date: Sat Dec 6 15:03:42 2014 +0100
Branches: wiggly-widgets
https://developer.blender.org/rB81e2e1be41085f5523fc6e102348e79bf31fbf54
Widget API: remove unused identifier member
also comment some of the code.
===================================================================
M source/blender/editors/space_node/space_node.c
M source/blender/editors/space_view3d/space_view3d.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 43819f8..68f54d7 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -343,7 +343,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("Node", SPACE_NODE, RGN_TYPE_WINDOW, true);
+ ar->widgetmap = WM_widgetmap_from_type(SPACE_NODE, RGN_TYPE_WINDOW, true);
BLI_addtail(&snode->regionbase, ar);
ar->regiontype = RGN_TYPE_WINDOW;
@@ -664,8 +664,9 @@ static void node_main_area_init(wmWindowManager *wm, ARegion *ar)
WM_event_add_dropbox_handler(&ar->handlers, lb);
/* 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("Node", SPACE_NODE, RGN_TYPE_WINDOW, false);
+ if (!ar->widgetmap) {
+ ar->widgetmap = WM_widgetmap_from_type(SPACE_NODE, RGN_TYPE_WINDOW, false);
+ }
WM_event_add_widget_handler(ar);
@@ -887,9 +888,11 @@ static void WIDGETGROUP_node_transform_update(struct wmWidgetGroup *wgroup, cons
static void node_widgets(void)
{
- struct wmWidgetMapType *wmaptype = WM_widgetmaptype_find("Node", SPACE_NODE, RGN_TYPE_WINDOW, false);
- struct wmWidgetGroupType *wgroup_node_transform = WM_widgetgrouptype_new(WIDGETGROUP_node_transform_poll,
- WIDGETGROUP_node_transform_update);
+ struct wmWidgetMapType *wmaptype;
+ struct wmWidgetGroupType *wgroup_node_transform;
+
+ wgroup_node_transform = WM_widgetgrouptype_new(WIDGETGROUP_node_transform_poll, WIDGETGROUP_node_transform_update);
+ wmaptype = WM_widgetmaptype_find(SPACE_NODE, RGN_TYPE_WINDOW, false);
WM_widgetgrouptype_register(wmaptype, wgroup_node_transform);
}
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index 3e2558d..5b810fe 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("View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
+ ar->widgetmap = WM_widgetmap_from_type(SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
ar->regiondata = MEM_callocN(sizeof(RegionView3D), "region view3d");
@@ -555,8 +555,9 @@ static void view3d_main_area_init(wmWindowManager *wm, ARegion *ar)
WM_event_add_dropbox_handler(&ar->handlers, lb);
/* 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("View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
+ if (!ar->widgetmap) {
+ ar->widgetmap = WM_widgetmap_from_type(SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
+ }
WM_event_add_widget_handler(ar);
}
@@ -779,21 +780,21 @@ static void WIDGETGROUP_shapekey_draw(struct wmWidgetGroup *wgroup, const struct
static void view3d_widgets(void)
{
- struct wmWidgetMapType *wmaptype = WM_widgetmaptype_find("View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
- /*
- struct wmWidgetGroupType *wgroup_manipulator = WM_widgetgrouptype_new(WIDGETGROUP_manipulator_create,
- WIDGETGROUP_manipulator_poll,
- WIDGETGROUP_manipulator_update,
- WIDGETGROUP_manipulator_free);
- */
- struct wmWidgetGroupType *wgroup_light = WM_widgetgrouptype_new(WIDGETGROUP_lamp_poll,
- WIDGETGROUP_lamp_draw);
-
- struct wmWidgetGroupType *wgroup_camera = WM_widgetgrouptype_new(WIDGETGROUP_camera_poll,
- WIDGETGROUP_camera_draw);
-
- struct wmWidgetGroupType *wgroup_shapekey = WM_widgetgrouptype_new(WIDGETGROUP_shapekey_poll,
- WIDGETGROUP_shapekey_draw);
+ struct wmWidgetMapType *wmaptype = WM_widgetmaptype_find(SPACE_VIEW3D, RGN_TYPE_WINDOW, true);
+ wmWidgetGroupType *wgroup_light,*wgroup_camera, *wgroup_shapekey;
+ // struct wmWidgetGroupType *wgroup_manipulator;
+
+ wgroup_light = WM_widgetgrouptype_new(WIDGETGROUP_lamp_poll, WIDGETGROUP_lamp_draw);
+ wgroup_camera = WM_widgetgrouptype_new(WIDGETGROUP_camera_poll, WIDGETGROUP_camera_draw);
+ wgroup_shapekey = WM_widgetgrouptype_new(WIDGETGROUP_shapekey_poll, WIDGETGROUP_shapekey_draw);
+
+#if 0
+ wgroup_manipulator = WM_widgetgrouptype_new(
+ WIDGETGROUP_manipulator_create,
+ WIDGETGROUP_manipulator_poll,
+ WIDGETGROUP_manipulator_update,
+ WIDGETGROUP_manipulator_free);
+#endif
//WM_widgetgrouptype_register(wmaptype, wgroup_manipulator);
WM_widgetgrouptype_register(wmaptype, wgroup_light);
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index b3aba29..d5fdad9 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -470,9 +470,9 @@ bool WM_event_is_tablet(const struct wmEvent *event);
/* widget API */
-struct wmWidgetGroupType *WM_widgetgrouptype_new(bool (*poll)(struct wmWidgetGroup *, const struct bContext *),
- void (*draw)(struct wmWidgetGroup *, const struct bContext *)
- );
+struct wmWidgetGroupType *WM_widgetgrouptype_new(
+ bool (*poll)(struct wmWidgetGroup *, const struct bContext *),
+ void (*draw)(struct wmWidgetGroup *, const struct bContext *));
struct wmWidget *WM_widget_new(void (*draw)(struct wmWidget *, const struct bContext *),
void (*render_3d_intersection)(const struct bContext *, struct wmWidget *, int),
@@ -499,14 +499,14 @@ void WM_widget_set_scale(struct wmWidget *widget, float scale);
void *WM_widgetgroup_customdata(struct wmWidgetGroup *wgroup);
void WM_widgetgroup_customdata_set(struct wmWidgetGroup *wgroup, void *data);
-struct wmWidgetMapType *WM_widgetmaptype_find(const char *idname, int spaceid, int regionid, bool is_3d);
+struct wmWidgetMapType *WM_widgetmaptype_find(int spaceid, int regionid, bool is_3d);
bool WM_widgetgrouptype_register(struct wmWidgetMapType *wmap, struct wmWidgetGroupType *wgroup);
void WM_widgetgrouptype_unregister(struct wmWidgetMapType *wmap, struct wmWidgetGroupType *wgroup);
/* creates a widgetmap with all registered widgets for that type */
-struct wmWidgetMap *WM_widgetmap_from_type(const char *idname, int spaceid, int regionid, bool is_3d);
-void WM_widgetmap_delete(struct wmWidgetMap *);
+struct wmWidgetMap *WM_widgetmap_from_type(int spaceid, int regionid, bool is_3d);
+void WM_widgetmap_delete(struct wmWidgetMap *wmap);
void WM_widgetmaptypes_free(void);
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h
index 8a646dd..cee1cb9 100644
--- a/source/blender/windowmanager/WM_types.h
+++ b/source/blender/windowmanager/WM_types.h
@@ -508,8 +508,6 @@ typedef struct wmTimer {
int sleep; /* internal, put timers to sleep when needed */
} wmTimer;
-typedef struct wmWidget wmWidget;
-
typedef struct wmOperatorType {
const char *name; /* text for ui, undo */
const char *idname; /* unique identifier */
@@ -655,6 +653,8 @@ typedef struct wmDropBox {
* Also they */
typedef struct wmWidget wmWidget;
typedef struct wmWidgetGroup wmWidgetGroup;
+typedef struct wmWidgetMapType wmWidgetMapType;
+typedef struct wmWidgetGroupType wmWidgetGroupType;
/* *************** migrated stuff, clean later? ************** */
diff --git a/source/blender/windowmanager/intern/wm_widgets.c b/source/blender/windowmanager/intern/wm_widgets.c
index 613b753..9c296ef 100644
--- a/source/blender/windowmanager/intern/wm_widgets.c
+++ b/source/blender/windowmanager/intern/wm_widgets.c
@@ -107,11 +107,20 @@ typedef struct wmWidgetGroupType {
int flag;
} wmWidgetGroupType;
+/**
+ * This is a container for all widget types that can be instansiated in a area.
+ * (similar to dropboxes).
+ *
+ * \note There is only ever one of these for every (area, region) combination.
+ */
typedef struct wmWidgetMapType {
struct wmWidgetMapType *next, *prev;
short spaceid, regionid;
- char idname[KMAP_MAX_NAME];
- /* check if widgetmap does 3D drawing */
+ /**
+ * Check if widgetmap does 3D drawing
+ * (uses a different kind of interaction),
+ * - 3d: use glSelect buffer.
+ * - 2d: use simple cursor position intersection test. */
bool is_3d;
/* types of widgetgroups for this widgetmap type */
ListBase widgetgrouptypes;
@@ -122,8 +131,9 @@ typedef struct wmWidgetMapType {
* area type can query the widgetbox to do so */
static ListBase widgetmaptypes = {NULL, NULL};
-struct wmWidgetGroupType *WM_widgetgrouptype_new(bool (*poll)(struct wmWidgetGroup *, const struct bContext *C),
- void (*draw)(struct wmWidgetGroup *, const struct bContext *))
+struct wmWidgetGroupType *WM_widgetgrouptype_new(
+ bool (*poll)(struct wmWidgetGroup *, const struct bContext *C),
+ void (*draw)(struct wmWidgetGroup *, const struct bContext *))
{
wmWidgetGroupType *wgrouptype;
@@ -421,17 +431,17 @@ void WM_widget_set_scale(struct wmWidget *widget, float scale)
}
-wmWidgetMapType *WM_widgetmaptype_find(const char *idname, int spaceid, int regionid, bool is_3d)
+wmWidgetMapType *WM_widgetmaptype_find(int spaceid, int regionid, bool is_3d)
{
wmWidgetMapType *wmaptype;
- for (wmaptype = widgetmaptypes.first; wmaptype; wmaptype = wmaptype->next)
- if (wmaptype->spaceid == spaceid && wmaptype->regionid == regionid && wmaptype->is_3d == is_3d)
- if (0 == strncmp(idname, wmaptype->idname, KMAP_MAX_NAME))
- return wmaptype;
+ for (wmaptype = widgetmaptypes.first; wmaptype; wmaptype = wmaptype->next) {
+
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list