X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8480b297e70a29b785421ded6db22ae024e35038..504d911e5a101759669b3ab3487a2f1e28989d7b:/include/wx/app.h diff --git a/include/wx/app.h b/include/wx/app.h index 79d794857b..5538e053bd 100644 --- a/include/wx/app.h +++ b/include/wx/app.h @@ -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; @@ -322,18 +322,18 @@ extern bool WXDLLEXPORT wxYield(); // Yield to other apps/messages extern void WXDLLEXPORT wxWakeUpIdle(); -#if wxUSE_GUI - // Post a message to the given eventhandler which will be processed during the // next event loop iteration inline void WXDLLEXPORT wxPostEvent(wxEvtHandler *dest, wxEvent& event) { wxCHECK_RET( dest, wxT("need an object to post event to in wxPostEvent") ); +#if wxUSE_GUI dest->AddPendingEvent(event); -} - +#else + dest->ProcessEvent(event); #endif // wxUSE_GUI +} // console applications may avoid using DECLARE_APP and IMPLEMENT_APP macros // and call these functions instead at the program startup and termination @@ -370,37 +370,47 @@ 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); } #elif defined(__WXMSW__) && defined(WXUSINGDLL) // NT defines APIENTRY, 3.x not #if !defined(WXAPIENTRY) - #define WXAPIENTRY FAR wxSTDCALL + #define WXAPIENTRY WXFAR wxSTDCALL #endif + #include + #include "wx/msw/winundef.h" + #define IMPLEMENT_WXWIN_MAIN \ - int WXAPIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,\ - LPSTR m_lpCmdLine, int nCmdShow )\ + extern "C" int WXAPIENTRY WinMain(HINSTANCE hInstance,\ + HINSTANCE hPrevInstance,\ + LPSTR m_lpCmdLine, int nCmdShow)\ {\ - return wxEntry((WXHINSTANCE) hInstance, \ + return wxEntry((WXHINSTANCE) hInstance,\ (WXHINSTANCE) hPrevInstance,\ m_lpCmdLine, nCmdShow);\ } - #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