]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_app.i
fixed deadlock when calling wxPostEvent() from worker thread
[wxWidgets.git] / wxPython / src / _app.i
index 549ca80c44771759e7174be2bd8cfa31117195e9..bef4d71056068d8a7f929704a22630126eafc593 100644 (file)
@@ -47,9 +47,7 @@ DocStr(wxPyApp,
 class wxPyApp : public wxEvtHandler {
 public:
 
-    %pythonAppend wxPyApp
-       "self._setCallbackInfo(self, PyApp)
-        self._setOORInfo(self)";
+    %pythonAppend wxPyApp    "self._setOORInfo(self, False);" setCallbackInfo(PyApp)
     %typemap(out) wxPyApp*;    // turn off this typemap
 
     DocStr(wxPyApp,
@@ -67,7 +65,7 @@ public:
     %typemap(out) wxPyApp* { $result = wxPyMake_wxObject($1, $owner); }
 
 
-    void _setCallbackInfo(PyObject* self, PyObject* _class);
+    void _setCallbackInfo(PyObject* self, PyObject* _class, bool incref=false);
 
 
     DocDeclStr(
@@ -115,7 +113,7 @@ during each event loop iteration.", "");
 
 
     DocDeclStr(
-        virtual bool, Yield(bool onlyIfNeeded = False),
+        virtual bool, Yield(bool onlyIfNeeded = false),
         "Process all currently pending events right now, instead of waiting
 until return to the event loop.  It is an error to call ``Yield``
 recursively unless the value of ``onlyIfNeeded`` is True.
@@ -134,6 +132,12 @@ recursively unless the value of ``onlyIfNeeded`` is True.
         "Make sure that idle events are sent again.
 :see: `wx.WakeUpIdle`", "");
 
+    
+    DocDeclStr(
+        static bool , IsMainLoopRunning() const,
+        "Returns True if we're running the main loop, i.e. if the events can
+currently be dispatched.", "");
+    
 
     DocDeclStr(
         virtual int, MainLoop(),
@@ -147,6 +151,11 @@ all top level windows have been closed and destroyed.", "");
 :see: `wx.Exit`", "");
 
     
+    DocDeclStr(
+        virtual wxLayoutDirection , GetLayoutDirection() const,
+        "Return the layout direction for the current locale.", "");
+    
+    
     DocDeclStr(
         virtual void, ExitMainLoop(),
         "Exit the main GUI loop during the next iteration of the main
@@ -219,7 +228,7 @@ explicitly from somewhere.", "");
     
     
     DocDeclStr(
-        void, SetUseBestVisual( bool flag ),
+        void, SetUseBestVisual( bool flag, bool forceTrueColour = false  ),
         "Set whether the app should try to use the best available visual on
 systems where more than one is available, (Sun, SGI, XFree86 4, etc.)", "");
     
@@ -256,13 +265,13 @@ systems where more than one is available, (Sun, SGI, XFree86 4, etc.)", "");
         "Get the current OnAssert behaviour setting.", "");
 
 
-    static bool GetMacSupportPCMenuShortcuts();
+    static bool GetMacSupportPCMenuShortcuts();  // TODO, deprecate this
     static long GetMacAboutMenuItemId();
     static long GetMacPreferencesMenuItemId();
     static long GetMacExitMenuItemId();
     static wxString GetMacHelpMenuTitleName();
 
-    static void SetMacSupportPCMenuShortcuts(bool val);
+    static void SetMacSupportPCMenuShortcuts(bool val);  // TODO, deprecate this
     static void SetMacAboutMenuItemId(long val);
     static void SetMacPreferencesMenuItemId(long val);
     static void SetMacExitMenuItemId(long val);
@@ -284,6 +293,41 @@ it wasn't found at all.  Raises an exception on non-Windows platforms.", "");
             { wxPyRaiseNotImplemented(); return 0; }
     }
 #endif
+
+    %extend {
+        DocStr(IsDisplayAvailable,
+               "Tests if it is possible to create a GUI in the current environment.
+This will mean different things on the different platforms.
+
+   * On X Windows systems this function will return ``False`` if it is
+     not able to open a connection to the X display, which can happen
+     if $DISPLAY is not set, or is not set correctly.
+
+   * On Mac OS X a ``False`` return value will mean that wx is not
+     able to access the window manager, which can happen if logged in
+     remotely or if running from the normal version of python instead
+     of the framework version, (i.e., pythonw.)
+
+   * On MS Windows...
+", "");
+        static bool IsDisplayAvailable() {
+            return wxPyTestDisplayAvailable();
+        }
+    }
+
+    
+    %property(AppName, GetAppName, SetAppName, doc="See `GetAppName` and `SetAppName`");
+    %property(AssertMode, GetAssertMode, SetAssertMode, doc="See `GetAssertMode` and `SetAssertMode`");
+    %property(ClassName, GetClassName, SetClassName, doc="See `GetClassName` and `SetClassName`");
+    %property(ExitOnFrameDelete, GetExitOnFrameDelete, SetExitOnFrameDelete, doc="See `GetExitOnFrameDelete` and `SetExitOnFrameDelete`");
+    %property(LayoutDirection, GetLayoutDirection, doc="See `GetLayoutDirection`");
+    %property(PrintMode, GetPrintMode, SetPrintMode, doc="See `GetPrintMode` and `SetPrintMode`");
+    %property(TopWindow, GetTopWindow, SetTopWindow, doc="See `GetTopWindow` and `SetTopWindow`");
+    %property(Traits, GetTraits, doc="See `GetTraits`");
+    %property(UseBestVisual, GetUseBestVisual, SetUseBestVisual, doc="See `GetUseBestVisual` and `SetUseBestVisual`");
+    %property(VendorName, GetVendorName, SetVendorName, doc="See `GetVendorName` and `SetVendorName`");
+
+    %property(Active, IsActive);
 };
 
 
@@ -307,7 +351,7 @@ DocDeclStr(
 
 
 DocDeclStr(
-    bool, wxSafeYield(wxWindow* win=NULL, bool onlyIfNeeded=False),
+    bool, wxSafeYield(wxWindow* win=NULL, bool onlyIfNeeded=false),
     "This function is similar to `wx.Yield`, except that it disables the
 user input to all program windows before calling `wx.Yield` and
 re-enables it again afterwards. If ``win`` is not None, this window
@@ -349,6 +393,27 @@ DocDeclStrName(
 
 
 
+
+
+DocDeclAStr(
+    void , wxSetDefaultPyEncoding(const char* encoding),
+    "SetDefaultPyEncoding(string encoding)",
+    "Sets the encoding that wxPython will use when it needs to convert a
+Python string or unicode object to or from a wxString.
+
+The default encoding is the value of ``locale.getdefaultlocale()[1]``
+but please be aware that the default encoding within the same locale
+may be slightly different on different platforms.  For example, please
+see http://www.alanwood.net/demos/charsetdiffs.html for differences
+between the common latin/roman encodings.", "");
+
+DocDeclAStr(
+    const char* , wxGetDefaultPyEncoding(),
+    "GetDefaultPyEncoding() -> string",
+    "Gets the current encoding that wxPython will use when it needs to
+convert a Python string or unicode object to or from a wxString.", "");
+
+
 //---------------------------------------------------------------------------
 // Include some extra wxApp related python code here