]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/app.h
install apparently ignores -p option under Mac OS X, use cp -p instead
[wxWidgets.git] / include / wx / app.h
index 36e9e1979064857be0e44169246541d53fbee75a..8f631cccf22053799f447eb62dffa780696daf90 100644 (file)
@@ -54,6 +54,32 @@ class WXDLLEXPORT wxCmdLineParser;
 static const int wxPRINT_WINDOWS = 1;
 static const int wxPRINT_POSTSCRIPT = 2;
 
+// ----------------------------------------------------------------------------
+// support for framebuffer ports
+// ----------------------------------------------------------------------------
+
+#if wxUSE_GUI
+// VS: Fullscreen/framebuffer application needs to choose display mode prior
+//     to wxWindows initialization. This class holds information about display
+//     mode. An instance of it is returned by virtual wxApp::GetDisplayMode.
+class WXDLLEXPORT wxDisplayModeInfo
+{
+public:
+    wxDisplayModeInfo() : m_ok(FALSE) {}
+    wxDisplayModeInfo(const wxSize& size, unsigned depth) 
+        : m_size(size), m_depth(depth), m_ok(TRUE) {}
+    
+    const wxSize& GetScreenSize() const { return m_size; }
+    unsigned GetDepth() const { return m_depth; }
+    bool IsOk() const { return m_ok; }
+
+private:
+    wxSize   m_size;
+    unsigned m_depth;
+    bool     m_ok;
+};
+#endif
+
 // ----------------------------------------------------------------------------
 // the common part of wxApp implementations for all platforms
 // ----------------------------------------------------------------------------
@@ -65,9 +91,6 @@ public:
 
     // the virtual functions which may/must be overridden in the derived class
     // -----------------------------------------------------------------------
-#ifdef __DARWIN__
-    virtual ~wxAppBase() { }
-#endif
 
         // called during the program initialization, returning FALSE from here
         // prevents the program from continuing - it's a good place to create
@@ -135,6 +158,17 @@ public:
         // process the first event in the event queue (blocks until an event
         // apperas if there are none currently)
     virtual void Dispatch() = 0;
+
+        // process all currently pending events right now
+        //
+        // it is an error to call Yield() recursively unless the value of
+        // onlyIfNeeded is TRUE
+        //
+        // WARNING: this function is dangerous as it can lead to unexpected
+        //          reentrancies (i.e. when called from an event handler it
+        //          may result in calling the same event handler again), use
+        //          with _extreme_ care or, better, don't use at all!
+    virtual bool Yield(bool onlyIfNeeded = FALSE) = 0;
 #endif // wxUSE_GUI
 
     // application info: name, description, vendor
@@ -245,6 +279,11 @@ public:
         // wxICON_XXX values
     virtual wxIcon GetStdIcon(int which) const = 0;
 
+        // get display mode to use. This is only used in framebuffer wxWin ports
+        // (such as wxMGL). This method is called early in wxWin initialization
+        // process and is supposed to be overriden in derived classes.
+    virtual wxDisplayModeInfo GetDisplayMode() const { return wxDisplayModeInfo(); }
+
         // VZ: what does this do exactly?
     void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; }
     bool GetWantDebugOutput() const { return m_wantDebugOutput; }
@@ -285,6 +324,11 @@ public:
     static wxAppInitializerFunction GetInitializerFunction()
         { return m_appInitFn; }
 
+    // needed to avoid link errors
+#ifdef __DARWIN__
+    virtual ~wxAppBase() { }
+#endif
+
     // process all events in the wxPendingEvents list
     virtual void ProcessPendingEvents();