Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/interface/interface_region_search.c
| Show First 20 Lines • Show All 1,046 Lines • ▼ Show 20 Lines | void ui_but_search_refresh(uiButSearch *search_but) | ||||
| items->maxstrlen = 256; | items->maxstrlen = 256; | ||||
| items->names = MEM_callocN(items->maxitem * sizeof(void *), "search names"); | items->names = MEM_callocN(items->maxitem * sizeof(void *), "search names"); | ||||
| for (x1 = 0; x1 < items->maxitem; x1++) { | for (x1 = 0; x1 < items->maxitem; x1++) { | ||||
| items->names[x1] = MEM_callocN(but->hardmax + 1, "search names"); | items->names[x1] = MEM_callocN(but->hardmax + 1, "search names"); | ||||
| } | } | ||||
| ui_searchbox_update_fn(but->block->evil_C, search_but, but->drawstr, items); | ui_searchbox_update_fn(but->block->evil_C, search_but, but->drawstr, items); | ||||
| if (!search_but->all_strings_valid) { | |||||
| /* Only red-alert when we are sure of it, this can miss cases when >10 matches. */ | /* Only red-alert when we are sure of it, this can miss cases when >10 matches. */ | ||||
| if (items->totitem == 0) { | if (items->totitem == 0) { | ||||
| UI_but_flag_enable(but, UI_BUT_REDALERT); | UI_but_flag_enable(but, UI_BUT_REDALERT); | ||||
| } | } | ||||
| else if (items->more == 0) { | else if (items->more == 0) { | ||||
| if (UI_search_items_find_index(items, but->drawstr) == -1) { | if (UI_search_items_find_index(items, but->drawstr) == -1) { | ||||
| UI_but_flag_enable(but, UI_BUT_REDALERT); | UI_but_flag_enable(but, UI_BUT_REDALERT); | ||||
| } | } | ||||
| } | } | ||||
| } | |||||
| for (x1 = 0; x1 < items->maxitem; x1++) { | for (x1 = 0; x1 < items->maxitem; x1++) { | ||||
| MEM_freeN(items->names[x1]); | MEM_freeN(items->names[x1]); | ||||
| } | } | ||||
| MEM_freeN(items->names); | MEM_freeN(items->names); | ||||
| MEM_freeN(items); | MEM_freeN(items); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||