diff options
author | Campbell Barton <campbell@blender.org> | 2022-05-13 09:14:29 +0300 |
---|---|---|
committer | Campbell Barton <campbell@blender.org> | 2022-05-13 09:14:29 +0300 |
commit | 0d1b9eabf2e5a5ca5947981952f7aa63f55ecea8 (patch) | |
tree | 79a91598abedfbf91a265031445da4eb626e5a1c /source/blender/editors/util/select_utils.c | |
parent | 3e5cb7b23e11af4122e1bda226179a07f6422902 (diff) | |
parent | 113b8030ced92c23e33717dac97287f8792fd1cb (diff) |
Merge branch 'blender-v3.2-release'
Diffstat (limited to 'source/blender/editors/util/select_utils.c')
-rw-r--r-- | source/blender/editors/util/select_utils.c | 62 |
1 files changed, 54 insertions, 8 deletions
diff --git a/source/blender/editors/util/select_utils.c b/source/blender/editors/util/select_utils.c index 53f9aca8e8d..263ef06718f 100644 --- a/source/blender/editors/util/select_utils.c +++ b/source/blender/editors/util/select_utils.c @@ -119,11 +119,11 @@ bool ED_select_similar_compare_float_tree(const KDTree_1d *tree, return false; } -eSelectOp ED_select_op_from_operator(wmOperator *op) +eSelectOp ED_select_op_from_operator(PointerRNA *ptr) { - const bool extend = RNA_boolean_get(op->ptr, "extend"); - const bool deselect = RNA_boolean_get(op->ptr, "deselect"); - const bool toggle = RNA_boolean_get(op->ptr, "toggle"); + const bool extend = RNA_boolean_get(ptr, "extend"); + const bool deselect = RNA_boolean_get(ptr, "deselect"); + const bool toggle = RNA_boolean_get(ptr, "toggle"); if (extend) { return SEL_OP_ADD; @@ -137,10 +137,56 @@ eSelectOp ED_select_op_from_operator(wmOperator *op) return SEL_OP_SET; } -void ED_select_pick_params_from_operator(wmOperator *op, struct SelectPick_Params *params) +void ED_select_pick_params_from_operator(PointerRNA *ptr, struct SelectPick_Params *params) { memset(params, 0x0, sizeof(*params)); - params->sel_op = ED_select_op_from_operator(op); - params->deselect_all = RNA_boolean_get(op->ptr, "deselect_all"); - params->select_passthrough = RNA_boolean_get(op->ptr, "select_passthrough"); + params->sel_op = ED_select_op_from_operator(ptr); + params->deselect_all = RNA_boolean_get(ptr, "deselect_all"); + params->select_passthrough = RNA_boolean_get(ptr, "select_passthrough"); } + +/* -------------------------------------------------------------------- */ +/** \name Operator Naming Callbacks + * \{ */ + +const char *ED_select_pick_get_name(wmOperatorType *UNUSED(ot), PointerRNA *ptr) +{ + struct SelectPick_Params params = {0}; + ED_select_pick_params_from_operator(ptr, ¶ms); + switch (params.sel_op) { + case SEL_OP_ADD: + return "Select (Extend)"; + case SEL_OP_SUB: + return "Select (Deselect)"; + case SEL_OP_XOR: + return "Select (Toggle)"; + case SEL_OP_AND: + BLI_assert_unreachable(); + ATTR_FALLTHROUGH; + case SEL_OP_SET: + break; + } + return "Select"; +} + +const char *ED_select_circle_get_name(wmOperatorType *UNUSED(ot), PointerRNA *ptr) +{ + /* Matches options in #WM_operator_properties_select_operation_simple */ + const eSelectOp sel_op = RNA_enum_get(ptr, "mode"); + switch (sel_op) { + case SEL_OP_ADD: + return "Circle Select (Extend)"; + case SEL_OP_SUB: + return "Circle Select (Deselect)"; + case SEL_OP_XOR: + ATTR_FALLTHROUGH; + case SEL_OP_AND: + BLI_assert_unreachable(); + ATTR_FALLTHROUGH; + case SEL_OP_SET: + break; + } + return "Circle Select"; +} + +/** \} */ |