[Bf-blender-cvs] [9103166] wiggly-widgets: Make color a property for all widgets, not only for certain widget types
Julian Eisel
noreply at git.blender.org
Mon Aug 24 17:34:35 CEST 2015
Commit: 910316681accbe6d787eccb0335bfc35c1eb1371
Author: Julian Eisel
Date: Mon Aug 24 17:29:34 2015 +0200
Branches: wiggly-widgets
https://developer.blender.org/rB910316681accbe6d787eccb0335bfc35c1eb1371
Make color a property for all widgets, not only for certain widget types
===================================================================
M source/blender/editors/object/object_lamp.c
M source/blender/editors/space_view3d/space_view3d.c
M source/blender/editors/transform/manipulator_widget.c
M source/blender/windowmanager/WM_api.h
M source/blender/windowmanager/intern/wm_generic_widgets.c
M source/blender/windowmanager/intern/wm_widgets.c
M source/blender/windowmanager/wm.h
===================================================================
diff --git a/source/blender/editors/object/object_lamp.c b/source/blender/editors/object/object_lamp.c
index a37b2bc..558a85d 100644
--- a/source/blender/editors/object/object_lamp.c
+++ b/source/blender/editors/object/object_lamp.c
@@ -227,7 +227,7 @@ void WIDGETGROUP_lamp_draw(const struct bContext *C, struct wmWidgetGroup *wgrou
widget = WIDGET_arrow_new(wgroup, propname, WIDGET_ARROW_STYLE_INVERTED);
- WIDGET_arrow_set_color(widget, color_lamp, color_hi_lamp);
+ WM_widget_set_colors(widget, color_lamp, color_hi_lamp);
RNA_pointer_create(&la->id, &RNA_Lamp, la, &ptr);
WM_widget_set_origin(widget, ob->obmat[3]);
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index fa4a840..fdaa385 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -753,8 +753,8 @@ static void WIDGETGROUP_camera_draw(const struct bContext *C, struct wmWidgetGro
widget = WIDGET_arrow_new(wgroup, propname, WIDGET_ARROW_STYLE_CROSS);
WM_widget_set_draw_on_hover_only(widget, true);
WM_widget_set_3d_scale(widget, false);
- WIDGET_arrow_set_color(widget, color_camera, color_hi_camera);
-
+ WM_widget_set_colors(widget, color_camera, color_hi_camera);
+
RNA_pointer_create(&ca->id, &RNA_Camera, ca, &cameraptr);
WM_widget_set_origin(widget, ob->obmat[3]);
WM_widget_property(widget, ARROW_SLOT_OFFSET_WORLD_SPACE, &cameraptr, propname);
@@ -864,7 +864,7 @@ static void WIDGETGROUP_armature_facemap_draw(const struct bContext *C, struct w
if ((prop = RNA_struct_find_property(opptr, "release_confirm"))) {
RNA_property_boolean_set(opptr, prop, true);
}
- WIDGET_facemap_set_color(widget, color_shape);
+ WM_widget_set_colors(widget, color_shape, color_shape);
WM_widget_set_draw_on_hover_only(widget, true);
}
}
diff --git a/source/blender/editors/transform/manipulator_widget.c b/source/blender/editors/transform/manipulator_widget.c
index 0be15a7..3a4f700 100644
--- a/source/blender/editors/transform/manipulator_widget.c
+++ b/source/blender/editors/transform/manipulator_widget.c
@@ -1145,6 +1145,7 @@ void WIDGETGROUP_manipulator_draw(const struct bContext *C, struct wmWidgetGroup
manipulator_get_axis_color(rv3d, axis_idx, col, col_hi);
manipulator_get_axis_constraint(axis_idx, constraint_axis);
WM_widget_set_origin(axis, rv3d->twmat[3]);
+ WM_widget_set_colors(axis, col, col_hi);
/* custom handler! */
axis->handler = manipulator_handler;
@@ -1158,7 +1159,6 @@ void WIDGETGROUP_manipulator_draw(const struct bContext *C, struct wmWidgetGroup
manipulator_line_vec(v3d, line_vec, axis_type);
WIDGET_arrow_set_direction(axis, rv3d->twmat[aidx_norm]);
- WIDGET_arrow_set_color(axis, col, col_hi);
WIDGET_arrow_set_line_vec(axis, (const float (*)[3])line_vec, ARRAY_SIZE(line_vec));
WM_widget_set_line_width(axis, MAN_AXIS_LINE_WIDTH);
break;
@@ -1167,7 +1167,6 @@ void WIDGETGROUP_manipulator_draw(const struct bContext *C, struct wmWidgetGroup
case MAN_AXIS_ROT_Z:
WM_widget_set_line_width(axis, MAN_AXIS_LINE_WIDTH);
WIDGET_dial_set_direction(axis, rv3d->twmat[aidx_norm]);
- WIDGET_dial_set_color(axis, col, col_hi);
break;
case MAN_AXIS_TRANS_XY:
case MAN_AXIS_TRANS_YZ:
@@ -1202,7 +1201,6 @@ void WIDGETGROUP_manipulator_draw(const struct bContext *C, struct wmWidgetGroup
WM_widget_set_scale(axis, 0.07f);
WM_widget_set_origin(axis, origin);
WIDGET_plane_set_direction(axis, rv3d->twmat[aidx_norm - 1 > -1 ? aidx_norm - 1 : aidx_norm - 1]);
- WIDGET_plane_set_color(axis, col);
break;
}
case MAN_AXIS_TRANS_C:
@@ -1212,7 +1210,6 @@ void WIDGETGROUP_manipulator_draw(const struct bContext *C, struct wmWidgetGroup
WM_widget_set_scale(axis, 0.2f);
}
WIDGET_dial_set_direction(axis, rv3d->viewinv[2]);
- WIDGET_dial_set_color(axis, col, col_hi);
break;
}
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index 28f960a..bbdf1ab 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -520,6 +520,7 @@ void WM_widget_set_draw_on_hover_only(struct wmWidget *widget, const bool draw);
void WM_widget_set_scene_depth(struct wmWidget *widget, const bool scene);
void WM_widget_set_scale(struct wmWidget *widget, float scale);
void WM_widget_set_line_width(struct wmWidget *widget, const float line_width);
+void WM_widget_set_colors(struct wmWidget *widget, const float col[4], const float col_hi[4]);
struct wmWidgetMapType *WM_widgetmaptype_find(const char *idname, const int spaceid, const int regionid,
const bool is_3d, const bool create);
@@ -574,19 +575,16 @@ enum {
};
struct wmWidget *WIDGET_arrow_new(struct wmWidgetGroup *wgroup, const char *name, const int style);
-void WIDGET_arrow_set_color(struct wmWidget *widget, const float color[4], const float color_highlight[4]);
void WIDGET_arrow_set_direction(struct wmWidget *widget, const float direction[3]);
void WIDGET_arrow_set_up_vector(struct wmWidget *widget, const float direction[3]);
void WIDGET_arrow_set_line_vec(struct wmWidget *widget, const float (*vec)[3], const int tot_points);
void WIDGET_arrow_set_scale(struct wmWidget *widget, const float scale);
struct wmWidget *WIDGET_dial_new(struct wmWidgetGroup *wgroup, const char *name, const int style);
-void WIDGET_dial_set_color(struct wmWidget *widget, const float color[4], const float color_highlight[4]);
void WIDGET_dial_set_direction(struct wmWidget *widget, const float direction[3]);
struct wmWidget *WIDGET_plane_new(struct wmWidgetGroup *wgroup, const char *name, const int style);
void WIDGET_plane_set_direction(struct wmWidget *widget, const float direction[3]);
-void WIDGET_plane_set_color(struct wmWidget *widget, const float color[4]);
struct wmWidget *WIDGET_rect_transform_new(
struct wmWidgetGroup *wgroup, const char *name, const int style,
@@ -596,7 +594,6 @@ void WIDGET_rect_transform_set_offset(struct wmWidget *widget, const float offse
struct wmWidget *WIDGET_facemap_new(
struct wmWidgetGroup *wgroup, const char *name, const int style,
struct Object *ob, const int facemap);
-void WIDGET_facemap_set_color(struct wmWidget *widget, const float color[4]);
#ifdef WITH_INPUT_IME
diff --git a/source/blender/windowmanager/intern/wm_generic_widgets.c b/source/blender/windowmanager/intern/wm_generic_widgets.c
index 3f1ea11..de5710d 100644
--- a/source/blender/windowmanager/intern/wm_generic_widgets.c
+++ b/source/blender/windowmanager/intern/wm_generic_widgets.c
@@ -160,8 +160,6 @@ typedef struct ArrowWidget {
int flag;
float direction[3];
float up[3];
- float color[4];
- float color_highlight[4];
float (*line)[3]; /* custom coords for arrow line drawing */
int tot_line_points; /* amount of points for arrow line drawing */
float offset;
@@ -270,10 +268,10 @@ static void arrow_draw_intern(ArrowWidget *arrow, const bool select, const bool
glMultMatrixf(mat);
if (highlight && !(arrow->widget.flag & WM_WIDGET_DRAW_HOVER)) {
- glColor4fv(arrow->color_highlight);
+ glColor4fv(arrow->widget.col_hi);
}
else {
- glColor4fv(arrow->color);
+ glColor4fv(arrow->widget.col);
}
glEnable(GL_BLEND);
@@ -536,7 +534,10 @@ wmWidget *WIDGET_arrow_new(wmWidgetGroup *wgroup, const char *name, const int st
arrow->widget.render_3d_intersection = widget_arrow_render_3d_intersect;
arrow->widget.bind_to_prop = widget_arrow_bind_to_prop;
arrow->widget.flag |= WM_WIDGET_SCALE_3D;
+
arrow->style = real_style;
+
+ /* defaults */
copy_v3_v3(arrow->direction, dir_default);
arrow->tot_line_points = ARRAY_SIZE(line_default);
arrow->line = MEM_mallocN(sizeof(line_default), __func__);
@@ -547,14 +548,6 @@ wmWidget *WIDGET_arrow_new(wmWidgetGroup *wgroup, const char *name, const int st
return (wmWidget *)arrow;
}
-void WIDGET_arrow_set_color(wmWidget *widget, const float color[4], const float color_highlight[4])
-{
- ArrowWidget *arrow = (ArrowWidget *)widget;
-
- copy_v4_v4(arrow->color, color);
- copy_v4_v4(arrow->color_highlight, color_highlight);
-}
-
void WIDGET_arrow_set_direction(wmWidget *widget, const float direction[3])
{
ArrowWidget *arrow = (ArrowWidget *)widget;
@@ -597,8 +590,6 @@ typedef struct DialWidget {
wmWidget widget;
int style;
float direction[3];
- float color[4];
- float color_highlight[4];
} DialWidget;
static void dial_draw_geom(const DialWidget *dial, const bool select)
@@ -641,9 +632,9 @@ static void dial_draw_intern(DialWidget *dial, const bool select, const bool hig
glMultMatrixf(mat);
if (highlight)
- glColor4fv(dial->color_highlight);
+ glColor4fv(dial->widget.col_hi);
else
- glColor4fv(dial->color);
+ glColor4fv(dial->widget.col);
dial_draw_geom(dial, select);
@@ -700,8 +691,8 @@ static void widget_dial_draw(const bContext *C, wmWidget *widget)
wmWidget *WIDGET_dial_new(wmWidgetGroup *wgroup, const char *name, const int style)
{
- const float dir_default[3] = {0.0f, 0.0f, 1.0f};
DialWidget *dial;
+ const float dir_default[3] = {0.0f, 0.0f, 1.0f};
#ifdef WIDGET_USE_CUSTOM_DIAS
if (!dial_draw_info.init) {
@@ -722,6 +713,8 @@ wmWidget *WIDGET_dial_new(wmWidgetGroup *wgroup, const char *name, const int sty
dial->widget.flag |= WM_WIDGET_SCALE_3D;
dial->style = style;
+
+ /* defaults */
copy_v3_v3(dial->direction, dir_default);
wm_widget_register(wgroup, &dial->widget, name);
@@ -729,14 +722,6 @@ wmWidget *WIDGET_dial_new(wmWidgetGroup *wgroup, const char *name, const int sty
return (wmWidget *)dial;
}
-void WIDGET_dial_set_color(wmWidget *widget, const float color[4], const float color_highlight[4])
-{
- DialWidget *arrow = (DialWidget *)widget;
-
- copy_v4_v4(arrow->color, color);
- copy_v4_v4(arrow->color_highlight, color_highlight);
-}
-
void WIDGET_dial_set_direction(wmWidget *widget, const float direction[3])
{
DialWidget *dial = (DialWidget *)widget;
@@ -751,7 +736,6 @@ typedef struct PlaneWidget {
wmWidget widget;
float direction[3];
- float color[4];
} PlaneWidget;
@@ -794,12 +778,12 @@ s
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list