use wxRTTI to construct the right class of wxHtmlCell

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37456 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2006-02-10 18:38:43 +00:00
parent b15ce82158
commit f0879a0a8f
3 changed files with 17 additions and 13 deletions

View File

@@ -33,6 +33,9 @@ class MyHtmlWindow(html.HtmlWindow):
def OnCellClicked(self, cell, x, y, evt): def OnCellClicked(self, cell, x, y, evt):
self.log.WriteText('OnCellClicked: %s, (%d %d)\n' % (cell, x, y)) self.log.WriteText('OnCellClicked: %s, (%d %d)\n' % (cell, x, y))
if isinstance(cell, html.HtmlWordCell):
sel = html.HtmlSelection()
self.log.WriteText(' %s\n' % cell.ConvertToText(sel))
super(MyHtmlWindow, self).OnCellClicked(cell, x, y, evt) super(MyHtmlWindow, self).OnCellClicked(cell, x, y, evt)

View File

@@ -1451,7 +1451,7 @@ extern wxPyApp *wxPythonApp;
bool found; \ bool found; \
wxPyBlock_t blocked = wxPyBeginBlockThreads(); \ wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \ if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
PyObject* obj = wxPyConstructObject((void*)cell, wxT("wxHtmlCell"), 0); \ PyObject* obj = wxPyMake_wxObject(cell, 0); \
wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(Oii)",obj,x,y)); \ wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(Oii)",obj,x,y)); \
Py_DECREF(obj); \ Py_DECREF(obj); \
} \ } \
@@ -1489,7 +1489,7 @@ extern wxPyApp *wxPythonApp;
bool found; \ bool found; \
wxPyBlock_t blocked = wxPyBeginBlockThreads(); \ wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \ if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
PyObject* obj = wxPyConstructObject((void*)cell, wxT("wxHtmlCell"), 0); \ PyObject* obj = wxPyMake_wxObject(cell, 0); \
PyObject* o2 = wxPyConstructObject((void*)&e, wxT("wxMouseEvent"), 0); \ PyObject* o2 = wxPyConstructObject((void*)&e, wxT("wxMouseEvent"), 0); \
wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(OiiO)",obj,x,y,o2)); \ wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(OiiO)",obj,x,y,o2)); \
Py_DECREF(obj); \ Py_DECREF(obj); \

View File

@@ -384,6 +384,10 @@ private:
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
%typemap(out) wxHtmlCell* { $result = wxPyMake_wxObject($1, $owner); }
%typemap(out) const wxHtmlCell* { $result = wxPyMake_wxObject($1, $owner); }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
%newgroup %newgroup
@@ -499,8 +503,13 @@ enum
class wxHtmlCell : public wxObject { class wxHtmlCell : public wxObject {
public: public:
%typemap(out) wxHtmlCell*; // turn off this typemap
wxHtmlCell(); wxHtmlCell();
// Turn it back on again
%typemap(out) wxHtmlCell* { $result = wxPyMake_wxObject($1, $owner); }
int GetPosX(); int GetPosX();
int GetPosY(); int GetPosY();
int GetWidth(); int GetWidth();
@@ -582,6 +591,9 @@ class wxHtmlWordCell : public wxHtmlCell
{ {
public: public:
wxHtmlWordCell(const wxString& word, wxDC& dc); wxHtmlWordCell(const wxString& word, wxDC& dc);
wxString ConvertToText(wxHtmlSelection *sel) const;
bool IsLinebreakAllowed() const;
void SetPreviousWord(wxHtmlWordCell *cell);
}; };
@@ -1138,10 +1150,6 @@ public:
int GetCurIndex(); int GetCurIndex();
int GetMaxIndex(); int GetMaxIndex();
const wxString& GetName(); const wxString& GetName();
// WXWIN_COMPATIBILITY_2_4
#if 0
wxHtmlContentsItem* GetContentsItem();
#endif
}; };
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -1164,13 +1172,6 @@ public:
// TODO: this one needs fixed... // TODO: this one needs fixed...
const wxHtmlBookRecArray& GetBookRecArray(); const wxHtmlBookRecArray& GetBookRecArray();
// WXWIN_COMPATIBILITY_2_4
#if 0
wxHtmlContentsItem* GetContents();
int GetContentsCnt();
wxHtmlContentsItem* GetIndex();
int GetIndexCnt();
#endif
}; };
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------