Changeset - r28707:c398be190d4b
[Not reviewed]
master
0 2 0
Peter Nelson - 6 months ago 2023-11-11 21:51:39
peter1138@openttd.org
Codechange: Expose `FindChildWindow()` as a method of `Window`.
2 files changed with 5 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/window.cpp
Show inline comments
 
@@ -1020,10 +1020,10 @@ void Window::SetShaded(bool make_shaded)
 
 * @param wc Window class of the window to remove; #WC_INVALID if class does not matter
 
 * @return a Window pointer that is the child of \a w, or \c nullptr otherwise
 
 */
 
static Window *FindChildWindow(const Window *w, WindowClass wc)
 
Window *Window::FindChildWindow(WindowClass wc) const
 
{
 
	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 == this) return v;
 
	}
 

	
 
	return nullptr;
 
@@ -1035,10 +1035,10 @@ static Window *FindChildWindow(const Win
 
 */
 
void Window::CloseChildWindows(WindowClass wc) const
 
{
 
	Window *child = FindChildWindow(this, wc);
 
	Window *child = this->FindChildWindow(wc);
 
	while (child != nullptr) {
 
		child->Close();
 
		child = FindChildWindow(this, wc);
 
		child = this->FindChildWindow(wc);
 
	}
 
}
 

	
src/window_gui.h
Show inline comments
 
@@ -545,6 +545,7 @@ public:
 
	void DrawSortButtonState(WidgetID widget, SortButtonState state) const;
 
	static int SortButtonWidth();
 

	
 
	Window *FindChildWindow(WindowClass wc = WC_INVALID) const;
 
	void CloseChildWindows(WindowClass wc = WC_INVALID) const;
 
	virtual void Close(int data = 0);
 
	static void DeleteClosedWindows();
0 comments (0 inline, 0 general)