From: <sv...@ww...> - 2007-04-23 19:35:16
|
Author: nsmoooose Date: 2007-04-23 12:35:07 -0700 (Mon, 23 Apr 2007) New Revision: 2085 Modified: branches/python_bindings_for_ui/csp/cspsim/wf/Window.cpp branches/python_bindings_for_ui/csp/cspsim/wf/Window.h branches/python_bindings_for_ui/csp/cspsim/wf/WindowManager.h Log: Window is now using a weak reference to the window manager. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=2085 Modified: branches/python_bindings_for_ui/csp/cspsim/wf/Window.cpp =================================================================== --- branches/python_bindings_for_ui/csp/cspsim/wf/Window.cpp 2007-04-23 18:15:47 UTC (rev 2084) +++ branches/python_bindings_for_ui/csp/cspsim/wf/Window.cpp 2007-04-23 19:35:07 UTC (rev 2085) @@ -32,8 +32,7 @@ namespace wf { -Window::Window() : - m_WindowManager(NULL), m_StringResources(new StringResourceManager) { +Window::Window() : m_StringResources(new StringResourceManager) { } Window::~Window() { @@ -51,7 +50,7 @@ } WindowManager* Window::getWindowManager() { - return m_WindowManager; + return m_WindowManager.get(); } void Window::setWindowManager(WindowManager* manager) { @@ -73,7 +72,7 @@ } void Window::close() { - if(m_WindowManager != NULL) { + if(m_WindowManager.valid()) { m_WindowManager->close(this); } } @@ -121,7 +120,7 @@ } void Window::centerWindow() { - if(m_WindowManager == NULL) { + if(!m_WindowManager.valid()) { return; } @@ -139,7 +138,7 @@ } void Window::maximizeWindow() { - if(m_WindowManager == NULL) { + if(!m_WindowManager.valid()) { return; } Modified: branches/python_bindings_for_ui/csp/cspsim/wf/Window.h =================================================================== --- branches/python_bindings_for_ui/csp/cspsim/wf/Window.h 2007-04-23 18:15:47 UTC (rev 2084) +++ branches/python_bindings_for_ui/csp/cspsim/wf/Window.h 2007-04-23 19:35:07 UTC (rev 2085) @@ -27,6 +27,7 @@ #include <map> #include <csp/csplib/util/Ref.h> +#include <csp/csplib/util/WeakRef.h> #include <csp/cspsim/wf/SingleControlContainer.h> #include <csp/cspsim/wf/StringResourceManager.h> @@ -81,7 +82,7 @@ } private: - WindowManager* m_WindowManager; + WeakRef<WindowManager> m_WindowManager; std::string m_Theme; Ref<StringResourceManager> m_StringResources; Modified: branches/python_bindings_for_ui/csp/cspsim/wf/WindowManager.h =================================================================== --- branches/python_bindings_for_ui/csp/cspsim/wf/WindowManager.h 2007-04-23 18:15:47 UTC (rev 2084) +++ branches/python_bindings_for_ui/csp/cspsim/wf/WindowManager.h 2007-04-23 19:35:07 UTC (rev 2085) @@ -27,6 +27,7 @@ #include <csp/csplib/util/Ref.h> #include <csp/csplib/util/Referenced.h> +#include <csp/csplib/util/WeakReferenced.h> #include <csp/cspsim/wf/Window.h> #include <osg/ref_ptr> @@ -47,7 +48,7 @@ class Serialization; -class CSPSIM_EXPORT WindowManager : public Referenced { +class CSPSIM_EXPORT WindowManager : public Referenced, public WeakReferenced { public: WindowManager(osgUtil::SceneView* view); WindowManager(); |