diff options
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 198 |
1 files changed, 102 insertions, 96 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 989383215cd..23fb480cd1f 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -122,8 +122,10 @@ typedef struct uiHandleButtonData { /* overall state */ uiHandleButtonState state; - int cancel, escapecancel, retval; - int applied, appliedinteractive; + int retval; + /* booleans (could be made into flags) */ + char cancel, escapecancel; + char applied, appliedinteractive; wmTimer *flashtimer; /* edited value */ @@ -463,7 +465,7 @@ static void ui_apply_but_BUT(bContext *C, uiBut *but, uiHandleButtonData *data) ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } static void ui_apply_but_BUTM(bContext *C, uiBut *but, uiHandleButtonData *data) @@ -472,7 +474,7 @@ static void ui_apply_but_BUTM(bContext *C, uiBut *but, uiHandleButtonData *data) ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } static void ui_apply_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data) @@ -483,7 +485,7 @@ static void ui_apply_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data ui_check_but(but); ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } static void ui_apply_but_TOG(bContext *C, uiBut *but, uiHandleButtonData *data) @@ -542,7 +544,7 @@ static void ui_apply_but_TOG(bContext *C, uiBut *but, uiHandleButtonData *data) ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } static void ui_apply_but_ROW(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data) @@ -559,7 +561,7 @@ static void ui_apply_but_ROW(bContext *C, uiBlock *block, uiBut *but, uiHandleBu ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } static void ui_apply_but_TEX(bContext *C, uiBut *but, uiHandleButtonData *data) @@ -578,7 +580,7 @@ static void ui_apply_but_TEX(bContext *C, uiBut *but, uiHandleButtonData *data) ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } static void ui_apply_but_NUM(bContext *C, uiBut *but, uiHandleButtonData *data) @@ -588,7 +590,7 @@ static void ui_apply_but_NUM(bContext *C, uiBut *but, uiHandleButtonData *data) data->value = ui_get_but_val(but); } else { - data->cancel = 1; + data->cancel = TRUE; return; } } @@ -599,7 +601,7 @@ static void ui_apply_but_NUM(bContext *C, uiBut *but, uiHandleButtonData *data) ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } static void ui_apply_but_TOG3(bContext *C, uiBut *but, uiHandleButtonData *data) @@ -634,7 +636,7 @@ static void ui_apply_but_TOG3(bContext *C, uiBut *but, uiHandleButtonData *data) ui_check_but(but); ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } static void ui_apply_but_VEC(bContext *C, uiBut *but, uiHandleButtonData *data) @@ -644,21 +646,21 @@ static void ui_apply_but_VEC(bContext *C, uiBut *but, uiHandleButtonData *data) ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } static void ui_apply_but_COLORBAND(bContext *C, uiBut *but, uiHandleButtonData *data) { ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } static void ui_apply_but_CURVE(bContext *C, uiBut *but, uiHandleButtonData *data) { ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } static void ui_apply_but_IDPOIN(bContext *C, uiBut *but, uiHandleButtonData *data) @@ -667,7 +669,7 @@ static void ui_apply_but_IDPOIN(bContext *C, uiBut *but, uiHandleButtonData *dat ui_check_but(but); ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } #ifdef WITH_INTERNATIONAL @@ -675,7 +677,7 @@ static void ui_apply_but_CHARTAB(bContext *C, uiBut *but, uiHandleButtonData *da { ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } #endif @@ -712,7 +714,7 @@ static int ui_but_start_drag(bContext *C, uiBut *but, uiHandleButtonData *data, wmDrag *drag; button_activate_state(C, but, BUTTON_STATE_EXIT); - data->cancel = 1; + data->cancel = TRUE; drag = WM_event_start_drag(C, but->icon, but->dragtype, but->dragpoin, ui_get_but_val(but)); if (but->imb) @@ -731,13 +733,10 @@ static void ui_delete_active_linkline(uiBlock *block) uiLink *link; uiLinkLine *line, *nline; int a, b; - - but = block->buttons.first; - while (but) { + + for (but = block->buttons.first; but; but = but->next) { if (but->type == LINK && but->link) { - line = but->link->lines.first; - while (line) { - + for (line = but->link->lines.first; line; line = nline) { nline = line->next; if (line->flag & UI_SELECT) { @@ -771,10 +770,8 @@ static void ui_delete_active_linkline(uiBlock *block) MEM_freeN(line); } - line = nline; } } - but = but->next; } } @@ -786,10 +783,10 @@ static uiLinkLine *ui_is_a_link(uiBut *from, uiBut *to) link = from->link; if (link) { - line = link->lines.first; - while (line) { - if (line->from == from && line->to == to) return line; - line = line->next; + for (line = link->lines.first; line; line = line->next) { + if (line->from == from && line->to == to) { + return line; + } } } return NULL; @@ -931,35 +928,35 @@ static void ui_apply_but_LINK(bContext *C, uiBut *but, uiHandleButtonData *data) ui_apply_but_func(C, but); data->retval = but->retval; } - data->applied = 1; + data->applied = TRUE; } static void ui_apply_but_IMAGE(bContext *C, uiBut *but, uiHandleButtonData *data) { ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } static void ui_apply_but_HISTOGRAM(bContext *C, uiBut *but, uiHandleButtonData *data) { ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } static void ui_apply_but_WAVEFORM(bContext *C, uiBut *but, uiHandleButtonData *data) { ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } static void ui_apply_but_TRACKPREVIEW(bContext *C, uiBut *but, uiHandleButtonData *data) { ui_apply_but_func(C, but); data->retval = but->retval; - data->applied = 1; + data->applied = TRUE; } @@ -990,10 +987,12 @@ static void ui_apply_button(bContext *C, uiBlock *block, uiBut *but, uiHandleBut else { /* we avoid applying interactive edits a second time * at the end with the appliedinteractive flag */ - if (interactive) - data->appliedinteractive = 1; - else if (data->appliedinteractive) + if (interactive) { + data->appliedinteractive = TRUE; + } + else if (data->appliedinteractive) { return; + } } /* ensures we are writing actual values */ @@ -1219,7 +1218,7 @@ static void ui_but_copy_paste(bContext *C, uiBut *but, uiHandleButtonData *data, button_activate_state(C, but, BUTTON_STATE_TEXT_EDITING); BLI_strncpy(buf, active_data->str, UI_MAX_DRAW_STR); WM_clipboard_text_set(active_data->str, 0); - active_data->cancel = 1; + active_data->cancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } else { @@ -1792,8 +1791,8 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle break; case RIGHTMOUSE: case ESCKEY: - data->cancel = 1; - data->escapecancel = 1; + data->cancel = TRUE; + data->escapecancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); retval = WM_UI_HANDLER_BREAK; break; @@ -1819,7 +1818,7 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle else if (inbox == 0) { /* if searchbox, click outside will cancel */ if (data->searchbox) - data->cancel = data->escapecancel = 1; + data->cancel = data->escapecancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); retval = WM_UI_HANDLER_BREAK; } @@ -2155,7 +2154,7 @@ static int ui_do_but_BUT(bContext *C, uiBut *but, uiHandleButtonData *data, wmEv else if (data->state == BUTTON_STATE_WAIT_RELEASE) { if (event->type == LEFTMOUSE && event->val != KM_PRESS) { if (!(but->flag & UI_SELECT)) - data->cancel = 1; + data->cancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); return WM_UI_HANDLER_BREAK; } @@ -2186,7 +2185,7 @@ static int ui_do_but_HOTKEYEVT(bContext *C, uiBut *but, uiHandleButtonData *data if (but->flag & UI_BUT_IMMEDIATE) ui_set_but_val(but, 0); else - data->cancel = 1; + data->cancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); return WM_UI_HANDLER_BREAK; } @@ -2208,14 +2207,14 @@ static int ui_do_but_HOTKEYEVT(bContext *C, uiBut *but, uiHandleButtonData *data if (WM_key_event_string(event->type)[0]) ui_set_but_val(but, event->type); else - data->cancel = 1; + data->cancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); return WM_UI_HANDLER_BREAK; } else if (event->type == ESCKEY) { - data->cancel = 1; - data->escapecancel = 1; + data->cancel = TRUE; + data->escapecancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } @@ -2241,7 +2240,7 @@ static int ui_do_but_KEYEVT(bContext *C, uiBut *but, uiHandleButtonData *data, w if (WM_key_event_string(event->type)[0]) ui_set_but_val(but, event->type); else - data->cancel = 1; + data->cancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } @@ -2589,8 +2588,8 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton } else if (data->state == BUTTON_STATE_NUM_EDITING) { if (event->type == ESCKEY) { - data->cancel = 1; - data->escapecancel = 1; + data->cancel = TRUE; + data->escapecancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } else if (event->type == LEFTMOUSE && event->val != KM_PRESS) { @@ -2640,7 +2639,7 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton if (temp >= softmin && temp <= softmax) data->value = (double)temp; else - data->cancel = 1; + data->cancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } @@ -2651,7 +2650,7 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton if (temp >= softmin && temp <= softmax) data->value = (double)temp; else - data->cancel = 1; + data->cancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } @@ -2811,8 +2810,8 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton } else if (data->state == BUTTON_STATE_NUM_EDITING) { if (event->type == ESCKEY) { - data->cancel = 1; - data->escapecancel = 1; + data->cancel = TRUE; + data->escapecancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } else if (event->type == LEFTMOUSE && event->val != KM_PRESS) { @@ -2870,7 +2869,7 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton if (temp >= softmin && temp <= softmax) data->value = temp; else - data->cancel = 1; + data->cancel = TRUE; } else { if (f < tempf) tempf -= 0.01f; @@ -2879,7 +2878,7 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton if (tempf >= softmin && tempf <= softmax) data->value = tempf; else - data->cancel = 1; + data->cancel = TRUE; } button_activate_state(C, but, BUTTON_STATE_EXIT); @@ -2928,8 +2927,8 @@ static int ui_do_but_SCROLL(bContext *C, uiBlock *block, uiBut *but, uiHandleBut } else if (data->state == BUTTON_STATE_NUM_EDITING) { if (event->type == ESCKEY) { - data->cancel = 1; - data->escapecancel = 1; + data->cancel = TRUE; + data->escapecancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } else if (event->type == LEFTMOUSE && event->val != KM_PRESS) { @@ -3031,7 +3030,7 @@ static int ui_do_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data, wm /* outside icon quit, not needed if drag activated */ if (0 == ui_but_mouse_inside_icon(but, data->region, event)) { button_activate_state(C, but, BUTTON_STATE_EXIT); - data->cancel = 1; + data->cancel = TRUE; return WM_UI_HANDLER_BREAK; } @@ -3342,8 +3341,8 @@ static int ui_do_but_HSVCUBE(bContext *C, uiBlock *block, uiBut *but, uiHandleBu } else if (data->state == BUTTON_STATE_NUM_EDITING) { if (event->type == ESCKEY) { - data->cancel = 1; - data->escapecancel = 1; + data->cancel = TRUE; + data->escapecancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } else if (event->type == MOUSEMOVE) { @@ -3522,8 +3521,8 @@ static int ui_do_but_HSVCIRCLE(bContext *C, uiBlock *block, uiBut *but, uiHandle } else if (data->state == BUTTON_STATE_NUM_EDITING) { if (event->type == ESCKEY) { - data->cancel = 1; - data->escapecancel = 1; + data->cancel = TRUE; + data->escapecancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } /* XXX hardcoded keymap check.... */ @@ -3815,7 +3814,7 @@ static int ui_do_but_CURVE(bContext *C, uiBlock *block, uiBut *but, uiHandleButt } else { /* move the view */ - data->cancel = 1; + data->cancel = TRUE; } data->dragsel = sel; @@ -3937,8 +3936,8 @@ static int ui_do_but_HISTOGRAM(bContext *C, uiBlock *block, uiBut *but, uiHandle } else if (data->state == BUTTON_STATE_NUM_EDITING) { if (event->type == ESCKEY) { - data->cancel = 1; - data->escapecancel = 1; + data->cancel = TRUE; + data->escapecancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } else if (event->type == MOUSEMOVE) { @@ -4020,8 +4019,8 @@ static int ui_do_but_WAVEFORM(bContext *C, uiBlock *block, uiBut *but, uiHandleB } else if (data->state == BUTTON_STATE_NUM_EDITING) { if (event->type == ESCKEY) { - data->cancel = 1; - data->escapecancel = 1; + data->cancel = TRUE; + data->escapecancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } else if (event->type == MOUSEMOVE) { @@ -4087,8 +4086,8 @@ static int ui_do_but_VECTORSCOPE(bContext *C, uiBlock *block, uiBut *but, uiHand } else if (data->state == BUTTON_STATE_NUM_EDITING) { if (event->type == ESCKEY) { - data->cancel = 1; - data->escapecancel = 1; + data->cancel = TRUE; + data->escapecancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } else if (event->type == MOUSEMOVE) { @@ -4230,7 +4229,7 @@ static int ui_do_but_LINK(bContext *C, uiBut *but, uiHandleButtonData *data, wmE if (event->type == LEFTMOUSE && event->val != KM_PRESS) { if (!(but->flag & UI_SELECT)) - data->cancel = 1; + data->cancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); return WM_UI_HANDLER_BREAK; } @@ -4304,8 +4303,8 @@ static int ui_do_but_TRACKPREVIEW(bContext *C, uiBlock *block, uiBut *but, uiHan } else if (data->state == BUTTON_STATE_NUM_EDITING) { if (event->type == ESCKEY) { - data->cancel = 1; - data->escapecancel = 1; + data->cancel = TRUE; + data->escapecancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } else if (event->type == MOUSEMOVE) { @@ -5327,7 +5326,7 @@ static void button_activate_init(bContext *C, ARegion *ar, uiBut *but, uiButtonA /* XXX curve is temp */ } else { - data->interactive = 1; + data->interactive = TRUE; } data->state = BUTTON_STATE_INIT; @@ -5456,7 +5455,7 @@ void ui_button_active_free(const bContext *C, uiBut *but) * case cleanly anyway in case it happens */ if (but->active) { data = but->active; - data->cancel = 1; + data->cancel = TRUE; button_activate_exit((bContext *)C, data, but, 0, 1); } } @@ -5686,7 +5685,7 @@ static void ui_handle_button_activate(bContext *C, ARegion *ar, uiBut *but, uiBu oldbut = ui_but_find_activated(ar); if (oldbut) { data = oldbut->active; - data->cancel = 1; + data->cancel = TRUE; button_activate_exit(C, data, oldbut, 0, 0); } @@ -5714,18 +5713,18 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but) switch (event->type) { case WINDEACTIVATE: case EVT_BUT_CANCEL: - data->cancel = 1; + data->cancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); retval = WM_UI_HANDLER_CONTINUE; break; case MOUSEMOVE: /* verify if we are still over the button, if not exit */ if (!ui_mouse_inside_button(ar, but, event->x, event->y)) { - data->cancel = 1; + data->cancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } else if (ui_but_find_mouse_over(ar, event->x, event->y) != but) { - data->cancel = 1; + data->cancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); } else if (event->x != event->prevx || event->y != event->prevy) { @@ -5774,7 +5773,7 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but) else if (data->state == BUTTON_STATE_WAIT_RELEASE) { switch (event->type) { case WINDEACTIVATE: - data->cancel = 1; + data->cancel = TRUE; button_activate_state(C, but, BUTTON_STATE_EXIT); break; @@ -5790,18 +5789,18 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but) if (ui_mouse_inside_button(ar, but, event->x, event->y)) { if (!(but->flag & UI_SELECT)) { but->flag |= (UI_SELECT | UI_ACTIVE); - data->cancel = 0; + data->cancel = FALSE; ED_region_tag_redraw(data->region); } } else { if (but->flag & UI_SELECT) { but->flag &= ~(UI_SELECT | UI_ACTIVE); - data->cancel = 1; + data->cancel = TRUE; ED_region_tag_redraw(data->region); } } - } + } break; default: /* otherwise catch mouse release event */ @@ -5857,7 +5856,7 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but) } if (but->type != COL) { /* exception */ - data->cancel = 1; + data->cancel = TRUE; } button_activate_state(C, but, BUTTON_STATE_EXIT); break; @@ -5973,8 +5972,12 @@ static void ui_handle_button_return_submenu(bContext *C, wmEvent *event, uiBut * } if (menu->menuretval & UI_RETURN_UPDATE) { - if (data->interactive) ui_apply_button(C, but->block, but, data, 1); - else ui_check_but(but); + if (data->interactive) { + ui_apply_button(C, but->block, but, data, TRUE); + } + else { + ui_check_but(but); + } menu->menuretval = 0; } @@ -5982,7 +5985,7 @@ static void ui_handle_button_return_submenu(bContext *C, wmEvent *event, uiBut * /* now change button state or exit, which will close the submenu */ if ((menu->menuretval & UI_RETURN_OK) || (menu->menuretval & UI_RETURN_CANCEL)) { if (menu->menuretval != UI_RETURN_OK) - data->cancel = 1; + data->cancel = TRUE; button_activate_exit(C, data, but, 1, 0); } @@ -5997,7 +6000,7 @@ static void ui_handle_button_return_submenu(bContext *C, wmEvent *event, uiBut * button_activate_state(C, but, BUTTON_STATE_HIGHLIGHT); } else { - data->cancel = 1; + data->cancel = TRUE; button_activate_exit(C, data, but, 1, 0); } } @@ -6018,7 +6021,7 @@ static void ui_handle_button_return_submenu(bContext *C, wmEvent *event, uiBut * static void ui_mouse_motion_towards_init(uiPopupBlockHandle *menu, int mx, int my, int force) { if (!menu->dotowards || force) { - menu->dotowards = 1; + menu->dotowards = TRUE; menu->towardsx = mx; menu->towardsy = my; @@ -6034,7 +6037,9 @@ static int ui_mouse_motion_towards_check(uiBlock *block, uiPopupBlockHandle *men float p1[2], p2[2], p3[2], p4[2], oldp[2], newp[2]; int closer; - if (!menu->dotowards) return 0; + if (!menu->dotowards) { + return 0; + } /* verify that we are moving towards one of the edges of the * menu block, in other words, in the triangle formed by the @@ -6066,11 +6071,11 @@ static int ui_mouse_motion_towards_check(uiBlock *block, uiPopupBlockHandle *men isect_point_tri_v2(newp, oldp, p4, p1)); if (!closer) - menu->dotowards = 0; + menu->dotowards = FALSE; /* 1 second timer */ if (PIL_check_seconds_timer() - menu->towardstime > BUTTON_MOUSE_TOWARDS_THRESH) - menu->dotowards = 0; + menu->dotowards = FALSE; return menu->dotowards; } @@ -6314,7 +6319,7 @@ static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle count = 0; for (but = block->buttons.first; but; but = but->next) { - int doit = 0; + int doit = FALSE; if (but->type != LABEL && but->type != SEPR) count++; @@ -6323,16 +6328,17 @@ static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle if (but->rnapoin.data && but->rnaprop) { if (ELEM(RNA_property_subtype(but->rnaprop), PROP_LAYER, PROP_LAYER_MEMBER)) { if (but->rnaindex == act - 1) - doit = 1; + doit = TRUE; } } /* exception for menus like layer buts, with button aligning they're not drawn in order */ else if (but->type == TOGR) { if (but->bitnr == act - 1) - doit = 1; + doit = TRUE; + } + else if (count == act) { + doit = TRUE; } - else if (count == act) - doit = 1; if (doit) { ui_handle_button_activate(C, ar, but, BUTTON_ACTIVATE_APPLY); |