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,240 Lines • ▼ Show 20 Lines | else { | ||||
| ui_but_value_set(but, but->hardmax); | ui_but_value_set(but, but->hardmax); | ||||
| ui_apply_but_func(C, but); | ui_apply_but_func(C, but); | ||||
| } | } | ||||
| data->retval = but->retval; | data->retval = but->retval; | ||||
| data->applied = true; | data->applied = true; | ||||
| } | } | ||||
| static void ui_apply_but_NUM(bContext *C, uiBut *but, uiHandleButtonData *data) | static void ui_apply_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data) | ||||
| { | { | ||||
| if (data->str) { | if (data->str) { | ||||
| double value; | double num_value; | ||||
| /* Check if the string value is a number and cancel if it's equal to the startvalue. */ | /* Check if the string value is a number and cancel if it's equal to the startvalue. */ | ||||
| if (ui_but_string_eval_number(C, but, data->str, &value) && (value == data->startvalue)) { | if (ui_but_string_eval_number(C, but, data->str, &num_value) && | ||||
| (num_value == data->startvalue)) { | |||||
| bool mbut_values_equal = true; | |||||
| #ifdef USE_DRAG_MULTINUM | |||||
| if (data->multi_data.has_mbuts) { | |||||
| LISTBASE_FOREACH (uiBut *, but, &block->buttons) { | |||||
| if ((but->flag & UI_BUT_DRAG_MULTI) == 0) { | |||||
| continue; | |||||
| } | |||||
| uiButMultiState *mbut_state = ui_multibut_lookup(data, but); | |||||
| if (mbut_state && mbut_state->origvalue != num_value) { | |||||
| mbut_values_equal = false; | |||||
| } | |||||
| } | |||||
| } | |||||
| #endif | |||||
| if (mbut_values_equal) { | |||||
| data->cancel = true; | data->cancel = true; | ||||
| return; | return; | ||||
| } | } | ||||
| } | |||||
| if (ui_but_string_set(C, but, data->str)) { | if (ui_but_string_set(C, but, data->str)) { | ||||
| data->value = ui_but_value_get(but); | data->value = ui_but_value_get(but); | ||||
| } | } | ||||
| else { | else { | ||||
| data->cancel = true; | data->cancel = true; | ||||
| return; | return; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 1,041 Lines • ▼ Show 20 Lines | case UI_BTYPE_DATASETROW: | ||||
| break; | break; | ||||
| case UI_BTYPE_TAB: | case UI_BTYPE_TAB: | ||||
| ui_apply_but_TAB(C, but, data); | ui_apply_but_TAB(C, but, data); | ||||
| break; | break; | ||||
| case UI_BTYPE_SCROLL: | case UI_BTYPE_SCROLL: | ||||
| case UI_BTYPE_GRIP: | case UI_BTYPE_GRIP: | ||||
| case UI_BTYPE_NUM: | case UI_BTYPE_NUM: | ||||
| case UI_BTYPE_NUM_SLIDER: | case UI_BTYPE_NUM_SLIDER: | ||||
| ui_apply_but_NUM(C, but, data); | ui_apply_but_NUM(C, block, but, data); | ||||
| break; | break; | ||||
| case UI_BTYPE_MENU: | case UI_BTYPE_MENU: | ||||
| case UI_BTYPE_BLOCK: | case UI_BTYPE_BLOCK: | ||||
| case UI_BTYPE_PULLDOWN: | case UI_BTYPE_PULLDOWN: | ||||
| ui_apply_but_BLOCK(C, but, data); | ui_apply_but_BLOCK(C, but, data); | ||||
| break; | break; | ||||
| case UI_BTYPE_COLOR: | case UI_BTYPE_COLOR: | ||||
| if (data->cancel) { | if (data->cancel) { | ||||
| ▲ Show 20 Lines • Show All 9,412 Lines • Show Last 20 Lines | |||||