aboutsummaryrefslogtreecommitdiff
path: root/include/cru/platform/native
diff options
context:
space:
mode:
Diffstat (limited to 'include/cru/platform/native')
-rw-r--r--include/cru/platform/native/ui_application.hpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/include/cru/platform/native/ui_application.hpp b/include/cru/platform/native/ui_application.hpp
index edbcc578..e02904bb 100644
--- a/include/cru/platform/native/ui_application.hpp
+++ b/include/cru/platform/native/ui_application.hpp
@@ -20,10 +20,15 @@ struct IUiApplication : public virtual INativeResource {
public:
static IUiApplication* GetInstance() { return instance; }
- protected:
+ private:
static IUiApplication* instance;
+ protected:
+ IUiApplication();
+
public:
+ ~IUiApplication() override;
+
// Block current thread and run the message loop. Return the exit code when
// message loop gets a quit message (possibly posted by method RequestQuit).
virtual int Run() = 0;
@@ -31,13 +36,13 @@ struct IUiApplication : public virtual INativeResource {
// Post a quit message with given quit code.
virtual void RequestQuit(int quit_code) = 0;
- virtual void AddOnQuitHandler(const std::function<void()>& handler) = 0;
+ virtual void AddOnQuitHandler(std::function<void()> handler) = 0;
- virtual void InvokeLater(const std::function<void()>& action) = 0;
+ virtual void InvokeLater(std::function<void()> action) = 0;
virtual unsigned long SetTimeout(std::chrono::milliseconds milliseconds,
- const std::function<void()>& action) = 0;
+ std::function<void()> action) = 0;
virtual unsigned long SetInterval(std::chrono::milliseconds milliseconds,
- const std::function<void()>& action) = 0;
+ std::function<void()> action) = 0;
virtual void CancelTimer(unsigned long id) = 0;
virtual std::vector<INativeWindow*> GetAllWindow() = 0;