diff --git a/wxPython/CHANGES.txt b/wxPython/CHANGES.txt index 623386fb63..8246e66d34 100644 --- a/wxPython/CHANGES.txt +++ b/wxPython/CHANGES.txt @@ -51,11 +51,10 @@ UNICODE! MSLU, (Microsoft Layer for Unicode). It simply gets out of the way if the app is run on an NT box, or if run on a win9x box it loads a special DLL that provides the unicode versions of the - windows API. So far I have not been able to get this to work on - win9x with the stock python.exe and pythonw.exe executables. - Instead I've had to rebuild the Python loaders linked with this - MSLU library from Microsoft. I'd like to find a way to build - wxWindows/wxPython such that this is not needed... + windows API. So far I have not been able to get this to work + perfectly on win9x. Most things work fine but wxTaskBarIcon for + example will cause a crash if used with the unicode build on + win95. So how do you use it? It's very simple. When unicode is enabled, then all functions and methods in wxPython that return a wxString @@ -70,10 +69,6 @@ UNICODE! method. -Bad news: The API for adding tools to toolbars has changed again. -Good news: Toolbar tools can now have labels! - - 2.3.2.1 diff --git a/wxPython/demo/wxToolBar.py b/wxPython/demo/wxToolBar.py index a3a5fa712b..bf02e8bb35 100644 --- a/wxPython/demo/wxToolBar.py +++ b/wxPython/demo/wxToolBar.py @@ -23,26 +23,26 @@ class TestToolBar(wxFrame): self.CreateStatusBar() - tb.AddSimpleTool(10, '', images.getNewBitmap(), "New", "Long help for 'New'") + tb.AddSimpleTool(10, images.getNewBitmap(), "New", "Long help for 'New'") EVT_TOOL(self, 10, self.OnToolClick) EVT_TOOL_RCLICKED(self, 10, self.OnToolRClick) - tb.AddSimpleTool(20, '', images.getOpenBitmap(), "Open", "Long help for 'Open'") + tb.AddSimpleTool(20, images.getOpenBitmap(), "Open", "Long help for 'Open'") EVT_TOOL(self, 20, self.OnToolClick) EVT_TOOL_RCLICKED(self, 20, self.OnToolRClick) tb.AddSeparator() - tb.AddSimpleTool(30, '', images.getCopyBitmap(), "Copy", "Long help for 'Copy'") + tb.AddSimpleTool(30, images.getCopyBitmap(), "Copy", "Long help for 'Copy'") EVT_TOOL(self, 30, self.OnToolClick) EVT_TOOL_RCLICKED(self, 30, self.OnToolRClick) - tb.AddSimpleTool(40, '', images.getPasteBitmap(), "Paste", "Long help for 'Paste'") + tb.AddSimpleTool(40, images.getPasteBitmap(), "Paste", "Long help for 'Paste'") EVT_TOOL(self, 40, self.OnToolClick) EVT_TOOL_RCLICKED(self, 40, self.OnToolRClick) tb.AddSeparator() - tool = tb.AddCheckTool(50, '', images.getTog1Bitmap(), + tool = tb.AddCheckTool(50, images.getTog1Bitmap(), shortHelp="Toggle this") EVT_TOOL(self, 50, self.OnToolClick) diff --git a/wxPython/src/msw/stattool.cpp b/wxPython/src/msw/stattool.cpp index 2524b61b1a..3d7f7a8dbd 100644 --- a/wxPython/src/msw/stattool.cpp +++ b/wxPython/src/msw/stattool.cpp @@ -1561,21 +1561,21 @@ static void *SwigwxToolBarBaseTowxObject(void *ptr) { return (void *) dest; } -static wxToolBarToolBase * wxToolBarBase_AddTool(wxToolBarBase *self,int id,const wxString & label,const wxBitmap & bitmap,const wxBitmap & bmpDisabled,wxItemKind kind,const wxString & shortHelp,const wxString & longHelp,PyObject * clientData) { +static wxToolBarToolBase * wxToolBarBase_DoAddTool(wxToolBarBase *self,int id,const wxString & label,const wxBitmap & bitmap,const wxBitmap & bmpDisabled,wxItemKind kind,const wxString & shortHelp,const wxString & longHelp,PyObject * clientData) { wxPyUserData* udata = NULL; - if (clientData) + if (clientData && clientData != Py_None) udata = new wxPyUserData(clientData); return self->AddTool(id, label, bitmap, bmpDisabled, kind, shortHelp, longHelp, udata); } -static PyObject *_wrap_wxToolBarBase_AddTool(PyObject *self, PyObject *args, PyObject *kwargs) { +static PyObject *_wrap_wxToolBarBase_DoAddTool(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject * _resultobj; wxToolBarToolBase * _result; wxToolBarBase * _arg0; int _arg1; wxString * _arg2; wxBitmap * _arg3; - wxBitmap * _arg4; + wxBitmap * _arg4 = (wxBitmap *) &wxNullBitmap; wxItemKind _arg5 = (wxItemKind ) wxITEM_NORMAL; wxString * _arg6 = (wxString *) &wxPyEmptyString; wxString * _arg7 = (wxString *) &wxPyEmptyString; @@ -1590,12 +1590,12 @@ static PyObject *_wrap_wxToolBarBase_AddTool(PyObject *self, PyObject *args, PyO char *_kwnames[] = { "self","id","label","bitmap","bmpDisabled","kind","shortHelp","longHelp","clientData", NULL }; self = self; - if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiOOO|iOOO:wxToolBarBase_AddTool",_kwnames,&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_obj6,&_obj7,&_obj8)) + if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiOO|OiOOO:wxToolBarBase_DoAddTool",_kwnames,&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_obj6,&_obj7,&_obj8)) return NULL; if (_argo0) { if (_argo0 == Py_None) { _arg0 = NULL; } else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBarBase_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarBase_AddTool. Expected _wxToolBarBase_p."); + PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarBase_DoAddTool. Expected _wxToolBarBase_p."); return NULL; } } @@ -1607,14 +1607,14 @@ static PyObject *_wrap_wxToolBarBase_AddTool(PyObject *self, PyObject *args, PyO if (_argo3) { if (_argo3 == Py_None) { _arg3 = NULL; } else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxToolBarBase_AddTool. Expected _wxBitmap_p."); + PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxToolBarBase_DoAddTool. Expected _wxBitmap_p."); return NULL; } } if (_argo4) { if (_argo4 == Py_None) { _arg4 = NULL; } else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxToolBarBase_AddTool. Expected _wxBitmap_p."); + PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxToolBarBase_DoAddTool. Expected _wxBitmap_p."); return NULL; } } @@ -1636,7 +1636,7 @@ static PyObject *_wrap_wxToolBarBase_AddTool(PyObject *self, PyObject *args, PyO } { PyThreadState* __tstate = wxPyBeginAllowThreads(); - _result = (wxToolBarToolBase *)wxToolBarBase_AddTool(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,*_arg6,*_arg7,_arg8); + _result = (wxToolBarToolBase *)wxToolBarBase_DoAddTool(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,*_arg6,*_arg7,_arg8); wxPyEndAllowThreads(__tstate); if (PyErr_Occurred()) return NULL; @@ -1656,274 +1656,9 @@ static PyObject *_wrap_wxToolBarBase_AddTool(PyObject *self, PyObject *args, PyO return _resultobj; } -static wxToolBarToolBase * wxToolBarBase_AddSimpleTool(wxToolBarBase *self,int id,const wxString & label,const wxBitmap & bitmap,const wxString & shortHelp,const wxString & longHelp,wxItemKind kind) { - return self->AddTool(id, label, bitmap, wxNullBitmap, kind, - shortHelp, longHelp, NULL); - } -static PyObject *_wrap_wxToolBarBase_AddSimpleTool(PyObject *self, PyObject *args, PyObject *kwargs) { - PyObject * _resultobj; - wxToolBarToolBase * _result; - wxToolBarBase * _arg0; - int _arg1; - wxString * _arg2; - wxBitmap * _arg3; - wxString * _arg4 = (wxString *) &wxPyEmptyString; - wxString * _arg5 = (wxString *) &wxPyEmptyString; - wxItemKind _arg6 = (wxItemKind ) wxITEM_NORMAL; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _obj4 = 0; - PyObject * _obj5 = 0; - char *_kwnames[] = { "self","id","label","bitmap","shortHelp","longHelp","kind", NULL }; - - self = self; - if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiOO|OOi:wxToolBarBase_AddSimpleTool",_kwnames,&_argo0,&_arg1,&_obj2,&_argo3,&_obj4,&_obj5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBarBase_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarBase_AddSimpleTool. Expected _wxToolBarBase_p."); - return NULL; - } - } -{ - _arg2 = wxString_in_helper(_obj2); - if (_arg2 == NULL) - return NULL; -} - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxToolBarBase_AddSimpleTool. Expected _wxBitmap_p."); - return NULL; - } - } - if (_obj4) -{ - _arg4 = wxString_in_helper(_obj4); - if (_arg4 == NULL) - return NULL; -} - if (_obj5) -{ - _arg5 = wxString_in_helper(_obj5); - if (_arg5 == NULL) - return NULL; -} -{ - PyThreadState* __tstate = wxPyBeginAllowThreads(); - _result = (wxToolBarToolBase *)wxToolBarBase_AddSimpleTool(_arg0,_arg1,*_arg2,*_arg3,*_arg4,*_arg5,_arg6); - - wxPyEndAllowThreads(__tstate); - if (PyErr_Occurred()) return NULL; -}{ _resultobj = wxPyMake_wxObject(_result); } -{ - if (_obj2) - delete _arg2; -} -{ - if (_obj4) - delete _arg4; -} -{ - if (_obj5) - delete _arg5; -} - return _resultobj; -} - -static wxToolBarToolBase * wxToolBarBase_AddCheckTool(wxToolBarBase *self,int id,const wxString & label,const wxBitmap & bitmap,const wxBitmap & bmpDisabled,const wxString & shortHelp,const wxString & longHelp,PyObject * clientData) { - wxPyUserData* udata = NULL; - if (clientData) - udata = new wxPyUserData(clientData); - return self->AddCheckTool(id, label, bitmap, bmpDisabled, - shortHelp, longHelp, udata); - } -static PyObject *_wrap_wxToolBarBase_AddCheckTool(PyObject *self, PyObject *args, PyObject *kwargs) { - PyObject * _resultobj; - wxToolBarToolBase * _result; - wxToolBarBase * _arg0; - int _arg1; - wxString * _arg2; - wxBitmap * _arg3; - wxBitmap * _arg4 = (wxBitmap *) &wxNullBitmap; - wxString * _arg5 = (wxString *) &wxPyEmptyString; - wxString * _arg6 = (wxString *) &wxPyEmptyString; - PyObject * _arg7 = (PyObject *) NULL; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _obj5 = 0; - PyObject * _obj6 = 0; - PyObject * _obj7 = 0; - char *_kwnames[] = { "self","id","label","bitmap","bmpDisabled","shortHelp","longHelp","clientData", NULL }; - - self = self; - if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiOO|OOOO:wxToolBarBase_AddCheckTool",_kwnames,&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_obj5,&_obj6,&_obj7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBarBase_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarBase_AddCheckTool. Expected _wxToolBarBase_p."); - return NULL; - } - } -{ - _arg2 = wxString_in_helper(_obj2); - if (_arg2 == NULL) - return NULL; -} - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxToolBarBase_AddCheckTool. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxToolBarBase_AddCheckTool. Expected _wxBitmap_p."); - return NULL; - } - } - if (_obj5) -{ - _arg5 = wxString_in_helper(_obj5); - if (_arg5 == NULL) - return NULL; -} - if (_obj6) -{ - _arg6 = wxString_in_helper(_obj6); - if (_arg6 == NULL) - return NULL; -} - if (_obj7) -{ - _arg7 = _obj7; -} -{ - PyThreadState* __tstate = wxPyBeginAllowThreads(); - _result = (wxToolBarToolBase *)wxToolBarBase_AddCheckTool(_arg0,_arg1,*_arg2,*_arg3,*_arg4,*_arg5,*_arg6,_arg7); - - wxPyEndAllowThreads(__tstate); - if (PyErr_Occurred()) return NULL; -}{ _resultobj = wxPyMake_wxObject(_result); } -{ - if (_obj2) - delete _arg2; -} -{ - if (_obj5) - delete _arg5; -} -{ - if (_obj6) - delete _arg6; -} - return _resultobj; -} - -static wxToolBarToolBase * wxToolBarBase_AddRadioTool(wxToolBarBase *self,int id,const wxString & label,const wxBitmap & bitmap,const wxBitmap & bmpDisabled,const wxString & shortHelp,const wxString & longHelp,PyObject * clientData) { - wxPyUserData* udata = NULL; - if (clientData) - udata = new wxPyUserData(clientData); - return self->AddRadioTool(id, label, bitmap, bmpDisabled, - shortHelp, longHelp, udata); - } -static PyObject *_wrap_wxToolBarBase_AddRadioTool(PyObject *self, PyObject *args, PyObject *kwargs) { - PyObject * _resultobj; - wxToolBarToolBase * _result; - wxToolBarBase * _arg0; - int _arg1; - wxString * _arg2; - wxBitmap * _arg3; - wxBitmap * _arg4 = (wxBitmap *) &wxNullBitmap; - wxString * _arg5 = (wxString *) &wxPyEmptyString; - wxString * _arg6 = (wxString *) &wxPyEmptyString; - PyObject * _arg7 = (PyObject *) NULL; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _obj5 = 0; - PyObject * _obj6 = 0; - PyObject * _obj7 = 0; - char *_kwnames[] = { "self","id","label","bitmap","bmpDisabled","shortHelp","longHelp","clientData", NULL }; - - self = self; - if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiOO|OOOO:wxToolBarBase_AddRadioTool",_kwnames,&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_obj5,&_obj6,&_obj7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBarBase_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarBase_AddRadioTool. Expected _wxToolBarBase_p."); - return NULL; - } - } -{ - _arg2 = wxString_in_helper(_obj2); - if (_arg2 == NULL) - return NULL; -} - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxToolBarBase_AddRadioTool. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxToolBarBase_AddRadioTool. Expected _wxBitmap_p."); - return NULL; - } - } - if (_obj5) -{ - _arg5 = wxString_in_helper(_obj5); - if (_arg5 == NULL) - return NULL; -} - if (_obj6) -{ - _arg6 = wxString_in_helper(_obj6); - if (_arg6 == NULL) - return NULL; -} - if (_obj7) -{ - _arg7 = _obj7; -} -{ - PyThreadState* __tstate = wxPyBeginAllowThreads(); - _result = (wxToolBarToolBase *)wxToolBarBase_AddRadioTool(_arg0,_arg1,*_arg2,*_arg3,*_arg4,*_arg5,*_arg6,_arg7); - - wxPyEndAllowThreads(__tstate); - if (PyErr_Occurred()) return NULL; -}{ _resultobj = wxPyMake_wxObject(_result); } -{ - if (_obj2) - delete _arg2; -} -{ - if (_obj5) - delete _arg5; -} -{ - if (_obj6) - delete _arg6; -} - return _resultobj; -} - static wxToolBarToolBase * wxToolBarBase_InsertTool(wxToolBarBase *self,size_t pos,int id,const wxString & label,const wxBitmap & bitmap,const wxBitmap & bmpDisabled,wxItemKind kind,const wxString & shortHelp,const wxString & longHelp,PyObject * clientData) { wxPyUserData* udata = NULL; - if (clientData) + if (clientData && clientData != Py_None) udata = new wxPyUserData(clientData); return self->InsertTool(pos, id, label, bitmap, bmpDisabled, kind, shortHelp, longHelp, udata); @@ -2017,84 +1752,6 @@ static PyObject *_wrap_wxToolBarBase_InsertTool(PyObject *self, PyObject *args, return _resultobj; } -static wxToolBarToolBase * wxToolBarBase_InsertSimpleTool(wxToolBarBase *self,size_t pos,int id,const wxString & label,const wxBitmap & bitmap,wxItemKind kind,const wxString & shortHelp,const wxString & longHelp) { - return self->InsertTool(pos, id, label, bitmap, wxNullBitmap, kind, - shortHelp, longHelp); - } -static PyObject *_wrap_wxToolBarBase_InsertSimpleTool(PyObject *self, PyObject *args, PyObject *kwargs) { - PyObject * _resultobj; - wxToolBarToolBase * _result; - wxToolBarBase * _arg0; - size_t _arg1; - int _arg2; - wxString * _arg3; - wxBitmap * _arg4; - wxItemKind _arg5 = (wxItemKind ) wxITEM_NORMAL; - wxString * _arg6 = (wxString *) &wxPyEmptyString; - wxString * _arg7 = (wxString *) &wxPyEmptyString; - PyObject * _argo0 = 0; - PyObject * _obj3 = 0; - PyObject * _argo4 = 0; - PyObject * _obj6 = 0; - PyObject * _obj7 = 0; - char *_kwnames[] = { "self","pos","id","label","bitmap","kind","shortHelp","longHelp", NULL }; - - self = self; - if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiiOO|iOO:wxToolBarBase_InsertSimpleTool",_kwnames,&_argo0,&_arg1,&_arg2,&_obj3,&_argo4,&_arg5,&_obj6,&_obj7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBarBase_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarBase_InsertSimpleTool. Expected _wxToolBarBase_p."); - return NULL; - } - } -{ - _arg3 = wxString_in_helper(_obj3); - if (_arg3 == NULL) - return NULL; -} - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxToolBarBase_InsertSimpleTool. Expected _wxBitmap_p."); - return NULL; - } - } - if (_obj6) -{ - _arg6 = wxString_in_helper(_obj6); - if (_arg6 == NULL) - return NULL; -} - if (_obj7) -{ - _arg7 = wxString_in_helper(_obj7); - if (_arg7 == NULL) - return NULL; -} -{ - PyThreadState* __tstate = wxPyBeginAllowThreads(); - _result = (wxToolBarToolBase *)wxToolBarBase_InsertSimpleTool(_arg0,_arg1,_arg2,*_arg3,*_arg4,_arg5,*_arg6,*_arg7); - - wxPyEndAllowThreads(__tstate); - if (PyErr_Occurred()) return NULL; -}{ _resultobj = wxPyMake_wxObject(_result); } -{ - if (_obj3) - delete _arg3; -} -{ - if (_obj6) - delete _arg6; -} -{ - if (_obj7) - delete _arg7; -} - return _resultobj; -} - #define wxToolBarBase_AddControl(_swigobj,_swigarg0) (_swigobj->AddControl(_swigarg0)) static PyObject *_wrap_wxToolBarBase_AddControl(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject * _resultobj; @@ -3775,12 +3432,8 @@ static PyMethodDef stattoolcMethods[] = { { "wxToolBarBase_AddSeparator", (PyCFunction) _wrap_wxToolBarBase_AddSeparator, METH_VARARGS | METH_KEYWORDS }, { "wxToolBarBase_InsertControl", (PyCFunction) _wrap_wxToolBarBase_InsertControl, METH_VARARGS | METH_KEYWORDS }, { "wxToolBarBase_AddControl", (PyCFunction) _wrap_wxToolBarBase_AddControl, METH_VARARGS | METH_KEYWORDS }, - { "wxToolBarBase_InsertSimpleTool", (PyCFunction) _wrap_wxToolBarBase_InsertSimpleTool, METH_VARARGS | METH_KEYWORDS }, { "wxToolBarBase_InsertTool", (PyCFunction) _wrap_wxToolBarBase_InsertTool, METH_VARARGS | METH_KEYWORDS }, - { "wxToolBarBase_AddRadioTool", (PyCFunction) _wrap_wxToolBarBase_AddRadioTool, METH_VARARGS | METH_KEYWORDS }, - { "wxToolBarBase_AddCheckTool", (PyCFunction) _wrap_wxToolBarBase_AddCheckTool, METH_VARARGS | METH_KEYWORDS }, - { "wxToolBarBase_AddSimpleTool", (PyCFunction) _wrap_wxToolBarBase_AddSimpleTool, METH_VARARGS | METH_KEYWORDS }, - { "wxToolBarBase_AddTool", (PyCFunction) _wrap_wxToolBarBase_AddTool, METH_VARARGS | METH_KEYWORDS }, + { "wxToolBarBase_DoAddTool", (PyCFunction) _wrap_wxToolBarBase_DoAddTool, METH_VARARGS | METH_KEYWORDS }, { "wxToolBarToolBase_SetClientData", (PyCFunction) _wrap_wxToolBarToolBase_SetClientData, METH_VARARGS | METH_KEYWORDS }, { "wxToolBarToolBase_GetClientData", (PyCFunction) _wrap_wxToolBarToolBase_GetClientData, METH_VARARGS | METH_KEYWORDS }, { "wxToolBarToolBase_Attach", (PyCFunction) _wrap_wxToolBarToolBase_Attach, METH_VARARGS | METH_KEYWORDS }, diff --git a/wxPython/src/msw/stattool.py b/wxPython/src/msw/stattool.py index 2dc9618b78..bd566c13f7 100644 --- a/wxPython/src/msw/stattool.py +++ b/wxPython/src/msw/stattool.py @@ -13,6 +13,7 @@ from controls import * from events import * import wx +wxITEM_NORMAL = 0 # predeclare this since wx isn't fully imported yet class wxStatusBarPtr(wxWindowPtr): def __init__(self,this): self.this = this @@ -181,24 +182,12 @@ class wxToolBarBasePtr(wxControlPtr): def __init__(self,this): self.this = this self.thisown = 0 - def AddTool(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBarBase_AddTool,(self,) + _args, _kwargs) - return val - def AddSimpleTool(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBarBase_AddSimpleTool,(self,) + _args, _kwargs) - return val - def AddCheckTool(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBarBase_AddCheckTool,(self,) + _args, _kwargs) - return val - def AddRadioTool(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBarBase_AddRadioTool,(self,) + _args, _kwargs) + def DoAddTool(self, *_args, **_kwargs): + val = apply(stattoolc.wxToolBarBase_DoAddTool,(self,) + _args, _kwargs) return val def InsertTool(self, *_args, **_kwargs): val = apply(stattoolc.wxToolBarBase_InsertTool,(self,) + _args, _kwargs) return val - def InsertSimpleTool(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBarBase_InsertSimpleTool,(self,) + _args, _kwargs) - return val def AddControl(self, *_args, **_kwargs): val = apply(stattoolc.wxToolBarBase_AddControl,(self,) + _args, _kwargs) return val @@ -316,6 +305,130 @@ class wxToolBarBasePtr(wxControlPtr): return val def __repr__(self): return "" % (self.this,) + + # These match the original Add methods for this class, kept for + # backwards compatibility with versions < 2.3.3. + + + def AddTool(self, id, bitmap, + pushedBitmap = wxNullBitmap, + isToggle = 0, + clientData = None, + shortHelpString = '', + longHelpString = '') : + '''Old style method to add a tool to the toolbar.''' + kind = wx.wxITEM_NORMAL + if isToggle: kind = wx.wxITEM_CHECK + return self.DoAddTool(id, '', bitmap, pushedBitmap, kind, + shortHelpString, longHelpString, clientData) + + def AddSimpleTool(self, id, bitmap, + shortHelpString = '', + longHelpString = '', + isToggle = 0): + '''Old style method to add a tool to the toolbar.''' + kind = wx.wxITEM_NORMAL + if isToggle: kind = wx.wxITEM_CHECK + return self.DoAddTool(id, '', bitmap, wxNullBitmap, kind, + shortHelpString, longHelpString, None) + + def InsertTool(self, pos, id, bitmap, + pushedBitmap = wxNullBitmap, + isToggle = 0, + clientData = None, + shortHelpString = '', + longHelpString = ''): + '''Old style method to insert a tool in the toolbar.''' + kind = wx.wxITEM_NORMAL + if isToggle: kind = wx.wxITEM_CHECK + return self.DoInsertTool(pos, id, '', bitmap, pushedBitmap, kind, + shortHelpString, longHelpString, clientData) + + def InsertSimpleTool(self, pos, id, bitmap, + shortHelpString = '', + longHelpString = '', + isToggle = 0): + '''Old style method to insert a tool in the toolbar.''' + kind = wx.wxITEM_NORMAL + if isToggle: kind = wx.wxITEM_CHECK + return self.DoInsertTool(pos, id, '', bitmap, wxNullBitmap, kind, + shortHelpString, longHelpString, None) + + + # The following are the new toolbar Add methods starting with + # 2.3.3. They are renamed to have 'Label' in the name so as to be + # able to keep backwards compatibility with using the above + # methods. Eventually these should migrate to be the methods used + # primarily and loose the 'Label' in the name... + + def AddLabelTool(self, id, label, bitmap, + bmpDisabled = wxNullBitmap, + kind = wxITEM_NORMAL, + shortHelp = '', longHelp = '', + clientData = None): + ''' + The full AddTool() function. + + If bmpDisabled is wxNullBitmap, a shadowed version of the normal bitmap + is created and used as the disabled image. + ''' + return self.DoAddTool(id, label, bitmap, bmpDisabled, kind, + shortHelp, longHelp, clientData) + + + def InsertLabelTool(self, pos, id, label, bitmap, + bmpDisabled = wxNullBitmap, + kind = wxITEM_NORMAL, + shortHelp = '', longHelp = '', + clientData = None): + ''' + Insert the new tool at the given position, if pos == GetToolsCount(), it + is equivalent to AddTool() + ''' + return self.DoInsertTool(pos, id, label, bitmap, bmpDisabled, kind, + shortHelp, longHelp, clientData) + + def AddCheckLabelTool(self, id, label, bitmap, + bmpDisabled = wxNullBitmap, + shortHelp = '', longHelp = '', + clientData = None): + '''Add a check tool, i.e. a tool which can be toggled''' + return self.DoAddTool(id, label, bitmap, bmpDisabled, wx.wxITEM_CHECK, + shortHelp, longHelp, clientData) + + def AddRadioLabelTool(self, id, label, bitmap, + bmpDisabled = wxNullBitmap, + shortHelp = '', longHelp = '', + clientData = None): + ''' + Add a radio tool, i.e. a tool which can be toggled and releases any + other toggled radio tools in the same group when it happens + ''' + return self.DoAddTool(id, label, bitmap, bmpDisabled, wx.wxITEM_RADIO, + shortHelp, longHelp, clientData) + + + # For consistency with the backwards compatible methods above, here are + # some non-'Label' versions of the Check and Radio methods + def AddCheckTool(self, id, bitmap, + bmpDisabled = wxNullBitmap, + shortHelp = '', longHelp = '', + clientData = None): + '''Add a check tool, i.e. a tool which can be toggled''' + return self.DoAddTool(id, '', bitmap, bmpDisabled, wx.wxITEM_CHECK, + shortHelp, longHelp, clientData) + + def AddRadioTool(self, id, bitmap, + bmpDisabled = wxNullBitmap, + shortHelp = '', longHelp = '', + clientData = None): + ''' + Add a radio tool, i.e. a tool which can be toggled and releases any + other toggled radio tools in the same group when it happens + ''' + return self.DoAddTool(id, '', bitmap, bmpDisabled, wx.wxITEM_RADIO, + shortHelp, longHelp, clientData) + class wxToolBarBase(wxToolBarBasePtr): def __init__(self,this): self.this = this diff --git a/wxPython/src/stattool.i b/wxPython/src/stattool.i index 51887643c4..acb29cc165 100644 --- a/wxPython/src/stattool.i +++ b/wxPython/src/stattool.i @@ -31,7 +31,7 @@ %import controls.i %pragma(python) code = "import wx" - +%pragma(python) code = "wxITEM_NORMAL = 0 # predeclare this since wx isn't fully imported yet" //---------------------------------------------------------------------- @@ -169,73 +169,30 @@ public: %addmethods { - // the full AddTool() function + // The full AddTool() function. Call it DoAddTool in wxPython and + // implement the other Add methods by calling it. // // If bmpDisabled is wxNullBitmap, a shadowed version of the normal bitmap // is created and used as the disabled image. - wxToolBarToolBase *AddTool(int id, - const wxString& label, - const wxBitmap& bitmap, - const wxBitmap& bmpDisabled, - wxItemKind kind = wxITEM_NORMAL, - const wxString& shortHelp = wxPyEmptyString, - const wxString& longHelp = wxPyEmptyString, - PyObject *clientData = NULL) + wxToolBarToolBase *DoAddTool(int id, + const wxString& label, + const wxBitmap& bitmap, + const wxBitmap& bmpDisabled = wxNullBitmap, + wxItemKind kind = wxITEM_NORMAL, + const wxString& shortHelp = wxPyEmptyString, + const wxString& longHelp = wxPyEmptyString, + PyObject *clientData = NULL) { wxPyUserData* udata = NULL; - if (clientData) + if (clientData && clientData != Py_None) udata = new wxPyUserData(clientData); return self->AddTool(id, label, bitmap, bmpDisabled, kind, shortHelp, longHelp, udata); } - // The most common version of AddTool - wxToolBarToolBase *AddSimpleTool(int id, - const wxString& label, - const wxBitmap& bitmap, - const wxString& shortHelp = wxPyEmptyString, - const wxString& longHelp = wxPyEmptyString, - wxItemKind kind = wxITEM_NORMAL) - { - return self->AddTool(id, label, bitmap, wxNullBitmap, kind, - shortHelp, longHelp, NULL); - } - // add a check tool, i.e. a tool which can be toggled - wxToolBarToolBase *AddCheckTool(int id, - const wxString& label, - const wxBitmap& bitmap, - const wxBitmap& bmpDisabled = wxNullBitmap, - const wxString& shortHelp = wxPyEmptyString, - const wxString& longHelp = wxPyEmptyString, - PyObject *clientData = NULL) - { - wxPyUserData* udata = NULL; - if (clientData) - udata = new wxPyUserData(clientData); - return self->AddCheckTool(id, label, bitmap, bmpDisabled, - shortHelp, longHelp, udata); - } - - // add a radio tool, i.e. a tool which can be toggled and releases any - // other toggled radio tools in the same group when it happens - wxToolBarToolBase *AddRadioTool(int id, - const wxString& label, - const wxBitmap& bitmap, - const wxBitmap& bmpDisabled = wxNullBitmap, - const wxString& shortHelp = wxPyEmptyString, - const wxString& longHelp = wxPyEmptyString, - PyObject *clientData = NULL) - { - wxPyUserData* udata = NULL; - if (clientData) - udata = new wxPyUserData(clientData); - return self->AddRadioTool(id, label, bitmap, bmpDisabled, - shortHelp, longHelp, udata); - } - - // insert the new tool at the given position, if pos == GetToolsCount(), it - // is equivalent to AddTool() + // Insert the new tool at the given position, if pos == GetToolsCount(), it + // is equivalent to DoAddTool() wxToolBarToolBase *InsertTool(size_t pos, int id, const wxString& label, @@ -247,27 +204,141 @@ public: PyObject *clientData = NULL) { wxPyUserData* udata = NULL; - if (clientData) + if (clientData && clientData != Py_None) udata = new wxPyUserData(clientData); return self->InsertTool(pos, id, label, bitmap, bmpDisabled, kind, shortHelp, longHelp, udata); } - // A simpler InsertTool - wxToolBarToolBase *InsertSimpleTool(size_t pos, - int id, - const wxString& label, - const wxBitmap& bitmap, - wxItemKind kind = wxITEM_NORMAL, - const wxString& shortHelp = wxPyEmptyString, - const wxString& longHelp = wxPyEmptyString) - { - return self->InsertTool(pos, id, label, bitmap, wxNullBitmap, kind, - shortHelp, longHelp); - } } + %pragma(python) addtoclass = " + # These match the original Add methods for this class, kept for + # backwards compatibility with versions < 2.3.3. + + + def AddTool(self, id, bitmap, + pushedBitmap = wxNullBitmap, + isToggle = 0, + clientData = None, + shortHelpString = '', + longHelpString = '') : + '''Old style method to add a tool to the toolbar.''' + kind = wx.wxITEM_NORMAL + if isToggle: kind = wx.wxITEM_CHECK + return self.DoAddTool(id, '', bitmap, pushedBitmap, kind, + shortHelpString, longHelpString, clientData) + + def AddSimpleTool(self, id, bitmap, + shortHelpString = '', + longHelpString = '', + isToggle = 0): + '''Old style method to add a tool to the toolbar.''' + kind = wx.wxITEM_NORMAL + if isToggle: kind = wx.wxITEM_CHECK + return self.DoAddTool(id, '', bitmap, wxNullBitmap, kind, + shortHelpString, longHelpString, None) + + def InsertTool(self, pos, id, bitmap, + pushedBitmap = wxNullBitmap, + isToggle = 0, + clientData = None, + shortHelpString = '', + longHelpString = ''): + '''Old style method to insert a tool in the toolbar.''' + kind = wx.wxITEM_NORMAL + if isToggle: kind = wx.wxITEM_CHECK + return self.DoInsertTool(pos, id, '', bitmap, pushedBitmap, kind, + shortHelpString, longHelpString, clientData) + + def InsertSimpleTool(self, pos, id, bitmap, + shortHelpString = '', + longHelpString = '', + isToggle = 0): + '''Old style method to insert a tool in the toolbar.''' + kind = wx.wxITEM_NORMAL + if isToggle: kind = wx.wxITEM_CHECK + return self.DoInsertTool(pos, id, '', bitmap, wxNullBitmap, kind, + shortHelpString, longHelpString, None) + + + # The following are the new toolbar Add methods starting with + # 2.3.3. They are renamed to have 'Label' in the name so as to be + # able to keep backwards compatibility with using the above + # methods. Eventually these should migrate to be the methods used + # primarily and loose the 'Label' in the name... + + def AddLabelTool(self, id, label, bitmap, + bmpDisabled = wxNullBitmap, + kind = wxITEM_NORMAL, + shortHelp = '', longHelp = '', + clientData = None): + ''' + The full AddTool() function. + + If bmpDisabled is wxNullBitmap, a shadowed version of the normal bitmap + is created and used as the disabled image. + ''' + return self.DoAddTool(id, label, bitmap, bmpDisabled, kind, + shortHelp, longHelp, clientData) + + + def InsertLabelTool(self, pos, id, label, bitmap, + bmpDisabled = wxNullBitmap, + kind = wxITEM_NORMAL, + shortHelp = '', longHelp = '', + clientData = None): + ''' + Insert the new tool at the given position, if pos == GetToolsCount(), it + is equivalent to AddTool() + ''' + return self.DoInsertTool(pos, id, label, bitmap, bmpDisabled, kind, + shortHelp, longHelp, clientData) + + def AddCheckLabelTool(self, id, label, bitmap, + bmpDisabled = wxNullBitmap, + shortHelp = '', longHelp = '', + clientData = None): + '''Add a check tool, i.e. a tool which can be toggled''' + return self.DoAddTool(id, label, bitmap, bmpDisabled, wx.wxITEM_CHECK, + shortHelp, longHelp, clientData) + + def AddRadioLabelTool(self, id, label, bitmap, + bmpDisabled = wxNullBitmap, + shortHelp = '', longHelp = '', + clientData = None): + ''' + Add a radio tool, i.e. a tool which can be toggled and releases any + other toggled radio tools in the same group when it happens + ''' + return self.DoAddTool(id, label, bitmap, bmpDisabled, wx.wxITEM_RADIO, + shortHelp, longHelp, clientData) + + + # For consistency with the backwards compatible methods above, here are + # some non-'Label' versions of the Check and Radio methods + def AddCheckTool(self, id, bitmap, + bmpDisabled = wxNullBitmap, + shortHelp = '', longHelp = '', + clientData = None): + '''Add a check tool, i.e. a tool which can be toggled''' + return self.DoAddTool(id, '', bitmap, bmpDisabled, wx.wxITEM_CHECK, + shortHelp, longHelp, clientData) + + def AddRadioTool(self, id, bitmap, + bmpDisabled = wxNullBitmap, + shortHelp = '', longHelp = '', + clientData = None): + ''' + Add a radio tool, i.e. a tool which can be toggled and releases any + other toggled radio tools in the same group when it happens + ''' + return self.DoAddTool(id, '', bitmap, bmpDisabled, wx.wxITEM_RADIO, + shortHelp, longHelp, clientData) + " + + wxToolBarToolBase *AddControl(wxControl *control); wxToolBarToolBase *InsertControl(size_t pos, wxControl *control);