summaryrefslogtreecommitdiff
path: root/Ivy/IvySynchroWnd.h
diff options
context:
space:
mode:
Diffstat (limited to 'Ivy/IvySynchroWnd.h')
-rw-r--r--Ivy/IvySynchroWnd.h26
1 files changed, 23 insertions, 3 deletions
diff --git a/Ivy/IvySynchroWnd.h b/Ivy/IvySynchroWnd.h
index ffa44ba..b90e2a0 100644
--- a/Ivy/IvySynchroWnd.h
+++ b/Ivy/IvySynchroWnd.h
@@ -13,7 +13,7 @@ class IvySynchroWnd
{
// Construction
public:
- IvySynchroWnd();
+
// Attributes
public:
@@ -21,7 +21,10 @@ public:
// Operations
public:
+ static void PostQuit();
void PostIvyCB( IvySynchronousCallback *cb );
+ static void Init(bool synchronous);
+ static void Finish();
// Implementation
public:
@@ -30,8 +33,9 @@ protected:
HWND m_hWnd;
protected:
+ IvySynchroWnd();
// Unique instance of this class
- static IvySynchroWnd *m_synchro;
+ static IvySynchroWnd *m_synchro; // for synchronous Windowed
// Generated message map functions
static LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
@@ -49,13 +53,14 @@ protected:
LRESULT OnIvyCB(WPARAM wParam, LPARAM lParam);
friend class IvySynchronousMessageCallback;
friend class IvySynchronousApplicationCallback;
+ friend class IvySynchronousBindingCallback;
+ friend class IvySynchronousDieCallback;
};
class IvySynchronousCallback
{
protected:
IvyApplication *app;
- static IvySynchroWnd *m_synchro;
friend class Ivy;
public:
virtual void CallCallback() = 0;
@@ -107,3 +112,18 @@ protected:
friend class IvySynchroWnd;
};
+
+class IvySynchronousDieCallback: public IvySynchronousCallback, public IvyDieCallback
+{
+public:
+ IvySynchronousDieCallback( IvyDieCallback *cb );
+ virtual void CallCallback();
+ virtual bool OnDie (IvyApplication *app, int id, const char *arg );
+protected:
+ IvyDieCallback *target;
+
+ int id;
+ const char *arg;
+
+ friend class IvySynchroWnd;
+}; \ No newline at end of file