From 9a87e1e0ea23e4ca76ebc1b2d9bcc08110d5a674 Mon Sep 17 00:00:00 2001 From: rubidium Date: Mon, 4 Dec 2006 13:57:04 +0000 Subject: [PATCH] (svn r7356) -Codechange: replace 'for (i = 0, wi = w->widget; wi->type != WWT_LAST; i++, wi++)' type for loops with 'for (i = 0; i < w->window_count; i++) { wi = &w->widget[i];'-type for loops for better readability. -Codechange: use IsWindowWidget(Disabled|Hidden) in favor of IsWidget(Disabled|Hidden). --- widget.c | 25 ++++++++++++------------- window.c | 8 ++++---- window.h | 26 ++------------------------ 3 files changed, 18 insertions(+), 41 deletions(-) diff --git a/widget.c b/widget.c index c927530913..2c77ccd7c6 100644 --- a/widget.c +++ b/widget.c @@ -132,16 +132,17 @@ void ScrollbarClickHandler(Window *w, const Widget *wi, int x, int y) */ int GetWidgetFromPos(const Window *w, int x, int y) { - const Widget *wi; - int index, found_index = -1; + uint index; + int found_index = -1; // Go through the widgets and check if we find the widget that the coordinate is // inside. - for (index = 0,wi = w->widget; wi->type != WWT_LAST; index++, wi++) { + for (index = 0; index < w->widget_count; index++) { + const Widget *wi = &w->widget[index]; if (wi->type == WWT_EMPTY || wi->type == WWT_FRAME) continue; if (x >= wi->left && x <= wi->right && y >= wi->top && y <= wi->bottom && - !IsWidgetHidden(wi)) { + !IsWindowWidgetHidden(w, index)) { found_index = index; } } @@ -184,21 +185,19 @@ void DrawFrameRect(int left, int top, int right, int bottom, int ctab, FrameFlag void DrawWindowWidgets(const Window *w) { - const Widget *wi; const DrawPixelInfo* dpi = _cur_dpi; Rect r; - int i = 0; + uint i; - wi = w->widget; - - do { - bool clicked = IsWindowWidgetLowered((Window*)w, i); + for (i = 0; i < w->widget_count; i++) { + const Widget *wi = &w->widget[i]; + bool clicked = IsWindowWidgetLowered(w, i); if (dpi->left > (r.right=/*w->left + */wi->right) || dpi->left + dpi->width <= (r.left=wi->left/* + w->left*/) || dpi->top > (r.bottom=/*w->top +*/ wi->bottom) || dpi->top + dpi->height <= (r.top = /*w->top +*/ wi->top) || - IsWidgetHidden(wi)) { + IsWindowWidgetHidden(w, i)) { continue; } @@ -457,12 +456,12 @@ void DrawWindowWidgets(const Window *w) DrawStringCenteredTruncated(r.left + 2, r.right - 2, r.top+2, wi->data, 0x84); draw_default:; - if (IsWidgetDisabled(wi)) { + if (IsWindowWidgetDisabled(w, i)) { GfxFillRect(r.left+1, r.top+1, r.right-1, r.bottom-1, _colour_gradient[wi->color&0xF][2] | PALETTE_MODIFIER_GREYOUT); } } } - } while (i++, (++wi)->type != WWT_LAST); + } if (w->flags4 & WF_WHITE_BORDER_MASK) { diff --git a/window.c b/window.c index e9ef7f7b73..2e4c3787c1 100644 --- a/window.c +++ b/window.c @@ -100,10 +100,10 @@ static void DispatchLeftClickEvent(Window *w, int x, int y) e.we.click.widget = GetWidgetFromPos(w, x, y); if (e.we.click.widget < 0) return; /* exit if clicked outside of widgets */ - wi = &w->widget[e.we.click.widget]; - /* don't allow any interaction if the button has been disabled */ - if (IsWidgetDisabled(wi)) return; + if (IsWindowWidgetDisabled(w, e.we.click.widget)) return; + + wi = &w->widget[e.we.click.widget]; if (wi->type & WWB_MASK) { /* special widget handling for buttons*/ @@ -1741,7 +1741,7 @@ void InvalidateWidget(const Window *w, byte widget_index) const Widget *wi = &w->widget[widget_index]; /* Don't redraw the window if the widget is invisible or of no-type */ - if (wi->type == WWT_EMPTY || IsWidgetHidden(wi)) return; + if (wi->type == WWT_EMPTY || IsWindowWidgetHidden(w, widget_index)) return; SetDirtyBlocks(w->left + wi->left, w->top + wi->top, w->left + wi->right + 1, w->top + wi->bottom + 1); } diff --git a/window.h b/window.h index 3151b8911e..27c4097d43 100644 --- a/window.h +++ b/window.h @@ -665,17 +665,6 @@ static inline void EnableWindowWidget(Window *w, byte widget_index) SetWindowWidgetDisabledState(w, widget_index, false); } -/** - * Gets the enabled/disabled status of a widget. - * This is the same as IsWindowWidgetDisabled, only working on direct widget, instead of an index - * @param wi : Widget to get the status from - * @return status of the widget ie: disabled = true, enabled = false - */ -static inline bool IsWidgetDisabled(const Widget *wi) -{ - return HASBIT(wi->display_flags, WIDG_DISABLED); -} - /** * Gets the enabled/disabled status of a widget. * @param w : Window on which the widget is located @@ -685,7 +674,7 @@ static inline bool IsWidgetDisabled(const Widget *wi) static inline bool IsWindowWidgetDisabled(const Window *w, byte widget_index) { assert(widget_index < w->widget_count); - return IsWidgetDisabled(&w->widget[widget_index]); + return HASBIT(w->widget[widget_index].display_flags, WIDG_DISABLED); } /** @@ -722,17 +711,6 @@ static inline void ShowWindowWidget(Window *w, byte widget_index) SetWindowWidgetHiddenState(w, widget_index, false); } -/** - * Gets the visibility of a widget. - * Works directly on a widget, instead of an index - * @param wi Widget to get the status from - * @return status of the widget ie. hidden = true, visible = false - */ -static inline bool IsWidgetHidden(const Widget *wi) -{ - return HASBIT(wi->display_flags, WIDG_HIDDEN); -} - /** * Gets the visibility of a widget. * @param w : Window on which the widget is located @@ -742,7 +720,7 @@ static inline bool IsWidgetHidden(const Widget *wi) static inline bool IsWindowWidgetHidden(const Window *w, byte widget_index) { assert(widget_index < w->widget_count); - return IsWidgetHidden(&w->widget[widget_index]); + return HASBIT(w->widget[widget_index].display_flags, WIDG_HIDDEN); } /**