X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/abca8ebff16ef0e95292a5ceb1aa9fc302552c5d..02ac8d7a5ddbd0694b46cc5133e82eb22d935829:/include/wx/app.h diff --git a/include/wx/app.h b/include/wx/app.h index 7d27f9a427..35d9b5d06e 100644 --- a/include/wx/app.h +++ b/include/wx/app.h @@ -24,12 +24,13 @@ #endif // wxUSE_GUI #include "wx/build.h" +#include "wx/init.h" // we must declare wxEntry() -class WXDLLEXPORT wxApp; -class WXDLLEXPORT wxAppTraits; -class WXDLLEXPORT wxCmdLineParser; -class WXDLLEXPORT wxLog; -class WXDLLEXPORT wxMessageOutput; +class WXDLLIMPEXP_CORE wxApp; +class WXDLLIMPEXP_BASE wxAppTraits; +class WXDLLIMPEXP_BASE wxCmdLineParser; +class WXDLLIMPEXP_BASE wxLog; +class WXDLLIMPEXP_BASE wxMessageOutput; // ---------------------------------------------------------------------------- // typedefs @@ -56,7 +57,7 @@ enum // VS: Fullscreen/framebuffer application needs to choose display mode prior // to wxWindows initialization. This class holds information about display // mode. It is used by wxApp::Set/GetDisplayMode. -class WXDLLEXPORT wxDisplayModeInfo +class WXDLLIMPEXP_CORE wxDisplayModeInfo { public: wxDisplayModeInfo() : m_ok(FALSE) {} @@ -78,7 +79,7 @@ private: // wxAppConsole: wxApp for non-GUI applications // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxAppConsole : public wxEvtHandler +class WXDLLIMPEXP_BASE wxAppConsole : public wxEvtHandler { public: // ctor and dtor @@ -96,6 +97,9 @@ public: // class version! virtual bool Initialize(int& argc, wxChar **argv); + // This gives wxCocoa a chance to call OnInit() with a memory pool in place + virtual bool CallOnInit() { return OnInit(); } + // Called before OnRun(), this is a good place to do initialization -- if // anything fails, return false from here to prevent the program from // continuing. The command line is normally parsed here, call the base @@ -301,7 +305,7 @@ protected: #if wxUSE_GUI -class WXDLLEXPORT wxAppBase : public wxAppConsole +class WXDLLIMPEXP_CORE wxAppBase : public wxAppConsole { public: wxAppBase(); @@ -375,7 +379,14 @@ public: // parties // // it should return TRUE if more idle events are needed, FALSE if not - virtual bool ProcessIdle() = 0; + virtual bool ProcessIdle() ; + + // Send idle event to window and all subwindows + // Returns TRUE if more idle time is requested. + virtual bool SendIdleEvents(wxWindow* win, wxIdleEvent& event); + + // Perform standard OnIdle behaviour: call from port's OnIdle + void OnIdle(wxIdleEvent& event); // top level window functions @@ -502,7 +513,7 @@ protected: #endif #else // !GUI // can't use typedef because wxApp forward declared as a class - class WXDLLEXPORT wxApp : public wxAppConsole + class WXDLLIMPEXP_BASE wxApp : public wxAppConsole { }; #endif // GUI/!GUI @@ -515,7 +526,7 @@ protected: // is discouraged, consider using DECLARE_APP() after which you may call // wxGetApp() which will return the object of the correct type (i.e. MyApp and // not wxApp) -WXDLLEXPORT_DATA(extern wxApp*) wxTheApp; +WXDLLIMPEXP_DATA_BASE(extern wxApp*) wxTheApp; // ---------------------------------------------------------------------------- // global functions @@ -525,13 +536,13 @@ WXDLLEXPORT_DATA(extern wxApp*) wxTheApp; // ------------------------------------------------------ // Force an exit from main loop -extern void WXDLLEXPORT wxExit(); +extern void WXDLLIMPEXP_BASE wxExit(); // Yield to other apps/messages -extern bool WXDLLEXPORT wxYield(); +extern bool WXDLLIMPEXP_BASE wxYield(); // Yield to other apps/messages -extern void WXDLLEXPORT wxWakeUpIdle(); +extern void WXDLLIMPEXP_BASE wxWakeUpIdle(); // ---------------------------------------------------------------------------- // macros for dynamic creation of the application object @@ -541,7 +552,7 @@ extern void WXDLLEXPORT wxWakeUpIdle(); // creator function. wxApp can then call this function to create a new app // object. Convoluted, but necessary. -class WXDLLEXPORT wxAppInitializer +class WXDLLIMPEXP_BASE wxAppInitializer { public: wxAppInitializer(wxAppInitializerFunction fn) @@ -554,18 +565,21 @@ public: #if !wxUSE_GUI || !defined(__WXMSW__) #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) + // we need HINSTANCE declaration to define WinMain() + #include + #include "wx/msw/winundef.h" + #define IMPLEMENT_WXWIN_MAIN \ - extern int wxEntry(WXHINSTANCE hInstance, \ - WXHINSTANCE hPrevInstance, \ - char *pCmdLine, \ - int nCmdShow); \ - extern "C" int wxSTDCALL WinMain(WXHINSTANCE hInstance, \ - WXHINSTANCE hPrevInstance, \ - char *lpCmdLine, \ - int nCmdShow) \ + extern int wxEntry(HINSTANCE hInstance, \ + HINSTANCE hPrevInstance = NULL, \ + char *pCmdLine = NULL, \ + int nCmdShow = SW_NORMAL); \ + extern "C" int WINAPI WinMain(HINSTANCE hInstance, \ + HINSTANCE hPrevInstance, \ + char *lpCmdLine, \ + int nCmdShow) \ { \ return wxEntry(hInstance, hPrevInstance, lpCmdLine, nCmdShow); \ }