mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-06-21 12:39:47 +01:00
Codechange: use IterateFromBack/Front only if the order is important.
Use Iterate if the order does not matter.
This commit is contained in:
parent
22567a1f43
commit
f96f113951
@ -1289,7 +1289,7 @@ void ShowQuery(StringID caption, StringID message, Window *parent, QueryCallback
|
|||||||
{
|
{
|
||||||
if (parent == nullptr) parent = FindWindowById(WC_MAIN_WINDOW, 0);
|
if (parent == nullptr) parent = FindWindowById(WC_MAIN_WINDOW, 0);
|
||||||
|
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::Iterate()) {
|
||||||
if (w->window_class != WC_CONFIRM_POPUP_QUERY) continue;
|
if (w->window_class != WC_CONFIRM_POPUP_QUERY) continue;
|
||||||
|
|
||||||
const QueryWindow *qw = (const QueryWindow *)w;
|
const QueryWindow *qw = (const QueryWindow *)w;
|
||||||
|
@ -245,6 +245,7 @@ static void SndPlayScreenCoordFx(SoundID sound, int left, int right, int top, in
|
|||||||
{
|
{
|
||||||
if (_settings_client.music.effect_vol == 0) return;
|
if (_settings_client.music.effect_vol == 0) return;
|
||||||
|
|
||||||
|
/* Iterate from back, so that main viewport is checked first */
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::IterateFromBack()) {
|
||||||
const Viewport *vp = w->viewport;
|
const Viewport *vp = w->viewport;
|
||||||
|
|
||||||
|
@ -1480,7 +1480,7 @@ void ViewportSign::MarkDirty(ZoomLevel maxzoom) const
|
|||||||
zoomlevels[zoom].bottom = this->top + ScaleByZoom(VPSM_TOP + FONT_HEIGHT_NORMAL + VPSM_BOTTOM + 1, zoom);
|
zoomlevels[zoom].bottom = this->top + ScaleByZoom(VPSM_TOP + FONT_HEIGHT_NORMAL + VPSM_BOTTOM + 1, zoom);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::Iterate()) {
|
||||||
Viewport *vp = w->viewport;
|
Viewport *vp = w->viewport;
|
||||||
if (vp != nullptr && vp->zoom <= maxzoom) {
|
if (vp != nullptr && vp->zoom <= maxzoom) {
|
||||||
assert(vp->width != 0);
|
assert(vp->width != 0);
|
||||||
@ -1953,7 +1953,7 @@ bool MarkAllViewportsDirty(int left, int top, int right, int bottom)
|
|||||||
{
|
{
|
||||||
bool dirty = false;
|
bool dirty = false;
|
||||||
|
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::Iterate()) {
|
||||||
Viewport *vp = w->viewport;
|
Viewport *vp = w->viewport;
|
||||||
if (vp != nullptr) {
|
if (vp != nullptr) {
|
||||||
assert(vp->width != 0);
|
assert(vp->width != 0);
|
||||||
@ -1966,7 +1966,7 @@ bool MarkAllViewportsDirty(int left, int top, int right, int bottom)
|
|||||||
|
|
||||||
void ConstrainAllViewportsZoom()
|
void ConstrainAllViewportsZoom()
|
||||||
{
|
{
|
||||||
for (Window *w : Window::IterateFromFront()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
if (w->viewport == nullptr) continue;
|
if (w->viewport == nullptr) continue;
|
||||||
|
|
||||||
ZoomLevel zoom = static_cast<ZoomLevel>(Clamp(w->viewport->zoom, _settings_client.gui.zoom_min, _settings_client.gui.zoom_max));
|
ZoomLevel zoom = static_cast<ZoomLevel>(Clamp(w->viewport->zoom, _settings_client.gui.zoom_min, _settings_client.gui.zoom_max));
|
||||||
|
@ -501,7 +501,7 @@ void ShowDropDownMenu(Window *w, const StringID *strings, int selected, int butt
|
|||||||
*/
|
*/
|
||||||
int HideDropDownMenu(Window *pw)
|
int HideDropDownMenu(Window *pw)
|
||||||
{
|
{
|
||||||
for (Window *w : Window::IterateFromBack()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
if (w->window_class != WC_DROPDOWN_MENU) continue;
|
if (w->window_class != WC_DROPDOWN_MENU) continue;
|
||||||
|
|
||||||
DropdownWindow *dw = dynamic_cast<DropdownWindow*>(w);
|
DropdownWindow *dw = dynamic_cast<DropdownWindow*>(w);
|
||||||
|
@ -1055,7 +1055,7 @@ void Window::SetShaded(bool make_shaded)
|
|||||||
*/
|
*/
|
||||||
static Window *FindChildWindow(const Window *w, WindowClass wc)
|
static Window *FindChildWindow(const Window *w, WindowClass wc)
|
||||||
{
|
{
|
||||||
for (Window *v : Window::IterateFromBack()) {
|
for (Window *v : Window::Iterate()) {
|
||||||
if ((wc == WC_INVALID || wc == v->window_class) && v->parent == w) return v;
|
if ((wc == WC_INVALID || wc == v->window_class) && v->parent == w) return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1129,7 +1129,7 @@ Window::~Window()
|
|||||||
*/
|
*/
|
||||||
Window *FindWindowById(WindowClass cls, WindowNumber number)
|
Window *FindWindowById(WindowClass cls, WindowNumber number)
|
||||||
{
|
{
|
||||||
for (Window *w : Window::IterateFromBack()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
if (w->window_class == cls && w->window_number == number) return w;
|
if (w->window_class == cls && w->window_number == number) return w;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1144,7 +1144,7 @@ Window *FindWindowById(WindowClass cls, WindowNumber number)
|
|||||||
*/
|
*/
|
||||||
Window *FindWindowByClass(WindowClass cls)
|
Window *FindWindowByClass(WindowClass cls)
|
||||||
{
|
{
|
||||||
for (Window *w : Window::IterateFromBack()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
if (w->window_class == cls) return w;
|
if (w->window_class == cls) return w;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1172,7 +1172,7 @@ void DeleteWindowById(WindowClass cls, WindowNumber number, bool force)
|
|||||||
void DeleteWindowByClass(WindowClass cls)
|
void DeleteWindowByClass(WindowClass cls)
|
||||||
{
|
{
|
||||||
/* Note: the container remains stable, even when deleting windows. */
|
/* Note: the container remains stable, even when deleting windows. */
|
||||||
for (Window *w : Window::IterateFromBack()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
if (w->window_class == cls) {
|
if (w->window_class == cls) {
|
||||||
delete w;
|
delete w;
|
||||||
}
|
}
|
||||||
@ -1188,7 +1188,7 @@ void DeleteWindowByClass(WindowClass cls)
|
|||||||
void DeleteCompanyWindows(CompanyID id)
|
void DeleteCompanyWindows(CompanyID id)
|
||||||
{
|
{
|
||||||
/* Note: the container remains stable, even when deleting windows. */
|
/* Note: the container remains stable, even when deleting windows. */
|
||||||
for (Window *w : Window::IterateFromBack()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
if (w->owner == id) {
|
if (w->owner == id) {
|
||||||
delete w;
|
delete w;
|
||||||
}
|
}
|
||||||
@ -1207,7 +1207,7 @@ void DeleteCompanyWindows(CompanyID id)
|
|||||||
*/
|
*/
|
||||||
void ChangeWindowOwner(Owner old_owner, Owner new_owner)
|
void ChangeWindowOwner(Owner old_owner, Owner new_owner)
|
||||||
{
|
{
|
||||||
for (Window *w : Window::IterateFromBack()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
if (w->owner != old_owner) continue;
|
if (w->owner != old_owner) continue;
|
||||||
|
|
||||||
switch (w->window_class) {
|
switch (w->window_class) {
|
||||||
@ -1576,7 +1576,7 @@ static bool IsGoodAutoPlace1(int left, int top, int width, int height, int toolb
|
|||||||
if (left < 0 || top < toolbar_y || right > _screen.width || bottom > _screen.height) return false;
|
if (left < 0 || top < toolbar_y || right > _screen.width || bottom > _screen.height) return false;
|
||||||
|
|
||||||
/* Make sure it is not obscured by any window. */
|
/* Make sure it is not obscured by any window. */
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::Iterate()) {
|
||||||
if (w->window_class == WC_MAIN_WINDOW) continue;
|
if (w->window_class == WC_MAIN_WINDOW) continue;
|
||||||
|
|
||||||
if (right > w->left &&
|
if (right > w->left &&
|
||||||
@ -1621,7 +1621,7 @@ static bool IsGoodAutoPlace2(int left, int top, int width, int height, int toolb
|
|||||||
if (top < toolbar_y || top > _screen.height - (height >> 2)) return false;
|
if (top < toolbar_y || top > _screen.height - (height >> 2)) return false;
|
||||||
|
|
||||||
/* Make sure it is not obscured by any window. */
|
/* Make sure it is not obscured by any window. */
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::Iterate()) {
|
||||||
if (w->window_class == WC_MAIN_WINDOW) continue;
|
if (w->window_class == WC_MAIN_WINDOW) continue;
|
||||||
|
|
||||||
if (left + width > w->left &&
|
if (left + width > w->left &&
|
||||||
@ -1658,7 +1658,7 @@ static Point GetAutoPlacePosition(int width, int height)
|
|||||||
* The new window must be entirely on-screen, and not overlap with an existing window.
|
* The new window must be entirely on-screen, and not overlap with an existing window.
|
||||||
* Eight starting points are tried, two at each corner.
|
* Eight starting points are tried, two at each corner.
|
||||||
*/
|
*/
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::Iterate()) {
|
||||||
if (w->window_class == WC_MAIN_WINDOW) continue;
|
if (w->window_class == WC_MAIN_WINDOW) continue;
|
||||||
|
|
||||||
if (IsGoodAutoPlace1(w->left + w->width, w->top, width, height, toolbar_y, pt)) return pt;
|
if (IsGoodAutoPlace1(w->left + w->width, w->top, width, height, toolbar_y, pt)) return pt;
|
||||||
@ -1675,7 +1675,7 @@ static Point GetAutoPlacePosition(int width, int height)
|
|||||||
* The new window may be partly off-screen, and must not overlap with an existing window.
|
* The new window may be partly off-screen, and must not overlap with an existing window.
|
||||||
* Only four starting points are tried.
|
* Only four starting points are tried.
|
||||||
*/
|
*/
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::Iterate()) {
|
||||||
if (w->window_class == WC_MAIN_WINDOW) continue;
|
if (w->window_class == WC_MAIN_WINDOW) continue;
|
||||||
|
|
||||||
if (IsGoodAutoPlace2(w->left + w->width, w->top, width, height, toolbar_y, pt)) return pt;
|
if (IsGoodAutoPlace2(w->left + w->width, w->top, width, height, toolbar_y, pt)) return pt;
|
||||||
@ -1692,7 +1692,7 @@ static Point GetAutoPlacePosition(int width, int height)
|
|||||||
int offset_y = std::max<int>(NWidgetLeaf::closebox_dimension.height, FONT_HEIGHT_NORMAL + WD_CAPTIONTEXT_TOP + WD_CAPTIONTEXT_BOTTOM);
|
int offset_y = std::max<int>(NWidgetLeaf::closebox_dimension.height, FONT_HEIGHT_NORMAL + WD_CAPTIONTEXT_TOP + WD_CAPTIONTEXT_BOTTOM);
|
||||||
|
|
||||||
restart:
|
restart:
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::Iterate()) {
|
||||||
if (w->left == left && w->top == top) {
|
if (w->left == left && w->top == top) {
|
||||||
left += offset_x;
|
left += offset_x;
|
||||||
top += offset_y;
|
top += offset_y;
|
||||||
@ -1896,7 +1896,7 @@ void UnInitWindowSystem()
|
|||||||
{
|
{
|
||||||
UnshowCriticalError();
|
UnshowCriticalError();
|
||||||
|
|
||||||
for (Window *w : Window::IterateFromFront()) delete w;
|
for (Window *w : Window::Iterate()) delete w;
|
||||||
|
|
||||||
for (Window *w = _z_front_window; w != nullptr; /* nothing */) {
|
for (Window *w = _z_front_window; w != nullptr; /* nothing */) {
|
||||||
Window *to_del = w;
|
Window *to_del = w;
|
||||||
@ -1925,7 +1925,7 @@ static void DecreaseWindowCounters()
|
|||||||
if (_scroller_click_timeout != 0) _scroller_click_timeout--;
|
if (_scroller_click_timeout != 0) _scroller_click_timeout--;
|
||||||
if (hundredth_tick_timeout != 0) hundredth_tick_timeout--;
|
if (hundredth_tick_timeout != 0) hundredth_tick_timeout--;
|
||||||
|
|
||||||
for (Window *w : Window::IterateFromFront()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
if (!_network_dedicated && hundredth_tick_timeout == 0) w->OnHundredthTick();
|
if (!_network_dedicated && hundredth_tick_timeout == 0) w->OnHundredthTick();
|
||||||
|
|
||||||
if (_scroller_click_timeout == 0) {
|
if (_scroller_click_timeout == 0) {
|
||||||
@ -1951,7 +1951,7 @@ static void DecreaseWindowCounters()
|
|||||||
w->OnMouseLoop();
|
w->OnMouseLoop();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Window *w : Window::IterateFromFront()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
if ((w->flags & WF_TIMEOUT) && --w->timeout_timer == 0) {
|
if ((w->flags & WF_TIMEOUT) && --w->timeout_timer == 0) {
|
||||||
CLRBITS(w->flags, WF_TIMEOUT);
|
CLRBITS(w->flags, WF_TIMEOUT);
|
||||||
|
|
||||||
@ -2190,7 +2190,7 @@ static EventState HandleWindowDragging()
|
|||||||
if (_left_button_down && _cursor.delta.x == 0 && _cursor.delta.y == 0) return ES_HANDLED;
|
if (_left_button_down && _cursor.delta.x == 0 && _cursor.delta.y == 0) return ES_HANDLED;
|
||||||
|
|
||||||
/* Otherwise find the window... */
|
/* Otherwise find the window... */
|
||||||
for (Window *w : Window::IterateFromBack()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
if (w->flags & WF_DRAGGING) {
|
if (w->flags & WF_DRAGGING) {
|
||||||
/* Stop the dragging if the left mouse button was released */
|
/* Stop the dragging if the left mouse button was released */
|
||||||
if (!_left_button_down) {
|
if (!_left_button_down) {
|
||||||
@ -2210,7 +2210,7 @@ static EventState HandleWindowDragging()
|
|||||||
int vsnap = _settings_client.gui.window_snap_radius;
|
int vsnap = _settings_client.gui.window_snap_radius;
|
||||||
int delta;
|
int delta;
|
||||||
|
|
||||||
for (const Window *v : Window::IterateFromBack()) {
|
for (const Window *v : Window::Iterate()) {
|
||||||
if (v == w) continue; // Don't snap at yourself
|
if (v == w) continue; // Don't snap at yourself
|
||||||
|
|
||||||
if (y + w->height > v->top && y < v->top + v->height) {
|
if (y + w->height > v->top && y < v->top + v->height) {
|
||||||
@ -2423,7 +2423,7 @@ static void HandleScrollbarScrolling(Window *w)
|
|||||||
*/
|
*/
|
||||||
static EventState HandleActiveWidget()
|
static EventState HandleActiveWidget()
|
||||||
{
|
{
|
||||||
for (Window *w : Window::IterateFromBack()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
if (w->mouse_capture_widget >= 0) {
|
if (w->mouse_capture_widget >= 0) {
|
||||||
/* Abort if no button is clicked any more. */
|
/* Abort if no button is clicked any more. */
|
||||||
if (!_left_button_down) {
|
if (!_left_button_down) {
|
||||||
@ -3095,7 +3095,7 @@ void InputLoop()
|
|||||||
*/
|
*/
|
||||||
void CallWindowRealtimeTickEvent(uint delta_ms)
|
void CallWindowRealtimeTickEvent(uint delta_ms)
|
||||||
{
|
{
|
||||||
for (Window *w : Window::IterateFromFront()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
w->OnRealtimeTick(delta_ms);
|
w->OnRealtimeTick(delta_ms);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3124,7 +3124,7 @@ void UpdateWindows()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Process invalidations before anything else. */
|
/* Process invalidations before anything else. */
|
||||||
for (Window *w : Window::IterateFromFront()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
w->ProcessScheduledInvalidations();
|
w->ProcessScheduledInvalidations();
|
||||||
w->ProcessHighlightedInvalidations();
|
w->ProcessHighlightedInvalidations();
|
||||||
}
|
}
|
||||||
@ -3157,7 +3157,7 @@ void UpdateWindows()
|
|||||||
if (window_timer.HasElapsed()) {
|
if (window_timer.HasElapsed()) {
|
||||||
window_timer.SetInterval(MILLISECONDS_PER_TICK);
|
window_timer.SetInterval(MILLISECONDS_PER_TICK);
|
||||||
|
|
||||||
for (Window *w : Window::IterateFromFront()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
if ((w->flags & WF_WHITE_BORDER) && --w->white_border_timer == 0) {
|
if ((w->flags & WF_WHITE_BORDER) && --w->white_border_timer == 0) {
|
||||||
CLRBITS(w->flags, WF_WHITE_BORDER);
|
CLRBITS(w->flags, WF_WHITE_BORDER);
|
||||||
w->SetDirty();
|
w->SetDirty();
|
||||||
@ -3167,7 +3167,7 @@ void UpdateWindows()
|
|||||||
|
|
||||||
DrawDirtyBlocks();
|
DrawDirtyBlocks();
|
||||||
|
|
||||||
for (Window *w : Window::IterateFromBack()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
/* Update viewport only if window is not shaded. */
|
/* Update viewport only if window is not shaded. */
|
||||||
if (w->viewport != nullptr && !w->IsShaded()) UpdateViewportPosition(w);
|
if (w->viewport != nullptr && !w->IsShaded()) UpdateViewportPosition(w);
|
||||||
}
|
}
|
||||||
@ -3183,7 +3183,7 @@ void UpdateWindows()
|
|||||||
*/
|
*/
|
||||||
void SetWindowDirty(WindowClass cls, WindowNumber number)
|
void SetWindowDirty(WindowClass cls, WindowNumber number)
|
||||||
{
|
{
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::Iterate()) {
|
||||||
if (w->window_class == cls && w->window_number == number) w->SetDirty();
|
if (w->window_class == cls && w->window_number == number) w->SetDirty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3196,7 +3196,7 @@ void SetWindowDirty(WindowClass cls, WindowNumber number)
|
|||||||
*/
|
*/
|
||||||
void SetWindowWidgetDirty(WindowClass cls, WindowNumber number, byte widget_index)
|
void SetWindowWidgetDirty(WindowClass cls, WindowNumber number, byte widget_index)
|
||||||
{
|
{
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::Iterate()) {
|
||||||
if (w->window_class == cls && w->window_number == number) {
|
if (w->window_class == cls && w->window_number == number) {
|
||||||
w->SetWidgetDirty(widget_index);
|
w->SetWidgetDirty(widget_index);
|
||||||
}
|
}
|
||||||
@ -3209,7 +3209,7 @@ void SetWindowWidgetDirty(WindowClass cls, WindowNumber number, byte widget_inde
|
|||||||
*/
|
*/
|
||||||
void SetWindowClassesDirty(WindowClass cls)
|
void SetWindowClassesDirty(WindowClass cls)
|
||||||
{
|
{
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::Iterate()) {
|
||||||
if (w->window_class == cls) w->SetDirty();
|
if (w->window_class == cls) w->SetDirty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3281,7 +3281,7 @@ void Window::ProcessHighlightedInvalidations()
|
|||||||
*/
|
*/
|
||||||
void InvalidateWindowData(WindowClass cls, WindowNumber number, int data, bool gui_scope)
|
void InvalidateWindowData(WindowClass cls, WindowNumber number, int data, bool gui_scope)
|
||||||
{
|
{
|
||||||
for (Window *w : Window::IterateFromBack()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
if (w->window_class == cls && w->window_number == number) {
|
if (w->window_class == cls && w->window_number == number) {
|
||||||
w->InvalidateData(data, gui_scope);
|
w->InvalidateData(data, gui_scope);
|
||||||
}
|
}
|
||||||
@ -3298,7 +3298,7 @@ void InvalidateWindowData(WindowClass cls, WindowNumber number, int data, bool g
|
|||||||
*/
|
*/
|
||||||
void InvalidateWindowClassesData(WindowClass cls, int data, bool gui_scope)
|
void InvalidateWindowClassesData(WindowClass cls, int data, bool gui_scope)
|
||||||
{
|
{
|
||||||
for (Window *w : Window::IterateFromBack()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
if (w->window_class == cls) {
|
if (w->window_class == cls) {
|
||||||
w->InvalidateData(data, gui_scope);
|
w->InvalidateData(data, gui_scope);
|
||||||
}
|
}
|
||||||
@ -3310,7 +3310,7 @@ void InvalidateWindowClassesData(WindowClass cls, int data, bool gui_scope)
|
|||||||
*/
|
*/
|
||||||
void CallWindowGameTickEvent()
|
void CallWindowGameTickEvent()
|
||||||
{
|
{
|
||||||
for (Window *w : Window::IterateFromFront()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
w->OnGameTick();
|
w->OnGameTick();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3324,7 +3324,7 @@ void CallWindowGameTickEvent()
|
|||||||
void DeleteNonVitalWindows()
|
void DeleteNonVitalWindows()
|
||||||
{
|
{
|
||||||
/* Note: the container remains stable, even when deleting windows. */
|
/* Note: the container remains stable, even when deleting windows. */
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::Iterate()) {
|
||||||
if (w->window_class != WC_MAIN_WINDOW &&
|
if (w->window_class != WC_MAIN_WINDOW &&
|
||||||
w->window_class != WC_SELECT_GAME &&
|
w->window_class != WC_SELECT_GAME &&
|
||||||
w->window_class != WC_MAIN_TOOLBAR &&
|
w->window_class != WC_MAIN_TOOLBAR &&
|
||||||
@ -3350,7 +3350,7 @@ void DeleteAllNonVitalWindows()
|
|||||||
DeleteNonVitalWindows();
|
DeleteNonVitalWindows();
|
||||||
|
|
||||||
/* Note: the container remains stable, even when deleting windows. */
|
/* Note: the container remains stable, even when deleting windows. */
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::Iterate()) {
|
||||||
if (w->flags & WF_STICKY) {
|
if (w->flags & WF_STICKY) {
|
||||||
delete w;
|
delete w;
|
||||||
}
|
}
|
||||||
@ -3375,13 +3375,13 @@ void DeleteAllMessages()
|
|||||||
void DeleteConstructionWindows()
|
void DeleteConstructionWindows()
|
||||||
{
|
{
|
||||||
/* Note: the container remains stable, even when deleting windows. */
|
/* Note: the container remains stable, even when deleting windows. */
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::Iterate()) {
|
||||||
if (w->window_desc->flags & WDF_CONSTRUCTION) {
|
if (w->window_desc->flags & WDF_CONSTRUCTION) {
|
||||||
delete w;
|
delete w;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const Window *w : Window::IterateFromBack()) w->SetDirty();
|
for (const Window *w : Window::Iterate()) w->SetDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Delete all always on-top windows to get an empty screen */
|
/** Delete all always on-top windows to get an empty screen */
|
||||||
@ -3400,7 +3400,7 @@ void ReInitAllWindows(bool zoom_changed)
|
|||||||
extern void InitDepotWindowBlockSizes();
|
extern void InitDepotWindowBlockSizes();
|
||||||
InitDepotWindowBlockSizes();
|
InitDepotWindowBlockSizes();
|
||||||
|
|
||||||
for (Window *w : Window::IterateFromBack()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
if (zoom_changed) w->nested_root->AdjustPaddingForZoom();
|
if (zoom_changed) w->nested_root->AdjustPaddingForZoom();
|
||||||
w->ReInit();
|
w->ReInit();
|
||||||
}
|
}
|
||||||
@ -3490,7 +3490,7 @@ int PositionNetworkChatWindow(Window *w)
|
|||||||
*/
|
*/
|
||||||
void ChangeVehicleViewports(VehicleID from_index, VehicleID to_index)
|
void ChangeVehicleViewports(VehicleID from_index, VehicleID to_index)
|
||||||
{
|
{
|
||||||
for (const Window *w : Window::IterateFromBack()) {
|
for (const Window *w : Window::Iterate()) {
|
||||||
if (w->viewport != nullptr && w->viewport->follow_vehicle == from_index) {
|
if (w->viewport != nullptr && w->viewport->follow_vehicle == from_index) {
|
||||||
w->viewport->follow_vehicle = to_index;
|
w->viewport->follow_vehicle = to_index;
|
||||||
w->SetDirty();
|
w->SetDirty();
|
||||||
@ -3508,7 +3508,7 @@ void RelocateAllWindows(int neww, int newh)
|
|||||||
{
|
{
|
||||||
DeleteWindowById(WC_DROPDOWN_MENU, 0);
|
DeleteWindowById(WC_DROPDOWN_MENU, 0);
|
||||||
|
|
||||||
for (Window *w : Window::IterateFromBack()) {
|
for (Window *w : Window::Iterate()) {
|
||||||
int left, top;
|
int left, top;
|
||||||
/* XXX - this probably needs something more sane. For example specifying
|
/* XXX - this probably needs something more sane. For example specifying
|
||||||
* in a 'backup'-desc that the window should always be centered. */
|
* in a 'backup'-desc that the window should always be centered. */
|
||||||
|
@ -853,6 +853,7 @@ public:
|
|||||||
WindowIterator<Tfront> begin() { return WindowIterator<Tfront>(Tfront ? _z_front_window : _z_back_window); }
|
WindowIterator<Tfront> begin() { return WindowIterator<Tfront>(Tfront ? _z_front_window : _z_back_window); }
|
||||||
WindowIterator<Tfront> end() { return WindowIterator<Tfront>(nullptr); }
|
WindowIterator<Tfront> end() { return WindowIterator<Tfront>(nullptr); }
|
||||||
};
|
};
|
||||||
|
using Iterate = AllWindows<false>; //!< Iterate all windows in whatever order is easiest.
|
||||||
using IterateFromBack = AllWindows<false>; //!< Iterate all windows in Z order from back to front.
|
using IterateFromBack = AllWindows<false>; //!< Iterate all windows in Z order from back to front.
|
||||||
using IterateFromFront = AllWindows<true>; //!< Iterate all windows in Z order from front to back.
|
using IterateFromFront = AllWindows<true>; //!< Iterate all windows in Z order from front to back.
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user