shared_ptr for IWindow; better Cocoa app lifecycle

This commit is contained in:
Jack Andersen
2017-07-16 16:45:49 -10:00
parent 49afde2fb9
commit b97c82469a
5 changed files with 88 additions and 41 deletions

View File

@@ -51,7 +51,7 @@ public:
virtual const std::vector<SystemString>& getArgs() const=0;
/* Constructors/initializers for sub-objects */
virtual IWindow* newWindow(const SystemString& title, uint32_t drawSamples)=0;
virtual std::shared_ptr<IWindow> newWindow(const SystemString& title, uint32_t drawSamples)=0;
};

View File

@@ -254,14 +254,15 @@ enum class EClipboardType
PNGImage = 3
};
class IWindow
class IWindow : public std::enable_shared_from_this<IWindow>
{
public:
virtual ~IWindow() {}
virtual ~IWindow() = default;
virtual void setCallback(IWindowCallback* cb)=0;
virtual void closeWindow()=0;
virtual void showWindow()=0;
virtual void hideWindow()=0;