[Bf-blender-cvs] [e3bb408] temp_widgets_c++_experiment: Use C++ version of widget-group-types where possible
Julian Eisel
noreply at git.blender.org
Sun Dec 20 19:36:34 CET 2015
Commit: e3bb4086162126240b73c054bc210a92bb593d61
Author: Julian Eisel
Date: Sun Dec 20 19:35:25 2015 +0100
Branches: temp_widgets_c++_experiment
https://developer.blender.org/rBe3bb4086162126240b73c054bc210a92bb593d61
Use C++ version of widget-group-types where possible
===================================================================
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_widgetmap.cc
===================================================================
diff --git a/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.cc b/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.cc
index fbd05c5..5aa3549 100644
--- a/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.cc
+++ b/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.cc
@@ -167,3 +167,8 @@ size_t wmWidgetGroupType::get_idname(char *r_idname)
return sizeof(this->idname);
}
+bool wmWidgetGroupType::poll_check(const bContext *C)
+{
+ return (!poll || poll(C, this));
+}
+
diff --git a/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.h b/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.h
index ea0d9c3..a5d07e4 100644
--- a/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.h
+++ b/source/blender/windowmanager/intern/widgets/wm_widgetgrouptype.h
@@ -59,6 +59,8 @@ public:
void attach_to_handler(bContext *C, struct wmEventHandler *handler, struct wmOperator *op);
size_t get_idname(char *r_idname);
+ bool poll_check(const bContext *) ATTR_WARN_UNUSED_RESULT;
+
private:
char idname[64]; /* MAX_NAME */
char name[64]; /* widget group name - displayed in UI (keymap editor) */
diff --git a/source/blender/windowmanager/intern/widgets/wm_widgetmap.cc b/source/blender/windowmanager/intern/widgets/wm_widgetmap.cc
index 08b5da8..4f3daa0 100644
--- a/source/blender/windowmanager/intern/widgets/wm_widgetmap.cc
+++ b/source/blender/windowmanager/intern/widgets/wm_widgetmap.cc
@@ -152,7 +152,7 @@ static void widgetmap_prepare_visible_widgets_3d(wmWidgetMap *wmap, ListBase *vi
wmWidget *widget;
for (wmWidgetGroup *wgroup = (wmWidgetGroup *)wmap->widgetgroups.first; wgroup; wgroup = wgroup->next) {
- if (!wgroup->type->poll || wgroup->type->poll(C, wgroup->type)) {
+ if (wgroup->type_cxx->poll_check(C)) {
for (widget = (wmWidget *)wgroup->widgets.first; widget; widget = widget->next) {
if (widget->render_3d_intersection && (widget->flag & WM_WIDGET_HIDDEN) == 0) {
BLI_addhead(visible_widgets, BLI_genericNodeN(widget));
@@ -204,7 +204,7 @@ static wmWidget *widgetmap_find_highlighted_widget(
wmWidget *widget;
for (wmWidgetGroup *wgroup = (wmWidgetGroup *)wmap->widgetgroups.first; wgroup; wgroup = wgroup->next) {
- if (!wgroup->type->poll || wgroup->type->poll(C, wgroup->type)) {
+ if (wgroup->type_cxx->poll_check(C)) {
for (widget = (wmWidget *)wgroup->widgets.first; widget; widget = widget->next) {
if (widget->intersect) {
if ((*part = widget->intersect(C, event, widget)))
More information about the Bf-blender-cvs
mailing list