diff options
Diffstat (limited to 'src/interface')
| -rw-r--r-- | src/interface/Engine.cpp | 6 | ||||
| -rw-r--r-- | src/interface/Window.cpp | 12 | ||||
| -rw-r--r-- | src/interface/Window.h | 4 |
3 files changed, 22 insertions, 0 deletions
diff --git a/src/interface/Engine.cpp b/src/interface/Engine.cpp index ddf29c6..bad931c 100644 --- a/src/interface/Engine.cpp +++ b/src/interface/Engine.cpp @@ -82,6 +82,9 @@ void Engine::ShowWindow(Window * window) windows.push(state_); } + if(state_) + state_->DoBlur(); + state_ = window; } @@ -102,6 +105,9 @@ void Engine::CloseWindow() } state_ = windows.top(); windows.pop(); + + if(state_) + state_->DoFocus(); } else { diff --git a/src/interface/Window.cpp b/src/interface/Window.cpp index 8dba69a..30e2205 100644 --- a/src/interface/Window.cpp +++ b/src/interface/Window.cpp @@ -107,6 +107,18 @@ void Window::DoInitialized() OnInitialized(); } +void Window::DoBlur() +{ + + OnBlur(); +} + +void Window::DoFocus() +{ + + OnFocus(); +} + void Window::DoDraw() { OnDraw(); diff --git a/src/interface/Window.h b/src/interface/Window.h index c2c5e16..83fd1bc 100644 --- a/src/interface/Window.h +++ b/src/interface/Window.h @@ -52,6 +52,8 @@ enum ChromeStyle virtual void DoExit(); virtual void DoTick(float dt); virtual void DoDraw(); + virtual void DoFocus(); + virtual void DoBlur(); virtual void DoMouseMove(int x, int y, int dx, int dy); virtual void DoMouseDown(int x, int y, unsigned button); @@ -73,6 +75,8 @@ enum ChromeStyle virtual void OnExit() {} virtual void OnTick(float dt) {} virtual void OnDraw() {} + virtual void OnFocus() {} + virtual void OnBlur() {} virtual void OnMouseMove(int x, int y, int dx, int dy) {} virtual void OnMouseDown(int x, int y, unsigned button) {} |
