More aui updates

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42974 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2006-11-03 08:05:45 +00:00
parent eecfab1796
commit 54af9b8b5e

View File

@@ -179,6 +179,10 @@ The following example shows a simple implementation that utilizes
%ignore wxAuiiNotebook::~wxAuiNotebook; %ignore wxAuiiNotebook::~wxAuiNotebook;
%rename(PreAuiNotebook) wxAuiNotebook::wxAuiNotebook(); %rename(PreAuiNotebook) wxAuiNotebook::wxAuiNotebook();
%ignore wxAuiDefaultTabArt::SetWindow; // Link error...
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Get all our defs from the REAL header files. // Get all our defs from the REAL header files.
%include framemanager.h %include framemanager.h
@@ -491,23 +495,27 @@ class wxPyAuiTabArt : public wxAuiDefaultTabArt
virtual void DrawBackground( wxDC* dc, virtual void DrawBackground( wxDC* dc,
wxWindow* wnd,
const wxRect& rect ) const wxRect& rect )
{ {
bool found; bool found;
wxPyBlock_t blocked = wxPyBeginBlockThreads(); wxPyBlock_t blocked = wxPyBeginBlockThreads();
if ((found = wxPyCBH_findCallback(m_myInst, "DrawBackground"))) { 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); 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(odc);
Py_DECREF(ownd);
Py_DECREF(orect); Py_DECREF(orect);
} }
wxPyEndBlockThreads(blocked); wxPyEndBlockThreads(blocked);
if (!found) 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 wxRect& in_rect,
const wxString& caption, const wxString& caption,
bool active, bool active,
@@ -521,12 +529,13 @@ class wxPyAuiTabArt : public wxAuiDefaultTabArt
wxPyBlock_t blocked = wxPyBeginBlockThreads(); wxPyBlock_t blocked = wxPyBeginBlockThreads();
if ((found = wxPyCBH_findCallback(m_myInst, "DrawTab"))) { 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* orect = wxPyConstructObject((void*)&in_rect, wxT("wxRect"), 0);
PyObject* otext = wx2PyString(caption); PyObject* otext = wx2PyString(caption);
PyObject* ro; PyObject* ro;
ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue( ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue(
"(OOOii)", "(OOOOii)",
odc, orect, otext, odc, ownd, orect, otext,
(int)active, close_button_state)); (int)active, close_button_state));
if (ro) { if (ro) {
if (PySequence_Check(ro) && PyObject_Length(ro) == 3) { if (PySequence_Check(ro) && PyObject_Length(ro) == 3) {
@@ -553,16 +562,18 @@ class wxPyAuiTabArt : public wxAuiDefaultTabArt
} }
Py_DECREF(odc); Py_DECREF(odc);
Py_DECREF(ownd);
Py_DECREF(orect); Py_DECREF(orect);
Py_DECREF(otext); Py_DECREF(otext);
} }
wxPyEndBlockThreads(blocked); wxPyEndBlockThreads(blocked);
if (!found) if (!found)
wxAuiDefaultTabArt::DrawTab(dc, in_rect, caption, active, close_button_state, out_tab_rect, out_button_rect, x_extent); wxAuiDefaultTabArt::DrawTab(dc, wnd, in_rect, caption, 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, const wxRect& in_rect,
int bitmap_id, int bitmap_id,
int button_state, int button_state,
@@ -575,10 +586,11 @@ class wxPyAuiTabArt : public wxAuiDefaultTabArt
wxPyBlock_t blocked = wxPyBeginBlockThreads(); wxPyBlock_t blocked = wxPyBeginBlockThreads();
if ((found = wxPyCBH_findCallback(m_myInst, "DrawButton"))) { 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* orect = wxPyConstructObject((void*)&in_rect, wxT("wxRect"), 0);
PyObject* obmp = wxPyConstructObject((void*)&bitmap_override, wxT("wxBitmap"), 0); PyObject* obmp = wxPyConstructObject((void*)&bitmap_override, wxT("wxBitmap"), 0);
PyObject* ro; 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, bitmap_id, button_state, orientation,
obmp)); obmp));
if (ro) { if (ro) {
@@ -588,16 +600,24 @@ class wxPyAuiTabArt : public wxAuiDefaultTabArt
} }
Py_DECREF(odc); Py_DECREF(odc);
Py_DECREF(ownd);
Py_DECREF(orect); Py_DECREF(orect);
Py_DECREF(obmp); Py_DECREF(obmp);
} }
wxPyEndBlockThreads(blocked); wxPyEndBlockThreads(blocked);
if (!found) 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);
} }
// TODO
// virtual int ShowWindowList(
// wxWindow* wnd,
// const wxArrayString& items,
// int active_idx);
virtual wxSize GetTabSize( wxDC* dc, virtual wxSize GetTabSize( wxDC* dc,
wxWindow* wnd,
const wxString& caption, const wxString& caption,
bool active, bool active,
int close_button_state, int close_button_state,
@@ -609,10 +629,11 @@ class wxPyAuiTabArt : public wxAuiDefaultTabArt
wxPyBlock_t blocked = wxPyBeginBlockThreads(); wxPyBlock_t blocked = wxPyBeginBlockThreads();
if ((found = wxPyCBH_findCallback(m_myInst, "GetTabSize"))) { 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* otext = wx2PyString(caption);
PyObject* ro; PyObject* ro;
ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue( ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue(
"(OOi)", odc, otext, (int)active, close_button_state)); "(OOOi)", odc, ownd, otext, (int)active, close_button_state));
if (ro) { if (ro) {
if (PySequence_Check(ro) && PyObject_Length(ro) == 2) { if (PySequence_Check(ro) && PyObject_Length(ro) == 2) {
PyObject* o1 = PySequence_GetItem(ro, 0); PyObject* o1 = PySequence_GetItem(ro, 0);
@@ -634,15 +655,18 @@ class wxPyAuiTabArt : public wxAuiDefaultTabArt
} }
Py_DECREF(odc); Py_DECREF(odc);
Py_DECREF(ownd);
Py_DECREF(otext); Py_DECREF(otext);
} }
wxPyEndBlockThreads(blocked); wxPyEndBlockThreads(blocked);
if (!found) if (!found)
rv = wxAuiDefaultTabArt::GetTabSize(dc, caption, active, close_button_state, x_extent); rv = wxAuiDefaultTabArt::GetTabSize(dc, wnd, caption, active, close_button_state, x_extent);
return rv; return rv;
} }
// TODO
// virtual int GetBestTabCtrlSize(wxWindow* wnd);
DEC_PYCALLBACK__FONT(SetNormalFont); DEC_PYCALLBACK__FONT(SetNormalFont);
DEC_PYCALLBACK__FONT(SetSelectedFont); DEC_PYCALLBACK__FONT(SetSelectedFont);