Use the PyGILState_* APIs on Python >= 2.3

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32701 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2005-03-09 22:28:52 +00:00
parent 168f82ce0a
commit 6e6b35578d
37 changed files with 318 additions and 281 deletions

View File

@@ -64,7 +64,7 @@ static wxString _VARTYPEname(VARTYPE vt);
inline bool wxPyErr_Occurred()
{
bool rval;
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
rval = PyErr_Occurred() != NULL;
wxPyEndBlockThreads(blocked);
return rval;
@@ -329,7 +329,7 @@ public:
void SetAXProp(const wxString& name, PyObject* value)
{
const wxPropX& prop = GetAXPropDesc(name);
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
if (! PyErr_Occurred() ) {
if (! prop.CanSet()) {
wxString msg;
@@ -365,7 +365,7 @@ public:
{
PyObject* rval = NULL;
const wxPropX& prop = GetAXPropDesc(name);
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
if (! PyErr_Occurred() ) {
if (! prop.CanGet()) {
wxString msg;
@@ -411,7 +411,7 @@ public:
PyObject* rval = NULL;
const wxFuncX& func = GetAXMethodDesc(name);
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
if (! PyErr_Occurred() ) {
nargs = func.params.size();
if (nargs > 0)
@@ -641,7 +641,7 @@ public:
// handler. We'll convert and load the ActiveX event parameters into
// attributes of the Python event object.
void _preCallInit(PyObject* pyself) {
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
PyObject* pList = PyList_New(0);
PyObject_SetAttrString(pyself, "paramList", pList);
Py_DECREF(pList);
@@ -660,7 +660,7 @@ public:
// handler. It reloads any "out" parameters from the python attributes
// back into the wxVariant they came from.
void _postCallCleanup(PyObject* pyself) {
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
for (int i=0; i<self->ParamCount(); i+=1) {
PyObject* val = PyObject_GetAttrString(
pyself, (char*)(const char*)self->ParamName(i).mb_str());

View File

@@ -1408,7 +1408,7 @@ static wxString _VARTYPEname(VARTYPE vt);
inline bool wxPyErr_Occurred()
{
bool rval;
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
rval = PyErr_Occurred() != NULL;
wxPyEndBlockThreads(blocked);
return rval;
@@ -1700,7 +1700,7 @@ public:
void SetAXProp(const wxString& name, PyObject* value)
{
const wxPropX& prop = GetAXPropDesc(name);
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
if (! PyErr_Occurred() ) {
if (! prop.CanSet()) {
wxString msg;
@@ -1736,7 +1736,7 @@ public:
{
PyObject* rval = NULL;
const wxPropX& prop = GetAXPropDesc(name);
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
if (! PyErr_Occurred() ) {
if (! prop.CanGet()) {
wxString msg;
@@ -1782,7 +1782,7 @@ public:
PyObject* rval = NULL;
const wxFuncX& func = GetAXMethodDesc(name);
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
if (! PyErr_Occurred() ) {
nargs = func.params.size();
if (nargs > 0)
@@ -1896,7 +1896,7 @@ SWIG_Check_long(PyObject* obj)
}
static void wxActiveXEvent__preCallInit(wxActiveXEvent *self,PyObject *pyself){
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
PyObject* pList = PyList_New(0);
PyObject_SetAttrString(pyself, "paramList", pList);
Py_DECREF(pList);
@@ -1911,7 +1911,7 @@ static void wxActiveXEvent__preCallInit(wxActiveXEvent *self,PyObject *pyself){
wxPyEndBlockThreads(blocked);
}
static void wxActiveXEvent__postCallCleanup(wxActiveXEvent *self,PyObject *pyself){
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
for (int i=0; i<self->ParamCount(); i+=1) {
PyObject* val = PyObject_GetAttrString(
pyself, (char*)(const char*)self->ParamName(i).mb_str());
@@ -4382,7 +4382,7 @@ static PyObject *_wrap_IEHtmlWindowBase_LoadStream(PyObject *, PyObject *args, P
arg2 = wxPyCBInputStream_copy((wxPyCBInputStream*)temp2->m_wxis);
} else {
PyErr_Clear(); // clear the failure of the wxPyConvert above
arg2 = wxPyCBInputStream_create(obj1, false);
arg2 = wxPyCBInputStream_create(obj1, true);
if (arg2 == NULL) {
PyErr_SetString(PyExc_TypeError, "Expected wx.InputStream or Python file-like object.");
SWIG_fail;

View File

@@ -283,7 +283,7 @@ public:
virtual void DrawItem(wxDC& dc, wxTreeItemId id, const wxRect& rect) {
bool found;
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
if ((found = wxPyCBH_findCallback(m_myInst, "DrawItem"))) {
PyObject* dcobj = wxPyMake_wxObject(&dc,false);
PyObject* idobj = wxPyConstructObject((void*)&id, wxT("wxTreeItemId"), false);
@@ -495,7 +495,7 @@ public:
const wxTreeItemId& item2) {
int rval = 0;
bool found;
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
if ((found = wxPyCBH_findCallback(m_myInst, "OnCompareItems"))) {
PyObject *o1 = wxPyConstructObject((void*)&item1, wxT("wxTreeItemId"), 0);
PyObject *o2 = wxPyConstructObject((void*)&item2, wxT("wxTreeItemId"), 0);
@@ -757,7 +757,7 @@ public:
//size_t GetSelections(wxArrayTreeItemIds&) const;
%extend {
PyObject* GetSelections() {
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
PyObject* rval = PyList_New(0);
wxArrayTreeItemIds array;
size_t num, x;
@@ -793,7 +793,7 @@ public:
PyObject* GetFirstChild(const wxTreeItemId& item) {
void* cookie = 0;
wxTreeItemId* ritem = new wxTreeItemId(self->GetFirstChild(item, cookie));
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
PyObject* tup = PyTuple_New(2);
PyTuple_SET_ITEM(tup, 0, wxPyConstructObject(ritem, wxT("wxTreeItemId"), true));
PyTuple_SET_ITEM(tup, 1, wxPyMakeSwigPtr(cookie, wxT("void")));
@@ -808,7 +808,7 @@ public:
// passed to GetNextChild in order to continue the search.
PyObject* GetNextChild(const wxTreeItemId& item, void* cookie) {
wxTreeItemId* ritem = new wxTreeItemId(self->GetNextChild(item, cookie));
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
PyObject* tup = PyTuple_New(2);
PyTuple_SET_ITEM(tup, 0, wxPyConstructObject(ritem, wxT("wxTreeItemId"), true));
PyTuple_SET_ITEM(tup, 1, wxPyMakeSwigPtr(cookie, wxT("void")));
@@ -927,7 +927,7 @@ public:
PyObject* GetBoundingRect(const wxTreeItemId& item, bool textOnly = false) {
wxRect rect;
if (self->GetBoundingRect(item, rect, textOnly)) {
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
wxRect* r = new wxRect(rect);
PyObject* val = wxPyConstructObject((void*)r, wxT("wxRect"), 1);
wxPyEndBlockThreads(blocked);

View File

@@ -1549,7 +1549,7 @@ public:
virtual void DrawItem(wxDC& dc, wxTreeItemId id, const wxRect& rect) {
bool found;
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
if ((found = wxPyCBH_findCallback(m_myInst, "DrawItem"))) {
PyObject* dcobj = wxPyMake_wxObject(&dc,false);
PyObject* idobj = wxPyConstructObject((void*)&id, wxT("wxTreeItemId"), false);
@@ -1673,7 +1673,7 @@ public:
const wxTreeItemId& item2) {
int rval = 0;
bool found;
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
if ((found = wxPyCBH_findCallback(m_myInst, "OnCompareItems"))) {
PyObject *o1 = wxPyConstructObject((void*)&item1, wxT("wxTreeItemId"), 0);
PyObject *o2 = wxPyConstructObject((void*)&item2, wxT("wxTreeItemId"), 0);
@@ -1822,7 +1822,7 @@ static void wxPyTreeListCtrl_SetItemPyData(wxPyTreeListCtrl *self,wxTreeItemId c
data->SetData(obj);
}
static PyObject *wxPyTreeListCtrl_GetSelections(wxPyTreeListCtrl *self){
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
PyObject* rval = PyList_New(0);
wxArrayTreeItemIds array;
size_t num, x;
@@ -1838,7 +1838,7 @@ static PyObject *wxPyTreeListCtrl_GetSelections(wxPyTreeListCtrl *self){
static PyObject *wxPyTreeListCtrl_GetFirstChild(wxPyTreeListCtrl *self,wxTreeItemId const &item){
void* cookie = 0;
wxTreeItemId* ritem = new wxTreeItemId(self->GetFirstChild(item, cookie));
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
PyObject* tup = PyTuple_New(2);
PyTuple_SET_ITEM(tup, 0, wxPyConstructObject(ritem, wxT("wxTreeItemId"), true));
PyTuple_SET_ITEM(tup, 1, wxPyMakeSwigPtr(cookie, wxT("void")));
@@ -1847,7 +1847,7 @@ static PyObject *wxPyTreeListCtrl_GetFirstChild(wxPyTreeListCtrl *self,wxTreeIte
}
static PyObject *wxPyTreeListCtrl_GetNextChild(wxPyTreeListCtrl *self,wxTreeItemId const &item,void *cookie){
wxTreeItemId* ritem = new wxTreeItemId(self->GetNextChild(item, cookie));
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
PyObject* tup = PyTuple_New(2);
PyTuple_SET_ITEM(tup, 0, wxPyConstructObject(ritem, wxT("wxTreeItemId"), true));
PyTuple_SET_ITEM(tup, 1, wxPyMakeSwigPtr(cookie, wxT("void")));
@@ -1885,7 +1885,7 @@ static PyObject *wxPyTreeListCtrl_GetNextChild(wxPyTreeListCtrl *self,wxTreeItem
static PyObject *wxPyTreeListCtrl_GetBoundingRect(wxPyTreeListCtrl *self,wxTreeItemId const &item,bool textOnly=false){
wxRect rect;
if (self->GetBoundingRect(item, rect, textOnly)) {
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
wxRect* r = new wxRect(rect);
PyObject* val = wxPyConstructObject((void*)r, wxT("wxRect"), 1);
wxPyEndBlockThreads(blocked);

View File

@@ -312,7 +312,7 @@ public:
wxObject* wxObj;
wxNode* node = list->GetFirst();
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
pyList = PyList_New(0);
while (node) {
wxObj = node->GetData();

View File

@@ -1816,7 +1816,7 @@ static PyObject *wxPyPolygonShape_GetOriginalPoints(wxPyPolygonShape *self){
wxObject* wxObj;
wxNode* node = list->GetFirst();
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
pyList = PyList_New(0);
while (node) {
wxObj = node->GetData();
@@ -1855,7 +1855,7 @@ static PyObject *wxDiagram_GetShapeList(wxDiagram *self){
// work for any class for the VERY generic cases, but beyond that the helper
// needs to know more about the type.
wxList* wxPy_wxListHelper(PyObject* pyList, const wxChar* className) {
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
if (!PyList_Check(pyList)) {
PyErr_SetString(PyExc_TypeError, "Expected a list object.");
wxPyEndBlockThreads(blocked);
@@ -1888,7 +1888,7 @@ wxList* wxPy_wxListHelper(PyObject* pyList, const wxChar* className) {
//---------------------------------------------------------------------------
wxList* wxPy_wxRealPoint_ListHelper(PyObject* pyList) {
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
if (!PyList_Check(pyList)) {
PyErr_SetString(PyExc_TypeError, "Expected a list object.");
wxPyEndBlockThreads(blocked);
@@ -1960,7 +1960,7 @@ PyObject* wxPy_ConvertRealPointList(wxListBase* listbase) {
wxObject* wxObj;
wxNode* node = list->GetFirst();
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
pyList = PyList_New(0);
while (node) {
wxObj = node->GetData();
@@ -1981,7 +1981,7 @@ PyObject* wxPy_ConvertShapeList(wxListBase* listbase) {
wxObject* wxObj;
wxNode* node = list->GetFirst();
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
pyList = PyList_New(0);
while (node) {
wxObj = node->GetData();

View File

@@ -171,7 +171,7 @@ void wxOGLCleanUp();
// work for any class for the VERY generic cases, but beyond that the helper
// needs to know more about the type.
wxList* wxPy_wxListHelper(PyObject* pyList, const wxChar* className) {
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
if (!PyList_Check(pyList)) {
PyErr_SetString(PyExc_TypeError, "Expected a list object.");
wxPyEndBlockThreads(blocked);
@@ -204,7 +204,7 @@ wxList* wxPy_wxListHelper(PyObject* pyList, const wxChar* className) {
//---------------------------------------------------------------------------
wxList* wxPy_wxRealPoint_ListHelper(PyObject* pyList) {
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
if (!PyList_Check(pyList)) {
PyErr_SetString(PyExc_TypeError, "Expected a list object.");
wxPyEndBlockThreads(blocked);
@@ -276,7 +276,7 @@ PyObject* wxPy_ConvertRealPointList(wxListBase* listbase) {
wxObject* wxObj;
wxNode* node = list->GetFirst();
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
pyList = PyList_New(0);
while (node) {
wxObj = node->GetData();
@@ -297,7 +297,7 @@ PyObject* wxPy_ConvertShapeList(wxListBase* listbase) {
wxObject* wxObj;
wxNode* node = list->GetFirst();
bool blocked = wxPyBeginBlockThreads();
wxPyBlock_t blocked = wxPyBeginBlockThreads();
pyList = PyList_New(0);
while (node) {
wxObj = node->GetData();