From 1288ef88b8d7579d16da4a759b732d61347b31be Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 22 Aug 2023 17:18:39 +0200 Subject: [PATCH] Platform/PlatformWindow: pass owner in constructor instead of setting the variable directly on the object. it is cleaner. --- source/Platform/PlatformWindow.cpp | 7 +++---- source/Platform/PlatformWindow.h | 2 +- source/Platform/Unix/X11Window.cpp | 4 ++-- source/Platform/Unix/X11Window.h | 4 +++- source/Platform/Win32/Win32Window.cpp | 3 ++- source/Platform/Win32/Win32Window.h | 4 +++- 6 files changed, 14 insertions(+), 10 deletions(-) diff --git a/source/Platform/PlatformWindow.cpp b/source/Platform/PlatformWindow.cpp index c1bdd26..c09411f 100644 --- a/source/Platform/PlatformWindow.cpp +++ b/source/Platform/PlatformWindow.cpp @@ -16,12 +16,11 @@ namespace sp { PlatformWindow* PlatformWindow::make(Window* owner) { - WindowType* disp = new WindowType(); - disp->m_owner = owner; - return disp; + return new WindowType(owner); } -PlatformWindow::PlatformWindow() +PlatformWindow::PlatformWindow(Window* owner) : +m_owner (owner) { } diff --git a/source/Platform/PlatformWindow.h b/source/Platform/PlatformWindow.h index 963fa69..95d09e5 100644 --- a/source/Platform/PlatformWindow.h +++ b/source/Platform/PlatformWindow.h @@ -60,7 +60,7 @@ public : protected : - PlatformWindow(); + PlatformWindow(Window* owner); void onReshape(int width, int height); diff --git a/source/Platform/Unix/X11Window.cpp b/source/Platform/Unix/X11Window.cpp index cf33c80..7f9f87d 100644 --- a/source/Platform/Unix/X11Window.cpp +++ b/source/Platform/Unix/X11Window.cpp @@ -28,8 +28,8 @@ X11Window* X11Window::getFocused() return _priv::focused_window; } -X11Window:: -X11Window() : +X11Window::X11Window(Window *owner) : +PlatformWindow (owner), m_screen (0), m_size (200,200), m_cur_last (0), diff --git a/source/Platform/Unix/X11Window.h b/source/Platform/Unix/X11Window.h index 612619a..7b8fcaf 100644 --- a/source/Platform/Unix/X11Window.h +++ b/source/Platform/Unix/X11Window.h @@ -11,13 +11,15 @@ namespace sp { +class Window; + class X11Window : public PlatformWindow { public : static X11Window* getFocused(); - X11Window(); + X11Window(Window *owner); virtual bool create(WindowDescription description); diff --git a/source/Platform/Win32/Win32Window.cpp b/source/Platform/Win32/Win32Window.cpp index a3cce29..b6dd5e4 100644 --- a/source/Platform/Win32/Win32Window.cpp +++ b/source/Platform/Win32/Win32Window.cpp @@ -18,7 +18,8 @@ namespace sp { static bool firstTime = true; -Win32Window::Win32Window() : +Win32Window::Win32Window(Window* owner) : +PlatformWindow (owner), m_handle (NULL), m_icon (0), m_cursor (0), diff --git a/source/Platform/Win32/Win32Window.h b/source/Platform/Win32/Win32Window.h index b2cbb2d..15a9201 100644 --- a/source/Platform/Win32/Win32Window.h +++ b/source/Platform/Win32/Win32Window.h @@ -9,10 +9,12 @@ namespace sp { +class Window; + class Win32Window : public PlatformWindow { public : - Win32Window(); + Win32Window(Window* owner); virtual ~Win32Window(); virtual bool create(WindowDescription description);