Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTianwei Shen <shentianweipku@gmail.com>2016-09-26 19:00:49 +0300
committerTianwei Shen <shentianweipku@gmail.com>2016-09-26 19:00:49 +0300
commit4f69557528893f8d52cac16f77bac70161aac3e1 (patch)
tree820a3d2b16f3e9e14e68f1b299d7c882fbbb7d1c /source/blender/editors/interface
parent3bbc836b2fd95bfa6f25691b4a32951881e11bfc (diff)
parent7f76f6f2490a4375dc4c5e0f61de7daa7a75a9c2 (diff)
Merge branch 'master' into soc-2016-multiview
- revise code accordingly with the 2.78 release
Diffstat (limited to 'source/blender/editors/interface')
-rw-r--r--source/blender/editors/interface/interface.c11
-rw-r--r--source/blender/editors/interface/interface_anim.c42
-rw-r--r--source/blender/editors/interface/interface_draw.c3
-rw-r--r--source/blender/editors/interface/interface_eyedropper.c70
-rw-r--r--source/blender/editors/interface/interface_handlers.c103
-rw-r--r--source/blender/editors/interface/interface_intern.h7
-rw-r--r--source/blender/editors/interface/interface_ops.c97
-rw-r--r--source/blender/editors/interface/interface_regions.c2
-rw-r--r--source/blender/editors/interface/resources.c14
9 files changed, 119 insertions, 230 deletions
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index aca107013ac..6bba35e821f 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -3215,10 +3215,10 @@ void ui_def_but_icon(uiBut *but, const int icon, const int flag)
}
}
-static void ui_def_but_rna__disable(uiBut *but)
+static void ui_def_but_rna__disable(uiBut *but, const char *info)
{
but->flag |= UI_BUT_DISABLED;
- but->disabled_info = "";
+ but->disabled_info = info;
}
static void ui_def_but_rna__menu(bContext *UNUSED(C), uiLayout *layout, void *but_p)
@@ -3483,8 +3483,9 @@ static uiBut *ui_def_but_rna(
but->flag |= UI_BUT_ICON_SUBMENU;
}
- if (!RNA_property_editable(&but->rnapoin, prop)) {
- ui_def_but_rna__disable(but);
+ const char *info;
+ if (!RNA_property_editable_info(&but->rnapoin, prop, &info)) {
+ ui_def_but_rna__disable(but, info);
}
if (but->flag & UI_BUT_UNDO && (ui_but_is_rna_undo(but) == false)) {
@@ -3515,7 +3516,7 @@ static uiBut *ui_def_but_rna_propname(uiBlock *block, int type, int retval, cons
else {
but = ui_def_but(block, type, retval, propname, x, y, width, height, NULL, min, max, a1, a2, tip);
- ui_def_but_rna__disable(but);
+ ui_def_but_rna__disable(but, "Unknown Property.");
}
return but;
diff --git a/source/blender/editors/interface/interface_anim.c b/source/blender/editors/interface/interface_anim.c
index c88b03ceaa0..991cd54fecf 100644
--- a/source/blender/editors/interface/interface_anim.c
+++ b/source/blender/editors/interface/interface_anim.c
@@ -272,36 +272,6 @@ void ui_but_anim_autokey(bContext *C, uiBut *but, Scene *scene, float cfra)
}
}
-void ui_but_anim_insert_keyframe(bContext *C)
-{
- /* this operator calls UI_context_active_but_prop_get */
- WM_operator_name_call(C, "ANIM_OT_keyframe_insert_button", WM_OP_INVOKE_DEFAULT, NULL);
-}
-
-void ui_but_anim_delete_keyframe(bContext *C)
-{
- /* this operator calls UI_context_active_but_prop_get */
- WM_operator_name_call(C, "ANIM_OT_keyframe_delete_button", WM_OP_INVOKE_DEFAULT, NULL);
-}
-
-void ui_but_anim_clear_keyframe(bContext *C)
-{
- /* this operator calls UI_context_active_but_prop_get */
- WM_operator_name_call(C, "ANIM_OT_keyframe_clear_button", WM_OP_INVOKE_DEFAULT, NULL);
-}
-
-void ui_but_anim_add_driver(bContext *C)
-{
- /* this operator calls UI_context_active_but_prop_get */
- WM_operator_name_call(C, "ANIM_OT_driver_button_add", WM_OP_INVOKE_DEFAULT, NULL);
-}
-
-void ui_but_anim_remove_driver(bContext *C)
-{
- /* this operator calls UI_context_active_but_prop_get */
- WM_operator_name_call(C, "ANIM_OT_driver_button_remove", WM_OP_INVOKE_DEFAULT, NULL);
-}
-
void ui_but_anim_copy_driver(bContext *C)
{
/* this operator calls UI_context_active_but_prop_get */
@@ -313,15 +283,3 @@ void ui_but_anim_paste_driver(bContext *C)
/* this operator calls UI_context_active_but_prop_get */
WM_operator_name_call(C, "ANIM_OT_paste_driver_button", WM_OP_INVOKE_DEFAULT, NULL);
}
-
-void ui_but_anim_add_keyingset(bContext *C)
-{
- /* this operator calls UI_context_active_but_prop_get */
- WM_operator_name_call(C, "ANIM_OT_keyingset_button_add", WM_OP_INVOKE_DEFAULT, NULL);
-}
-
-void ui_but_anim_remove_keyingset(bContext *C)
-{
- /* this operator calls UI_context_active_but_prop_get */
- WM_operator_name_call(C, "ANIM_OT_keyingset_button_remove", WM_OP_INVOKE_DEFAULT, NULL);
-}
diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c
index 9ce863dc8f7..01ea1e953fa 100644
--- a/source/blender/editors/interface/interface_draw.c
+++ b/source/blender/editors/interface/interface_draw.c
@@ -1255,6 +1255,9 @@ void ui_draw_but_UNITVEC(uiBut *but, uiWidgetColors *wcol, const rcti *rect)
/* matrix after circle */
glPopMatrix();
+
+ /* We disabled all blender lights above, so restore them here. */
+ GPU_default_lights();
}
static void ui_draw_but_curve_grid(const rcti *rect, float zoomx, float zoomy, float offsx, float offsy, float step)
diff --git a/source/blender/editors/interface/interface_eyedropper.c b/source/blender/editors/interface/interface_eyedropper.c
index f10b3e6f157..31598a44b09 100644
--- a/source/blender/editors/interface/interface_eyedropper.c
+++ b/source/blender/editors/interface/interface_eyedropper.c
@@ -448,8 +448,20 @@ static int eyedropper_exec(bContext *C, wmOperator *op)
static int eyedropper_poll(bContext *C)
{
- if (!CTX_wm_window(C)) return 0;
- else return 1;
+ PointerRNA ptr;
+ PropertyRNA *prop;
+ int index_dummy;
+ uiBut *but;
+
+ /* Only color buttons */
+ if ((CTX_wm_window(C) != NULL) &&
+ (but = UI_context_active_but_prop_get(C, &ptr, &prop, &index_dummy)) &&
+ (but->type == UI_BTYPE_COLOR))
+ {
+ return 1;
+ }
+
+ return 0;
}
void UI_OT_eyedropper_color(wmOperatorType *ot)
@@ -727,8 +739,27 @@ static int datadropper_exec(bContext *C, wmOperator *op)
static int datadropper_poll(bContext *C)
{
- if (!CTX_wm_window(C)) return 0;
- else return 1;
+ PointerRNA ptr;
+ PropertyRNA *prop;
+ int index_dummy;
+ uiBut *but;
+
+ /* data dropper only supports object data */
+ if ((CTX_wm_window(C) != NULL) &&
+ (but = UI_context_active_but_prop_get(C, &ptr, &prop, &index_dummy)) &&
+ (but->type == UI_BTYPE_SEARCH_MENU) &&
+ (but->flag & UI_BUT_SEARCH_UNLINK))
+ {
+ if (prop && RNA_property_type(prop) == PROP_POINTER) {
+ StructRNA *type = RNA_property_pointer_type(&ptr, prop);
+ const short idcode = RNA_type_to_ID_code(type);
+ if ((idcode == ID_OB) || OB_DATA_SUPPORT_ID(idcode)) {
+ return 1;
+ }
+ }
+ }
+
+ return 0;
}
void UI_OT_eyedropper_id(wmOperatorType *ot)
@@ -1034,8 +1065,26 @@ static int depthdropper_exec(bContext *C, wmOperator *op)
static int depthdropper_poll(bContext *C)
{
- if (!CTX_wm_window(C)) return 0;
- else return 1;
+ PointerRNA ptr;
+ PropertyRNA *prop;
+ int index_dummy;
+ uiBut *but;
+
+ /* check if there's an active button taking depth value */
+ if ((CTX_wm_window(C) != NULL) &&
+ (but = UI_context_active_but_prop_get(C, &ptr, &prop, &index_dummy)) &&
+ (but->type == UI_BTYPE_NUM) &&
+ (prop != NULL))
+ {
+ if ((RNA_property_type(prop) == PROP_FLOAT) &&
+ (RNA_property_subtype(prop) & PROP_UNIT_LENGTH) &&
+ (RNA_property_array_check(prop) == false))
+ {
+ return 1;
+ }
+ }
+
+ return 0;
}
void UI_OT_eyedropper_depth(wmOperatorType *ot)
@@ -1084,12 +1133,11 @@ static bool driverdropper_init(bContext *C, wmOperator *op)
{
DriverDropper *ddr;
uiBut *but;
-
+
op->customdata = ddr = MEM_callocN(sizeof(DriverDropper), "DriverDropper");
-
- UI_context_active_but_prop_get(C, &ddr->ptr, &ddr->prop, &ddr->index);
- but = UI_context_active_but_get(C);
-
+
+ but = UI_context_active_but_prop_get(C, &ddr->ptr, &ddr->prop, &ddr->index);
+
if ((ddr->ptr.data == NULL) ||
(ddr->prop == NULL) ||
(RNA_property_editable(&ddr->ptr, ddr->prop) == false) ||
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 933beaf6afb..369eba66f32 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -1266,6 +1266,10 @@ static bool ui_drag_toggle_set_xy_xy(
}
}
}
+ if (changed) {
+ /* apply now, not on release (or if handlers are cancelled for whatever reason) */
+ ui_apply_but_funcs_after(C);
+ }
return changed;
}
@@ -6975,6 +6979,9 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, const wmEvent *
/* if but->pointype is set, but->poin should be too */
BLI_assert(!but->pointype || but->poin);
+ /* Only hard-coded stuff here, button interactions with configurable
+ * keymaps are handled using operators (see #ED_keymap_ui). */
+
if ((data->state == BUTTON_STATE_HIGHLIGHT) || (event->type == EVT_DROP)) {
/* handle copy-paste */
if (ELEM(event->type, CKEY, VKEY) && event->val == KM_PRESS &&
@@ -7002,91 +7009,6 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, const wmEvent *
else if (event->type == EVT_DROP) {
ui_but_drop(C, event, but, data);
}
- /* handle eyedropper */
- else if ((event->type == EKEY) && (event->val == KM_PRESS)) {
- if (IS_EVENT_MOD(event, shift, ctrl, alt, oskey)) {
- /* pass */
- }
- else {
- if (but->type == UI_BTYPE_COLOR) {
- WM_operator_name_call(C, "UI_OT_eyedropper_color", WM_OP_INVOKE_DEFAULT, NULL);
- return WM_UI_HANDLER_BREAK;
- }
- else if ((but->type == UI_BTYPE_SEARCH_MENU) &&
- (but->flag & UI_BUT_SEARCH_UNLINK))
- {
- if (but->rnaprop && RNA_property_type(but->rnaprop) == PROP_POINTER) {
- StructRNA *type = RNA_property_pointer_type(&but->rnapoin, but->rnaprop);
- const short idcode = RNA_type_to_ID_code(type);
- if ((idcode == ID_OB) || OB_DATA_SUPPORT_ID(idcode)) {
- WM_operator_name_call(C, "UI_OT_eyedropper_id", WM_OP_INVOKE_DEFAULT, NULL);
- return WM_UI_HANDLER_BREAK;
- }
- }
- }
- else if (but->type == UI_BTYPE_NUM) {
- if (but->rnaprop &&
- (RNA_property_type(but->rnaprop) == PROP_FLOAT) &&
- (RNA_property_subtype(but->rnaprop) & PROP_UNIT_LENGTH) &&
- (RNA_property_array_check(but->rnaprop) == false))
- {
- WM_operator_name_call(C, "UI_OT_eyedropper_depth", WM_OP_INVOKE_DEFAULT, NULL);
- return WM_UI_HANDLER_BREAK;
- }
- }
- }
- }
- /* handle keyframing */
- else if ((event->type == IKEY) &&
- !IS_EVENT_MOD(event, ctrl, oskey) &&
- (event->val == KM_PRESS))
- {
- if (event->alt) {
- if (event->shift) {
- ui_but_anim_clear_keyframe(C);
- }
- else {
- ui_but_anim_delete_keyframe(C);
- }
- }
- else {
- ui_but_anim_insert_keyframe(C);
- }
-
- ED_region_tag_redraw(data->region);
-
- return WM_UI_HANDLER_BREAK;
- }
- /* handle drivers */
- else if ((event->type == DKEY) &&
- !IS_EVENT_MOD(event, shift, oskey) &&
- (event->val == KM_PRESS))
- {
- /* quick check to prevent this opening within the popup menu its self */
- if (!ELEM(NULL, but->rnapoin.data, but->rnaprop)) {
- if (event->alt)
- ui_but_anim_remove_driver(C);
- else if (event->ctrl)
- ui_but_anim_add_driver(C);
-
- ED_region_tag_redraw(data->region);
- }
- return WM_UI_HANDLER_BREAK;
- }
- /* handle keyingsets */
- else if ((event->type == KKEY) &&
- !IS_EVENT_MOD(event, shift, ctrl, oskey) &&
- (event->val == KM_PRESS))
- {
- if (event->alt)
- ui_but_anim_remove_keyingset(C);
- else
- ui_but_anim_add_keyingset(C);
-
- ED_region_tag_redraw(data->region);
-
- return WM_UI_HANDLER_BREAK;
- }
/* handle menu */
else if ((event->type == RIGHTMOUSE) &&
!IS_EVENT_MOD(event, shift, ctrl, alt, oskey) &&
@@ -8078,8 +8000,13 @@ uiBut *UI_context_active_but_get(const struct bContext *C)
return ui_context_button_active(C, NULL);
}
-/* helper function for insert keyframe, reset to default, etc operators */
-void UI_context_active_but_prop_get(
+/**
+ * Version of #UI_context_active_but_get that also returns RNA property info.
+ * Helper function for insert keyframe, reset to default, etc operators.
+ *
+ * \return active button, NULL if none found or if it doesn't contain valid RNA data.
+ */
+uiBut *UI_context_active_but_prop_get(
const bContext *C,
struct PointerRNA *r_ptr, struct PropertyRNA **r_prop, int *r_index)
{
@@ -8095,6 +8022,8 @@ void UI_context_active_but_prop_get(
*r_prop = NULL;
*r_index = 0;
}
+
+ return activebut;
}
void UI_context_active_but_prop_handle(bContext *C)
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index 418d98e8e4a..fcf827bdbe6 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -729,15 +729,8 @@ void ui_block_align_calc(uiBlock *block);
/* interface_anim.c */
void ui_but_anim_flag(uiBut *but, float cfra);
-void ui_but_anim_insert_keyframe(struct bContext *C);
-void ui_but_anim_delete_keyframe(struct bContext *C);
-void ui_but_anim_clear_keyframe(struct bContext *C);
-void ui_but_anim_add_driver(struct bContext *C);
-void ui_but_anim_remove_driver(struct bContext *C);
void ui_but_anim_copy_driver(struct bContext *C);
void ui_but_anim_paste_driver(struct bContext *C);
-void ui_but_anim_add_keyingset(struct bContext *C);
-void ui_but_anim_remove_keyingset(struct bContext *C);
bool ui_but_anim_expression_get(uiBut *but, char *str, size_t maxlen);
bool ui_but_anim_expression_set(uiBut *but, const char *str);
bool ui_but_anim_expression_create(uiBut *but, const char *str);
diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c
index cb539bb1c5d..7e516474bfd 100644
--- a/source/blender/editors/interface/interface_ops.c
+++ b/source/blender/editors/interface/interface_ops.c
@@ -1082,79 +1082,6 @@ static void UI_OT_drop_color(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "gamma", 0, "Gamma Corrected", "The source color is gamma corrected ");
}
-/* ------------------------------------------------------------------------- */
-
-static EnumPropertyItem space_context_cycle_direction[] = {
- {SPACE_CONTEXT_CYCLE_PREV, "PREV", 0, "Previous", ""},
- {SPACE_CONTEXT_CYCLE_NEXT, "NEXT", 0, "Next", ""},
- {0, NULL, 0, NULL, NULL}
-};
-
-static int space_context_cycle_poll(bContext *C)
-{
- ScrArea *sa = CTX_wm_area(C);
- return ELEM(sa->spacetype, SPACE_BUTS, SPACE_USERPREF);
-}
-
-/**
- * Helper to get the correct RNA pointer/property pair for changing
- * the display context of active space type in \sa.
- */
-static void context_cycle_prop_get(
- bScreen *screen, const ScrArea *sa,
- PointerRNA *r_ptr, PropertyRNA **r_prop)
-{
- const char *propname;
-
- switch (sa->spacetype) {
- case SPACE_BUTS:
- RNA_pointer_create(&screen->id, &RNA_SpaceProperties, sa->spacedata.first, r_ptr);
- propname = "context";
- break;
- case SPACE_USERPREF:
- RNA_pointer_create(NULL, &RNA_UserPreferences, &U, r_ptr);
- propname = "active_section";
- break;
- }
-
- *r_prop = RNA_struct_find_property(r_ptr, propname);
-}
-
-static int space_context_cycle_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
-{
- const int direction = RNA_enum_get(op->ptr, "direction");
-
- PointerRNA ptr;
- PropertyRNA *prop;
- context_cycle_prop_get(CTX_wm_screen(C), CTX_wm_area(C), &ptr, &prop);
-
- const int old_context = RNA_property_enum_get(&ptr, prop);
- const int new_context = RNA_property_enum_step(
- C, &ptr, prop, old_context,
- direction == SPACE_CONTEXT_CYCLE_PREV ? -1 : 1);
- RNA_property_enum_set(&ptr, prop, new_context);
- RNA_property_update(C, &ptr, prop);
-
- return OPERATOR_FINISHED;
-}
-
-static void UI_OT_space_context_cycle(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Cycle Space Context";
- ot->description = "Cycle through the editor context by activating the next/previous one";
- ot->idname = "UI_OT_space_context_cycle";
-
- /* api callbacks */
- ot->invoke = space_context_cycle_invoke;
- ot->poll = space_context_cycle_poll;
-
- ot->flag = 0;
-
- RNA_def_enum(ot->srna, "direction", space_context_cycle_direction, SPACE_CONTEXT_CYCLE_NEXT, "Direction",
- "Direction to cycle through");
-}
-
/* ********************************************************* */
/* Registration */
@@ -1174,7 +1101,6 @@ void ED_operatortypes_ui(void)
WM_operatortype_append(UI_OT_edittranslation_init);
#endif
WM_operatortype_append(UI_OT_reloadtranslation);
- WM_operatortype_append(UI_OT_space_context_cycle);
/* external */
WM_operatortype_append(UI_OT_eyedropper_color);
@@ -1185,12 +1111,29 @@ void ED_operatortypes_ui(void)
/**
* \brief User Interface Keymap
- *
- * For now only modal maps here, since UI uses special ui-handlers instead of operators.
*/
void ED_keymap_ui(wmKeyConfig *keyconf)
{
- WM_keymap_find(keyconf, "User Interface", 0, 0);
+ wmKeyMap *keymap = WM_keymap_find(keyconf, "User Interface", 0, 0);
+
+ /* eyedroppers - notice they all have the same shortcut, but pass the event
+ * through until a suitable eyedropper for the active button is found */
+ WM_keymap_add_item(keymap, "UI_OT_eyedropper_color", EKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "UI_OT_eyedropper_id", EKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "UI_OT_eyedropper_depth", EKEY, KM_PRESS, 0, 0);
+
+ /* keyframes */
+ WM_keymap_add_item(keymap, "ANIM_OT_keyframe_insert_button", IKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "ANIM_OT_keyframe_delete_button", IKEY, KM_PRESS, KM_ALT, 0);
+ WM_keymap_add_item(keymap, "ANIM_OT_keyframe_clear_button", IKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
+
+ /* drivers */
+ WM_keymap_add_item(keymap, "ANIM_OT_driver_button_add", DKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "ANIM_OT_driver_button_remove", DKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
+
+ /* keyingsets */
+ WM_keymap_add_item(keymap, "ANIM_OT_keyingset_button_add", KKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "ANIM_OT_keyingset_button_remove", KKEY, KM_PRESS, KM_ALT, 0);
eyedropper_modal_keymap(keyconf);
}
diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index b7f921624d9..5602e2b9c6d 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -467,7 +467,7 @@ static uiTooltipData *ui_tooltip_data_from_button(bContext *C, uiBut *but)
}
/* alternatively, buttons can store some reasoning too */
else if (but->disabled_info) {
- disabled_msg = but->disabled_info;
+ disabled_msg = TIP_(but->disabled_info);
}
if (disabled_msg && disabled_msg[0]) {
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index 6e516d193ca..9544a35affc 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -305,6 +305,8 @@ const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colo
cp = ts->vertex; break;
case TH_VERTEX_SELECT:
cp = ts->vertex_select; break;
+ case TH_VERTEX_BEVEL:
+ cp = ts->vertex_bevel; break;
case TH_VERTEX_UNREFERENCED:
cp = ts->vertex_unreferenced; break;
case TH_VERTEX_SIZE:
@@ -321,6 +323,8 @@ const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colo
cp = ts->edge_sharp; break;
case TH_EDGE_CREASE:
cp = ts->edge_crease; break;
+ case TH_EDGE_BEVEL:
+ cp = ts->edge_bevel; break;
case TH_EDITMESH_ACTIVE:
cp = ts->editmesh_active; break;
case TH_EDGE_FACESEL:
@@ -902,12 +906,14 @@ void ui_theme_init_default(void)
rgba_char_args_set(btheme->tv3d.transform, 0xff, 0xff, 0xff, 255);
rgba_char_args_set(btheme->tv3d.vertex, 0, 0, 0, 255);
rgba_char_args_set(btheme->tv3d.vertex_select, 255, 133, 0, 255);
+ rgba_char_args_set(btheme->tv3d.vertex_bevel, 0, 165, 255, 255);
rgba_char_args_set(btheme->tv3d.vertex_unreferenced, 0, 0, 0, 255);
btheme->tv3d.vertex_size = 3;
btheme->tv3d.outline_width = 1;
rgba_char_args_set(btheme->tv3d.edge, 0x0, 0x0, 0x0, 255);
rgba_char_args_set(btheme->tv3d.edge_select, 255, 160, 0, 255);
rgba_char_args_set(btheme->tv3d.edge_seam, 219, 37, 18, 255);
+ rgba_char_args_set(btheme->tv3d.edge_bevel, 0, 165, 255, 255);
rgba_char_args_set(btheme->tv3d.edge_facesel, 75, 75, 75, 255);
rgba_char_args_set(btheme->tv3d.face, 0, 0, 0, 18);
rgba_char_args_set(btheme->tv3d.face_select, 255, 133, 0, 60);
@@ -2743,6 +2749,14 @@ void init_userdef_do_versions(void)
}
}
+ if (!USER_VERSION_ATLEAST(278, 1)) {
+ bTheme *btheme;
+ for (btheme = U.themes.first; btheme; btheme = btheme->next) {
+ rgba_char_args_set(btheme->tv3d.vertex_bevel, 0, 165, 255, 255);
+ rgba_char_args_set(btheme->tv3d.edge_bevel, 0, 165, 255, 255);
+ }
+ }
+
/**
* Include next version bump.
*