X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2a783b2daaae6f06928e7095ebbc4fc039583907..0a5bb138a71dfc1c706fc0858fb2801500e2c2e8:/wxPython/src/aui.i diff --git a/wxPython/src/aui.i b/wxPython/src/aui.i index 254ed49fe5..c27d5a8b14 100755 --- a/wxPython/src/aui.i +++ b/wxPython/src/aui.i @@ -179,6 +179,10 @@ The following example shows a simple implementation that utilizes %ignore wxAuiiNotebook::~wxAuiNotebook; %rename(PreAuiNotebook) wxAuiNotebook::wxAuiNotebook(); + + +%ignore wxAuiDefaultTabArt::SetWindow; // Link error... + //--------------------------------------------------------------------------- // Get all our defs from the REAL header files. %include framemanager.h @@ -439,7 +443,7 @@ methods to the Python methods implemented in the derived class.", ""); class wxPyAuiDockArt : public wxAuiDefaultDockArt { - %pythonAppend wxPyAuiDockArt "self._setCallbackInfo(self, PyAuiDockArt)" + %pythonAppend wxPyAuiDockArt setCallbackInfo(PyAuiDockArt) wxPyAuiDocArt(); }; @@ -490,56 +494,68 @@ class wxPyAuiTabArt : public wxAuiDefaultTabArt wxPyAuiTabArt() : wxAuiDefaultTabArt() {} - virtual void DrawBackground( wxDC* dc, + virtual void DrawBackground( wxDC& dc, + wxWindow* wnd, const wxRect& rect ) { bool found; wxPyBlock_t blocked = wxPyBeginBlockThreads(); if ((found = wxPyCBH_findCallback(m_myInst, "DrawBackground"))) { - PyObject* odc = wxPyMake_wxObject(dc, false); + PyObject* odc = wxPyMake_wxObject(&dc, false); + PyObject* ownd = wxPyMake_wxObject(wnd, false); PyObject* orect = wxPyConstructObject((void*)&rect, wxT("wxRect"), 0); - wxPyCBH_callCallback(m_myInst, Py_BuildValue("(OO)", odc, orect)); + wxPyCBH_callCallback(m_myInst, Py_BuildValue("(OOO)", odc, ownd, orect)); Py_DECREF(odc); + Py_DECREF(ownd); Py_DECREF(orect); } wxPyEndBlockThreads(blocked); if (!found) - wxAuiDefaultTabArt::DrawBackground(dc, rect); + wxAuiDefaultTabArt::DrawBackground(dc, wnd, rect); } - virtual void DrawTab( wxDC* dc, + virtual void DrawTab( wxDC& dc, + wxWindow* wnd, const wxRect& in_rect, const wxString& caption, + const wxBitmap& bitmap, bool active, - bool with_close_button, - wxRect* out_rect, + int close_button_state, + wxRect* out_tab_rect, + wxRect* out_button_rect, int* x_extent) { bool found; - const char* errmsg = "DrawTab should return a sequence containing (out_rect, x_extent)"; + const char* errmsg = "DrawTab should return a sequence containing (tab_rect, button_rect, x_extent)"; wxPyBlock_t blocked = wxPyBeginBlockThreads(); if ((found = wxPyCBH_findCallback(m_myInst, "DrawTab"))) { - PyObject* odc = wxPyMake_wxObject(dc, false); + PyObject* odc = wxPyMake_wxObject(&dc, false); + PyObject* ownd = wxPyMake_wxObject(wnd, false); PyObject* orect = wxPyConstructObject((void*)&in_rect, wxT("wxRect"), 0); PyObject* otext = wx2PyString(caption); + PyObject* obmp = wxPyMake_wxObject((wxObject*)&bitmap, false); PyObject* ro; ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue( - "(OOOii)", - odc, orect, otext, - (int)active, (int)with_close_button)); + "(OOOOOii)", + odc, ownd, orect, otext, obmp, + (int)active, close_button_state)); if (ro) { - if (PySequence_Check(ro) && PyObject_Length(ro) == 2) { + if (PySequence_Check(ro) && PyObject_Length(ro) == 3) { PyObject* o1 = PySequence_GetItem(ro, 0); PyObject* o2 = PySequence_GetItem(ro, 1); - if (!wxRect_helper(o1, &out_rect)) + PyObject* o3 = PySequence_GetItem(ro, 2); + if (!wxRect_helper(o1, &out_tab_rect)) PyErr_SetString(PyExc_TypeError, errmsg); - else if (!PyInt_Check(o2)) + else if (!wxRect_helper(o2, &out_button_rect)) + PyErr_SetString(PyExc_TypeError, errmsg); + else if (!PyInt_Check(o3)) PyErr_SetString(PyExc_TypeError, errmsg); else - *x_extent = PyInt_AsLong(o2); + *x_extent = PyInt_AsLong(o3); Py_DECREF(o1); Py_DECREF(o2); + Py_DECREF(o3); } else { PyErr_SetString(PyExc_TypeError, errmsg); @@ -548,16 +564,19 @@ class wxPyAuiTabArt : public wxAuiDefaultTabArt } Py_DECREF(odc); + Py_DECREF(ownd); Py_DECREF(orect); Py_DECREF(otext); + Py_DECREF(obmp); } wxPyEndBlockThreads(blocked); if (!found) - wxAuiDefaultTabArt::DrawTab(dc, in_rect, caption, active, with_close_button, out_rect, x_extent); + wxAuiDefaultTabArt::DrawTab(dc, wnd, in_rect, caption, bitmap, active, close_button_state, out_tab_rect, out_button_rect, x_extent); } - virtual void DrawButton( wxDC* dc, + virtual void DrawButton( wxDC& dc, + wxWindow* wnd, const wxRect& in_rect, int bitmap_id, int button_state, @@ -569,11 +588,12 @@ class wxPyAuiTabArt : public wxAuiDefaultTabArt const char* errmsg = "DrawButton should return a wxRect"; wxPyBlock_t blocked = wxPyBeginBlockThreads(); if ((found = wxPyCBH_findCallback(m_myInst, "DrawButton"))) { - PyObject* odc = wxPyMake_wxObject(dc, false); + PyObject* odc = wxPyMake_wxObject(&dc, false); + PyObject* ownd = wxPyMake_wxObject(wnd, false); PyObject* orect = wxPyConstructObject((void*)&in_rect, wxT("wxRect"), 0); PyObject* obmp = wxPyConstructObject((void*)&bitmap_override, wxT("wxBitmap"), 0); PyObject* ro; - ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(OOiiiO)", odc, orect, + ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(OOOiiiO)", odc, ownd, orect, bitmap_id, button_state, orientation, obmp)); if (ro) { @@ -583,19 +603,22 @@ class wxPyAuiTabArt : public wxAuiDefaultTabArt } Py_DECREF(odc); + Py_DECREF(ownd); Py_DECREF(orect); Py_DECREF(obmp); } wxPyEndBlockThreads(blocked); if (!found) - wxAuiDefaultTabArt::DrawButton(dc, in_rect, bitmap_id, button_state, orientation, bitmap_override, out_rect); + wxAuiDefaultTabArt::DrawButton(dc, wnd, in_rect, bitmap_id, button_state, orientation, bitmap_override, out_rect); } - - virtual wxSize GetTabSize( wxDC* dc, + + virtual wxSize GetTabSize( wxDC& dc, + wxWindow* wnd, const wxString& caption, + const wxBitmap& bitmap, bool active, - bool with_close_button, + int close_button_state, int* x_extent) { bool found; @@ -603,11 +626,13 @@ class wxPyAuiTabArt : public wxAuiDefaultTabArt const char* errmsg = "GetTabSize should return a sequence containing (size, x_extent)"; wxPyBlock_t blocked = wxPyBeginBlockThreads(); if ((found = wxPyCBH_findCallback(m_myInst, "GetTabSize"))) { - PyObject* odc = wxPyMake_wxObject(dc, false); + PyObject* odc = wxPyMake_wxObject(&dc, false); + PyObject* ownd = wxPyMake_wxObject(wnd, false); PyObject* otext = wx2PyString(caption); + PyObject* obmp = wxPyMake_wxObject((wxObject*)&bitmap, false); PyObject* ro; ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue( - "(OOi)", odc, otext, (int)active, (int)with_close_button)); + "(OOOOii)", odc, ownd, otext, obmp, (int)active, close_button_state)); if (ro) { if (PySequence_Check(ro) && PyObject_Length(ro) == 2) { PyObject* o1 = PySequence_GetItem(ro, 0); @@ -629,20 +654,36 @@ class wxPyAuiTabArt : public wxAuiDefaultTabArt } Py_DECREF(odc); + Py_DECREF(ownd); Py_DECREF(otext); + Py_DECREF(obmp); } wxPyEndBlockThreads(blocked); if (!found) - rv = wxAuiDefaultTabArt::GetTabSize(dc, caption, active, with_close_button, x_extent); + rv = wxAuiDefaultTabArt::GetTabSize(dc, wnd, caption, bitmap, active, close_button_state, x_extent); return rv; } - - + +// TODO +// virtual int ShowWindowList( +// wxWindow* wnd, +// const wxArrayString& items, +// int active_idx); +// +// virtual int GetBestTabCtrlSize(wxWindow* wnd, +// wxAuiNotebookPageArray& pages); +// virtual wxAuiTabArt* Clone(); +// virtual void SetFlags(unsigned int flags); +// virtual void SetSizingInfo(const wxSize& tab_ctrl_size, +// size_t tab_count); +// virtual int GetIndentSize(); + + DEC_PYCALLBACK__FONT(SetNormalFont); DEC_PYCALLBACK__FONT(SetSelectedFont); DEC_PYCALLBACK__FONT(SetMeasuringFont); - DEC_PYCALLBACK_INT_WIN(GetBestTabCtrlSize); +// DEC_PYCALLBACK_INT_WIN(GetBestTabCtrlSize); PYPRIVATE; }; @@ -651,7 +692,7 @@ class wxPyAuiTabArt : public wxAuiDefaultTabArt IMP_PYCALLBACK__FONT(wxPyAuiTabArt, wxAuiDefaultTabArt, SetNormalFont); IMP_PYCALLBACK__FONT(wxPyAuiTabArt, wxAuiDefaultTabArt, SetSelectedFont); IMP_PYCALLBACK__FONT(wxPyAuiTabArt, wxAuiDefaultTabArt, SetMeasuringFont); -IMP_PYCALLBACK_INT_WIN(wxPyAuiTabArt, wxAuiDefaultTabArt, GetBestTabCtrlSize); +//IMP_PYCALLBACK_INT_WIN(wxPyAuiTabArt, wxAuiDefaultTabArt, GetBestTabCtrlSize); %} @@ -662,7 +703,7 @@ methods to the Python methods implemented in the derived class.", ""); class wxPyAuiTabArt : public wxAuiDefaultTabArt { - %pythonAppend wxPyAuiTabArt "self._setCallbackInfo(self, PyAuiTabArt)" + %pythonAppend wxPyAuiTabArt setCallbackInfo(PyAuiTabArt) wxPyAuiTabArt(); };