From 5187a5980bcda6b37e30b755efed8aa3bbe936f0 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 29 Nov 2009 21:14:34 +0000 Subject: (svn r18345) -Codechange: Warn the window that it gets initialized, so it can do some work ahead. --- src/window.cpp | 4 +++- src/window_gui.h | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/window.cpp b/src/window.cpp index 95dcce7a0..5e9d22e1b 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -491,6 +491,7 @@ void Window::ReInit(int rx, int ry) int window_width = this->width; int window_height = this->height; + this->OnInit(); /* Re-initialize the window from the ground up. No need to change the nested_array, as all widgets stay where they are. */ this->nested_root->SetupSmallestSize(this, false); this->nested_root->AssignSizePosition(ST_SMALLEST, 0, 0, this->nested_root->smallest_x, this->nested_root->smallest_y, _dynlang.text_dir == TD_RTL); @@ -786,7 +787,8 @@ void Window::InitializeData(WindowClass cls, int window_number, uint32 desc_flag this->window_number = window_number; this->desc_flags = desc_flags; - /* If available, initialize nested widget tree. */ + this->OnInit(); + /* Initialize nested widget tree. */ if (this->nested_array == NULL) { this->nested_array = CallocT(this->nested_array_size); this->nested_root->SetupSmallestSize(this, true); diff --git a/src/window_gui.h b/src/window_gui.h index c72b99569..4e327a3c4 100644 --- a/src/window_gui.h +++ b/src/window_gui.h @@ -534,6 +534,12 @@ public: /*** Event handling ***/ + /** + * Notification that the nested widget tree gets initialized. The event can be used to perform general computations. + * @note #nested_root and/or #nested_array (normally accessed via #GetWidget()) may not exist during this call. + */ + virtual void OnInit() { } + /** * Compute the initial position of the window. * @param *desc The pointer to the WindowDesc of the window to create. -- cgit v1.2.3-54-g00ecf