From 618638415381a084362deb7feeac16cd3b5c009c Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 28 May 2004 20:40:12 +0000 Subject: [PATCH] comments and cleanup git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27493 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/src/_core_ex.py | 9 +++++++-- wxPython/src/core.i | 1 + wxPython/src/gtk/_core.py | 11 ++++++++--- wxPython/src/helpers.cpp | 37 +++++++++++++++++++------------------ 4 files changed, 35 insertions(+), 23 deletions(-) diff --git a/wxPython/src/_core_ex.py b/wxPython/src/_core_ex.py index ff368615ae..d9d121fa52 100644 --- a/wxPython/src/_core_ex.py +++ b/wxPython/src/_core_ex.py @@ -96,7 +96,10 @@ def CallAfter(callable, *args, **kw): """ Call the specified function after the current and pending event handlers have been completed. This is also good for making GUI - method calls from non-GUI threads. + method calls from non-GUI threads. Any extra positional or + keyword args are passed on to the callable when it is called. + + :see: `wx.FutureCall` """ app = wx.GetApp() assert app, 'No wxApp created yet' @@ -122,7 +125,7 @@ class FutureCall: A convenience class for wx.Timer, that calls the given callable object once after the given amount of milliseconds, passing any positional or keyword args. The return value of the callable is - availbale after it has been run with the GetResult method. + availbale after it has been run with the `GetResult` method. If you don't need to get the return value or restart the timer then there is no need to hold a reference to this object. It will @@ -130,6 +133,8 @@ class FutureCall: has a reference to self.Notify) but the cycle will be broken when the timer completes, automatically cleaning up the wx.FutureCall object. + + :see: `wx.CallAfter` """ def __init__(self, millis, callable, *args, **kwargs): self.millis = millis diff --git a/wxPython/src/core.i b/wxPython/src/core.i index b10d9d60df..2dfef883e2 100644 --- a/wxPython/src/core.i +++ b/wxPython/src/core.i @@ -30,6 +30,7 @@ %native(_wxPySetDictionary) __wxPySetDictionary; %native(_wxPyFixStockObjects) __wxPyFixStockObjects; + %pythoncode { %#// Give a reference to the dictionary of this module to the C++ extension %#// code. diff --git a/wxPython/src/gtk/_core.py b/wxPython/src/gtk/_core.py index 45028d1ba4..2ff23bec9a 100644 --- a/wxPython/src/gtk/_core.py +++ b/wxPython/src/gtk/_core.py @@ -5773,7 +5773,7 @@ class Window(EvtHandler): """ GetClientRect(self) -> Rect - Get the client area position and size as a wx.Rect object. + Get the client area position and size as a `wx.Rect` object. """ return _core_.Window_GetClientRect(*args, **kwargs) @@ -9613,7 +9613,10 @@ def CallAfter(callable, *args, **kw): """ Call the specified function after the current and pending event handlers have been completed. This is also good for making GUI - method calls from non-GUI threads. + method calls from non-GUI threads. Any extra positional or + keyword args are passed on to the callable when it is called. + + :see: `wx.FutureCall` """ app = wx.GetApp() assert app, 'No wxApp created yet' @@ -9639,7 +9642,7 @@ class FutureCall: A convenience class for wx.Timer, that calls the given callable object once after the given amount of milliseconds, passing any positional or keyword args. The return value of the callable is - availbale after it has been run with the GetResult method. + availbale after it has been run with the `GetResult` method. If you don't need to get the return value or restart the timer then there is no need to hold a reference to this object. It will @@ -9647,6 +9650,8 @@ class FutureCall: has a reference to self.Notify) but the cycle will be broken when the timer completes, automatically cleaning up the wx.FutureCall object. + + :see: `wx.CallAfter` """ def __init__(self, millis, callable, *args, **kwargs): self.millis = millis diff --git a/wxPython/src/helpers.cpp b/wxPython/src/helpers.cpp index c08d287265..c01fa664a4 100644 --- a/wxPython/src/helpers.cpp +++ b/wxPython/src/helpers.cpp @@ -511,8 +511,8 @@ inline const char* dropwx(const char* name) { //---------------------------------------------------------------------- -// This function is called when the wxc module is imported to do some initial -// setup. (Before there is a wxApp object.) The rest happens in +// This function is called when the wx._core_ module is imported to do some +// initial setup. (Before there is a wxApp object.) The rest happens in // wxPyApp::_BootstrapApp void __wxPyPreStart(PyObject* moduleDict) { @@ -665,20 +665,20 @@ bool wxPySwigInstance_Check(PyObject* obj) { //--------------------------------------------------------------------------- -// The stock objects are no longer created when the wxc module is imported, -// but only after the app object has been created. The +// The stock objects are no longer created when the wx._core_ module is +// imported, but only after the app object has been created. The // wxPy_ReinitStockObjects function will be called 3 times to pass the stock // objects though various stages of evolution: // // pass 1: Set all the pointers to a non-NULL value so the Python proxy -// object will be created (otherwise it will just use None.) +// object will be created (otherwise SWIG will just use None.) // // pass 2: After the module has been imported and the python proxys have // been created, then set the __class__ to be _wxPyUnbornObject so // it will catch any access to the object and will raise an exception. // -// pass 3: Finally, from OnInit patch things up so the stock objects can -// be used. +// pass 3: Finally, from BootstrapApp patch things up so the stock objects +// can be used. PyObject* __wxPyFixStockObjects(PyObject* /* self */, PyObject* args) @@ -735,6 +735,17 @@ static void rsoPass3(const char* name, const char* classname, void* ptr) void wxPy_ReinitStockObjects(int pass) { + // If there is already an App object then wxPython is probably embedded in + // a wx C++ application, so there is no need to do all this. + static bool embedded = false; + if ((pass == 1 || pass == 2) && wxTheApp) { + embedded = true; + return; + } + if (pass == 3 && embedded) + return; + + #define REINITOBJ(name, classname) \ if (pass == 1) { name = (classname*)0xC0C0C0C0; } \ else if (pass == 2) { rsoPass2(#name); } \ @@ -745,17 +756,7 @@ void wxPy_ReinitStockObjects(int pass) if (pass == 1) { } \ else if (pass == 2) { rsoPass2(#name); } \ else if (pass == 3) { rsoPass3(#name, #classname, (void*)&name); } - - // If there is already an App object then wxPython is probably embedded in - // a wx C++ application, so there is no need to do all this. - static bool embedded = false; - if ((pass == 1 || pass == 2) && wxTheApp) { - embedded = true; - return; - } - if (pass == 3 && embedded) - return; - + REINITOBJ(wxNORMAL_FONT, wxFont); REINITOBJ(wxSMALL_FONT, wxFont);