aboutsummaryrefslogtreecommitdiff
path: root/src/ui/window.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/window.cpp')
-rw-r--r--src/ui/window.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/ui/window.cpp b/src/ui/window.cpp
index 34a54512..39528550 100644
--- a/src/ui/window.cpp
+++ b/src/ui/window.cpp
@@ -352,6 +352,12 @@ namespace cru
}
+ void Window::Relayout()
+ {
+ OnMeasure(GetSize());
+ OnLayout(Rect(Point::Zero(), GetSize()));
+ }
+
void Window::RefreshControlList() {
control_list_.clear();
TraverseDescendants([this](Control* control) {
@@ -456,6 +462,16 @@ namespace cru
return ::PeekMessageW(&msg, hwnd_, message, message, PM_NOREMOVE) != 0;
}
+ Size Window::OnMeasure(const Size& available_size)
+ {
+ ForeachChild([available_size](Control* control)
+ {
+ control->Measure(available_size);
+ });
+
+ return available_size;
+ }
+
void Window::OnDestroyInternal() {
Application::GetInstance()->GetWindowManager()->UnregisterWindow(hwnd_);
hwnd_ = nullptr;