]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/app.h
GTK 1.0 compilation (not tested)
[wxWidgets.git] / include / wx / app.h
index 043856718e305e5608c3ddd6ad5f88b677f9cc9b..64b479d1f05c58c252e3e57ff43745f1301e9ceb 100644 (file)
@@ -9,29 +9,34 @@
 // Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef __APPH_BASE__
-#define __APPH_BASE__
+#ifndef _WX_APP_H_BASE_
+#define _WX_APP_H_BASE_
 
-#ifndef __GTK__
+#ifdef __WXMSW__
 class WXDLLEXPORT wxApp;
 typedef wxApp* (*wxAppInitializerFunction) (void);
 #endif
 
 #include "wx/object.h"
 
-#ifdef __GTK
+#ifndef __WXMSW__
 typedef wxObject* (*wxAppInitializerFunction) (void);  // returning wxApp* won't work with gcc
 #endif
 
-#if defined(__WINDOWS__)
+#if defined(__WXMSW__)
 #include "wx/msw/app.h"
-#elif defined(__MOTIF__)
-#include "wx/xt/app.h"
-#elif defined(__GTK__)
+#elif defined(__WXMOTIF__)
+#include "wx/motif/app.h"
+#elif defined(__WXQT__)
+#include "wx/qt/app.h"
+#elif defined(__WXGTK__)
 #include "wx/gtk/app.h"
+#elif defined(__WXMAC__)
+#include "wx/mac/app.h"
+#elif defined(__WXSTUBS__)
+#include "wx/stubs/app.h"
 #endif
 
-
 // Having a global instance of this class allows
 // wxApp to be aware of the app creator function.
 // wxApp can then call this function to create a new
@@ -46,18 +51,48 @@ public:
        }
 };
 
+// Here's a macro you can use if your compiler
+// really, really wants main() to be in your main program
+// (e.g. hello.cpp).
+// Now IMPLEMENT_APP should add this code if required.
+
+#if defined(__AIX__) || defined(__HPUX__)
+#define IMPLEMENT_WXWIN_MAIN \
+extern int wxEntry( int argc, char *argv[] ); \
+int main(int argc, char *argv[]) { return wxEntry(argc, argv); }
+
+#elif defined(__WXMSW__) && defined(WXUSINGDLL)
+
+// NT defines APIENTRY, 3.x not
+#if !defined(WXAPIENTRY)
+#  ifdef __WATCOMC__
+#    define WXAPIENTRY PASCAL
+#  else
+#    define WXAPIENTRY FAR PASCAL
+#  endif
+#endif
+
+#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);\
+}
+
+#else
+#define IMPLEMENT_WXWIN_MAIN
+#endif
+
 #define IMPLEMENT_APP(appname)                          \
         wxApp *wxCreateApp(void) { return new appname; }      \
                wxAppInitializer wxTheAppInitializer((wxAppInitializerFunction) wxCreateApp); \
         appname& wxGetApp(void) { return *(appname *)wxTheApp; } \
-\
-        extern int wxEntry( int argc, char *argv[] ); \
-        int main(int argc, char *argv[]) { return wxEntry(argc, argv); }
-
+        IMPLEMENT_WXWIN_MAIN
 
 #define DECLARE_APP(appname) \
        extern appname& wxGetApp(void) ;
 
 
 #endif
-    // __APPH_BASE__
+    // _WX_APP_H_BASE_