// typedefs
// ----------------------------------------------------------------------------
-#ifdef __WXMSW__
+#if defined(__WXMSW__) || defined (__WXPM__)
class WXDLLEXPORT wxApp;
typedef wxApp* (*wxAppInitializerFunction)();
#else
// 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
// 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;
// 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); }
#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