]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/app.h
I don't think the last person to edit splitter.cpp did
[wxWidgets.git] / include / wx / app.h
index dc7b862ec7abb9a41aa86d559bbccabb548f6320..ab9e88a562958d79a0e0a42e915ba7e5841edba3 100644 (file)
@@ -21,7 +21,7 @@
 // typedefs
 // ----------------------------------------------------------------------------
 
-#ifdef __WXMSW__
+#if defined(__WXMSW__) || defined (__WXPM__)
     class WXDLLEXPORT wxApp;
     typedef wxApp* (*wxAppInitializerFunction)();
 #else
@@ -218,7 +218,7 @@ public:
         // set use of best visual flag (see below)
     void SetUseBestVisual( bool flag ) { m_useBestVisual = flag; }
     bool GetUseBestVisual() const { return m_useBestVisual; }
-    
+
         // set/get printing mode: see wxPRINT_XXX constants.
         //
         // default behaviour is the normal one for Unix: always use PostScript
@@ -258,7 +258,7 @@ protected:
 
     // TRUE if the application wants to get debug output
     bool m_wantDebugOutput;
-    
+
     // TRUE if the apps whats to use the best visual on systems where
     // more than one are available (Sun, SGI, XFree86 4.0 ?)
     bool m_useBestVisual;
@@ -370,7 +370,7 @@ public:
 // be in your main program (e.g. hello.cpp). Now IMPLEMENT_APP should add this
 // code if required.
 
-#if !wxUSE_GUI || defined(__AIX__) || defined(__HPUX__) || defined( __VMS__ ) || defined(__WXPM__)
+#if !wxUSE_GUI || defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXPM__)
     #define IMPLEMENT_WXWIN_MAIN \
         extern int wxEntry( int argc, char *argv[] ); \
         int main(int argc, char *argv[]) { return wxEntry(argc, argv); }
@@ -380,27 +380,54 @@ public:
         #define WXAPIENTRY WXFAR wxSTDCALL
     #endif
 
-    #define IMPLEMENT_WXWIN_MAIN \
-        int WXAPIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,\
+    // Patch from Mumit Khan to allow DLL compilation under mingw. Note that
+    // this includes <windows.h> which is a bad thing because it prevents
+    // wxWindows to work with MFC, so for now I'm making this change for
+    // mingw/cygwin only (these don't work with MFC yet). GRG Mar/2000
+    #if defined(__GNUWIN32__)
+        #include <windows.h>
+        #include "wx/msw/winundef.h"
+
+        #define IMPLEMENT_WXWIN_MAIN \
+            extern "C" int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int);\
+            int WINAPI WinMain(HINSTANCE hInstance, \
+                               HINSTANCE hPrevInstance,\
                                LPSTR m_lpCmdLine, int nCmdShow )\
-        {\
-            return wxEntry((WXHINSTANCE) hInstance, \
-                           (WXHINSTANCE) hPrevInstance,\
-                           m_lpCmdLine, nCmdShow);\
-        }
-
+            {\
+                return wxEntry((WXHINSTANCE) hInstance, \
+                               (WXHINSTANCE) hPrevInstance,\
+                               m_lpCmdLine, nCmdShow);\
+            }
+    #else
+        #define IMPLEMENT_WXWIN_MAIN \
+            int WXAPIENTRY WinMain(HINSTANCE hInstance, \
+                                   HINSTANCE hPrevInstance,\
+                                   LPSTR m_lpCmdLine, int nCmdShow )\
+            {\
+                return wxEntry((WXHINSTANCE) hInstance, \
+                               (WXHINSTANCE) hPrevInstance,\
+                               m_lpCmdLine, nCmdShow);\
+            }
+    #endif
 #else
     #define IMPLEMENT_WXWIN_MAIN
 #endif
 
-// use this macro exactly once, the argument is the name of the wxApp-derived
-// class which is the class of your application
-#define IMPLEMENT_APP(appname)                          \
-    wxApp *wxCreateApp() { return new appname; }      \
+// Use this macro exactly once, the argument is the name of the wxApp-derived
+// class which is the class of your application.
+#define IMPLEMENT_APP(appname)                           \
+    wxApp *wxCreateApp() { return new appname; }         \
     wxAppInitializer wxTheAppInitializer((wxAppInitializerFunction) wxCreateApp); \
     appname& wxGetApp() { return *(appname *)wxTheApp; } \
     IMPLEMENT_WXWIN_MAIN
 
+// Use this macro if you want to define your own main() or WinMain() function
+// and call wxEntry() from there.
+#define IMPLEMENT_APP_NO_MAIN(appname)                   \
+    wxApp *wxCreateApp() { return new appname; }         \
+    wxAppInitializer wxTheAppInitializer((wxAppInitializerFunction) wxCreateApp); \
+    appname& wxGetApp() { return *(appname *)wxTheApp; }
+
 #define DECLARE_APP(appname) extern appname& wxGetApp();
 
 #endif