Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/interface/interface_handlers.c
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
| Show First 20 Lines • Show All 1,554 Lines • ▼ Show 20 Lines | if (selctx_data->elems) { | ||||
| int index = but->rnaindex; | int index = but->rnaindex; | ||||
| int i; | int i; | ||||
| const bool use_delta = (selctx_data->is_copy == false); | const bool use_delta = (selctx_data->is_copy == false); | ||||
| union { | union { | ||||
| bool b; | bool b; | ||||
| int i; | int i; | ||||
| float f; | float f; | ||||
| PointerRNA p; | |||||
| } delta, min, max; | } delta, min, max; | ||||
| const bool is_array = RNA_property_array_check(prop); | const bool is_array = RNA_property_array_check(prop); | ||||
| const int rna_type = RNA_property_type(prop); | const int rna_type = RNA_property_type(prop); | ||||
| if (rna_type == PROP_FLOAT) { | if (rna_type == PROP_FLOAT) { | ||||
| delta.f = use_delta ? (value - value_orig) : value; | delta.f = use_delta ? (value - value_orig) : value; | ||||
| RNA_property_float_range(&but->rnapoin, prop, &min.f, &max.f); | RNA_property_float_range(&but->rnapoin, prop, &min.f, &max.f); | ||||
| } | } | ||||
| else if (rna_type == PROP_INT) { | else if (rna_type == PROP_INT) { | ||||
| delta.i = use_delta ? ((int)value - (int)value_orig) : (int)value; | delta.i = use_delta ? ((int)value - (int)value_orig) : (int)value; | ||||
| RNA_property_int_range(&but->rnapoin, prop, &min.i, &max.i); | RNA_property_int_range(&but->rnapoin, prop, &min.i, &max.i); | ||||
| } | } | ||||
| else if (rna_type == PROP_ENUM) { | else if (rna_type == PROP_ENUM) { | ||||
| delta.i = RNA_property_enum_get(&but->rnapoin, prop); /* not a delta infact */ | delta.i = RNA_property_enum_get(&but->rnapoin, prop); /* not a delta infact */ | ||||
| } | } | ||||
| else if (rna_type == PROP_BOOLEAN) { | else if (rna_type == PROP_BOOLEAN) { | ||||
| if (is_array) { | if (is_array) { | ||||
| delta.b = RNA_property_boolean_get_index(&but->rnapoin, prop, index); /* not a delta infact */ | delta.b = RNA_property_boolean_get_index(&but->rnapoin, prop, index); /* not a delta infact */ | ||||
| } | } | ||||
| else { | else { | ||||
| delta.b = RNA_property_boolean_get(&but->rnapoin, prop); /* not a delta infact */ | delta.b = RNA_property_boolean_get(&but->rnapoin, prop); /* not a delta infact */ | ||||
| } | } | ||||
| } | } | ||||
| else if (rna_type == PROP_POINTER) { | |||||
| delta.p = RNA_property_pointer_get(&but->rnapoin, prop); /* not a delta infact */ | |||||
| } | |||||
| #ifdef USE_ALLSELECT_LAYER_HACK | #ifdef USE_ALLSELECT_LAYER_HACK | ||||
| /* make up for not having 'handle_layer_buttons' */ | /* make up for not having 'handle_layer_buttons' */ | ||||
| { | { | ||||
| PropertySubType subtype = RNA_property_subtype(prop); | PropertySubType subtype = RNA_property_subtype(prop); | ||||
| if ((rna_type == PROP_BOOLEAN) && | if ((rna_type == PROP_BOOLEAN) && | ||||
| ELEM(subtype, PROP_LAYER, PROP_LAYER_MEMBER) && | ELEM(subtype, PROP_LAYER, PROP_LAYER_MEMBER) && | ||||
| ▲ Show 20 Lines • Show All 56 Lines • ▼ Show 20 Lines | for (i = 0; i < selctx_data->elems_len; i++) { | ||||
| RNA_property_boolean_set(&lptr, lprop, delta.b); | RNA_property_boolean_set(&lptr, lprop, delta.b); | ||||
| } | } | ||||
| } | } | ||||
| else if (rna_type == PROP_ENUM) { | else if (rna_type == PROP_ENUM) { | ||||
| const int other_value = delta.i; | const int other_value = delta.i; | ||||
| BLI_assert(!is_array); | BLI_assert(!is_array); | ||||
| RNA_property_enum_set(&lptr, lprop, other_value); | RNA_property_enum_set(&lptr, lprop, other_value); | ||||
| } | } | ||||
| else if (rna_type == PROP_POINTER) { | |||||
| const PointerRNA other_value = delta.p; | |||||
| RNA_property_pointer_set(&lptr, lprop, other_value); | |||||
| } | |||||
| RNA_property_update(C, &lptr, prop); | RNA_property_update(C, &lptr, prop); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| #endif /* USE_ALLSELECT */ | #endif /* USE_ALLSELECT */ | ||||
| ▲ Show 20 Lines • Show All 8,679 Lines • Show Last 20 Lines | |||||