]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/app.h
1. wxShell fixes: now really uses shell (it wasn't different from wxExecute!)
[wxWidgets.git] / include / wx / app.h
index ea63c8060148fde8c96af4ac312d31ada5d0b5b3..dc7b862ec7abb9a41aa86d559bbccabb548f6320 100644 (file)
@@ -100,7 +100,7 @@ public:
         // 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
@@ -215,6 +215,10 @@ public:
     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
@@ -232,6 +236,9 @@ public:
     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;
@@ -251,6 +258,10 @@ 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;
 
 #if wxUSE_GUI
     // the main top level window - may be NULL
@@ -279,7 +290,10 @@ protected:
         #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
 
 // ----------------------------------------------------------------------------
@@ -299,21 +313,33 @@ WXDLLEXPORT_DATA(extern wxApp*) wxTheApp;
 // 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())
@@ -323,7 +349,7 @@ extern bool WXDLLEXPORT wxInitialize();
 // wxUninitialize()
 extern void WXDLLEXPORT wxUninitialize();
 
-#endif // wxUSE_NOGUI
+#endif // !wxUSE_GUI
 
 // ----------------------------------------------------------------------------
 // macros for dynamic creation of the application object
@@ -344,18 +370,14 @@ public:
 // 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 \