// value of this method.
//
// Override: often.
- virtual int OnExit() { return 0; }
+ virtual int OnExit();
// called when a fatal exception occurs, this function should take care
// not to do anything which might provoke a nested exception! It may be
void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; }
bool GetWantDebugOutput() const { return m_wantDebugOutput; }
+ // 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
static wxAppInitializerFunction GetInitializerFunction()
{ return m_appInitFn; }
+ // process all events in the wxPendingEvents list
+ virtual void ProcessPendingEvents();
+
// access to the command line arguments
int argc;
wxChar **argv;
// 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;
#if wxUSE_GUI
// the main top level window - may be NULL
#include "wx/stubs/app.h"
#endif
#else // !GUI
- typedef wxAppBase wxApp;
+ // can't use typedef because wxApp forward declared as a class
+ class WXDLLEXPORT wxApp : public wxAppBase
+ {
+ };
#endif // GUI/!GUI
// ----------------------------------------------------------------------------
// event loop related functions only work in GUI programs
// ------------------------------------------------------
-#if wxUSE_GUI
-
// Force an exit from main loop
extern void WXDLLEXPORT wxExit();
// Yield to other apps/messages
extern bool WXDLLEXPORT wxYield();
+// Yield to other apps/messages
+extern void WXDLLEXPORT wxWakeUpIdle();
+
+// 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
// -------------------------------------------------------------------------
-#if wxUSE_NOGUI
+#if !wxUSE_GUI
// initialize the library (may be called as many times as needed, but each
// call to wxInitialize() must be matched by wxUninitialize())
// wxUninitialize()
extern void WXDLLEXPORT wxUninitialize();
-#endif // wxUSE_NOGUI
+#endif // !wxUSE_GUI
// ----------------------------------------------------------------------------
// macros for dynamic creation of the application object
// be in your main program (e.g. hello.cpp). Now IMPLEMENT_APP should add this
// code if required.
-#if defined(__AIX__) || defined(__HPUX__)
+#if !wxUSE_GUI || defined(__AIX__) || defined(__HPUX__) || defined( __VMS__ ) || 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)
- #ifdef __WATCOMC__
- #define WXAPIENTRY PASCAL
- #else
- #define WXAPIENTRY FAR PASCAL
- #endif
+ #define WXAPIENTRY WXFAR wxSTDCALL
#endif
#define IMPLEMENT_WXWIN_MAIN \