]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/os2/app.h
Make storing non-trivial data in wxThreadSpecificInfo possible.
[wxWidgets.git] / include / wx / os2 / app.h
index 69974b6c55360406049b2a3dece9f6c8ce74c66c..984783963d6051a71801afd7d586fcc3adb6f662 100644 (file)
@@ -1,10 +1,9 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        app.h
+// Name:        wx/os2/app.h
 // Purpose:     wxApp class
 // Author:      David Webster
 // Modified by:
 // Created:     10/13/99
-// RCS-ID:      $Id$
 // Copyright:   (c) David Webster
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 #ifndef _WX_APP_H_
 #define _WX_APP_H_
 
+#ifdef __WATCOMC__
+
+#include <types.h>
+#include <sys/ioctl.h>
+#include <sys/select.h>
+
+#else
+
+#include <sys/time.h>
+#include <sys/types.h>
+
+#ifdef __EMX__
+#include <unistd.h>
+#else
+#include <utils.h>
+#undef BYTE_ORDER
+#include <types.h>
+#define INCL_ORDERS
+#endif
+
+#endif
+
 #include "wx/event.h"
 #include "wx/icon.h"
 
-class WXDLLEXPORT wxFrame;
-class WXDLLEXPORT wxWindow;
-class WXDLLEXPORT wxApp ;
-class WXDLLEXPORT wxKeyEvent;
-class WXDLLEXPORT wxLog;
+class WXDLLIMPEXP_FWD_CORE wxFrame;
+class WXDLLIMPEXP_FWD_CORE wxWindow;
+class WXDLLIMPEXP_FWD_CORE wxApp;
+class WXDLLIMPEXP_FWD_CORE wxKeyEvent;
+class WXDLLIMPEXP_FWD_BASE wxLog;
 
-WXDLLEXPORT_DATA(extern wxApp*) wxTheApp;
+WXDLLIMPEXP_DATA_CORE(extern wxApp*) wxTheApp;
+WXDLLIMPEXP_DATA_CORE(extern HAB)    vHabmain;
 
 // Force an exit from main loop
-void WXDLLEXPORT wxExit(void);
+void WXDLLIMPEXP_CORE wxExit(void);
 
 // Yield to other apps/messages
-bool WXDLLEXPORT wxYield(void);
+bool WXDLLIMPEXP_CORE wxYield(void);
+
+extern MRESULT EXPENTRY wxWndProc( HWND
+                                  ,ULONG
+                                  ,MPARAM
+                                  ,MPARAM
+                                 );
+
 
 // Represents the application. Derive OnInit and declare
 // a new App object to start application
-class WXDLLEXPORT wxApp : public wxAppBase
+class WXDLLIMPEXP_CORE wxApp : public wxAppBase
 {
     DECLARE_DYNAMIC_CLASS(wxApp)
 
@@ -39,16 +68,13 @@ public:
     wxApp();
     virtual ~wxApp();
 
-    virtual bool OnInitGui(void);
-
     // override base class (pure) virtuals
-    virtual int  MainLoop(void);
-    virtual void ExitMainLoop(void);
-    virtual bool Initialized(void);
-    virtual bool Pending(void) ;
-    virtual void Dispatch(void);
+    virtual bool Initialize(int& argc, wxChar **argv);
+    virtual void CleanUp(void);
+
+    virtual bool OnInitGui(void);
 
-    virtual wxIcon GetStdIcon(int which) const;
+    virtual void WakeUpIdle(void);
 
     virtual void SetPrintMode(int mode) { m_nPrintMode = mode; }
     virtual int  GetPrintMode(void) const { return m_nPrintMode; }
@@ -58,54 +84,38 @@ public:
     void OnEndSession(wxCloseEvent& rEvent);
     void OnQueryEndSession(wxCloseEvent& rEvent);
 
-    // Send idle event to all top-level windows.
-    // Returns TRUE if more idle time is requested.
-    bool SendIdleEvents(void);
-
-    // Send idle event to window and all subwindows
-    // Returns TRUE if more idle time is requested.
-    bool SendIdleEvents(wxWindow* pWin);
-
-    void SetAuto3D(bool bFlag) { m_bAuto3D = bFlag; }
-    bool GetAuto3D(void) const { return m_bAuto3D; }
+    int AddSocketHandler(int handle, int mask,
+                         void (*callback)(void*), void * gsock);
+    void RemoveSocketHandler(int handle);
+    void HandleSockets();
 
 protected:
     bool                            m_bShowOnInit;
     int                             m_nPrintMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT
-    bool                            m_bAuto3D ;   // Always use 3D controls, except where overriden
 
     //
     // PM-specific wxApp definitions */
     //
+private:
+    int                             m_maxSocketHandles;
+    int                             m_maxSocketNr;
+    int                             m_lastUsedHandle;
+    fd_set                          m_readfds;
+    fd_set                          m_writefds;
+    void*                           m_sockCallbackInfo;
+
 public:
 
     // Implementation
-    static bool  Initialize(HAB vHab);
-    static void  CleanUp(void);
-
     static bool  RegisterWindowClasses(HAB vHab);
-    virtual bool DoMessage(void);
-    virtual bool ProcessMessage(WXMSG* pMsg);
-    void         DeletePendingObjects(void);
-    bool         ProcessIdle(void);
-#if wxUSE_THREADS
-    void         ProcessPendingEvents(void);
-#endif
 
 public:
     int                             m_nCmdShow;
+    HMQ                             m_hMq;
 
 protected:
-    bool                            m_bKeepGoing ;
-
     DECLARE_EVENT_TABLE()
-private:
-    HAB                             m_vHab;
-    HMQ                             m_hMq;
-    QMSG                            m_vMsg;
+    wxDECLARE_NO_COPY_CLASS(wxApp);
 };
-
-int WXDLLEXPORT wxEntry( int argc, char *argv[] );
 #endif
     // _WX_APP_H_
-