diff options
author | Darkvater <darkvater@openttd.org> | 2006-11-07 13:06:02 +0000 |
---|---|---|
committer | Darkvater <darkvater@openttd.org> | 2006-11-07 13:06:02 +0000 |
commit | 65e051fe93d12d0cc53258e047b6bf86f47c9ce7 (patch) | |
tree | 99bc81d869567e52619264b8aa261b56be9836eb /viewport.c | |
parent | e90bc1681f4b9cdd2a726332113d161f69217ff4 (diff) | |
download | openttd-65e051fe93d12d0cc53258e047b6bf86f47c9ce7.tar.xz |
(svn r7094) -Codechange: Get rid of the window-specific code in DoZoomInOutWindow (enable, disable
buttons depending on calling window, game-mode); handle it by broadcasting messages
to the calling window, because that knows how and what buttons to set.
Diffstat (limited to 'viewport.c')
-rw-r--r-- | viewport.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/viewport.c b/viewport.c index 79ae0b269..6d6f5cf58 100644 --- a/viewport.c +++ b/viewport.c @@ -375,6 +375,21 @@ Point GetTileZoomCenterWindow(bool in, Window * w) return GetTileFromScreenXY(_cursor.pos.x, _cursor.pos.y, x + vp->left, y + vp->top); } +/** Update the status of the zoom-buttons according to the zoom-level + * of the viewport. This will update their status and invalidate accordingly + * @param window pointer to the window that has the zoom buttons + * @param vp pointer to the viewport whose zoom-level the buttons represent + * @param widget_zoom_in widget index for window with zoom-in button + * @param widget_zoom_out widget index for window with zoom-out button */ +void HandleZoomMessage(Window *w, const ViewPort *vp, byte widget_zoom_in, byte widget_zoom_out) +{ + SetWindowWidgetDisabledState(w, widget_zoom_in, vp->zoom == 0); + InvalidateWidget(w, widget_zoom_in); + + SetWindowWidgetDisabledState(w, widget_zoom_out, vp->zoom == 2); + InvalidateWidget(w, widget_zoom_out); +} + void DrawGroundSpriteAt(uint32 image, int32 x, int32 y, byte z) { ViewportDrawer *vd = _cur_vd; |