X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c6c593e88d75fe89320eafddeb547b3c058c34d8..4e1c35f810f574af79e649fa37171dfa7fc775ee:/wxPython/src/html.i diff --git a/wxPython/src/html.i b/wxPython/src/html.i index 59e6dc9c33..9fc0835024 100644 --- a/wxPython/src/html.i +++ b/wxPython/src/html.i @@ -43,6 +43,22 @@ %pragma(python) code = "import wx" +//---------------------------------------------------------------------- + +%{ + // Put some wx default wxChar* values into wxStrings. + static const wxChar* wxHtmlWindowNameStr = wxT("htmlWindow"); + DECLARE_DEF_STRING(HtmlWindowNameStr); + + static const wxChar* wxHtmlPrintoutTitleStr = wxT("Printout"); + DECLARE_DEF_STRING(HtmlPrintoutTitleStr); + + static const wxChar* wxHtmlPrintingTitleStr = wxT("Printing"); + DECLARE_DEF_STRING(HtmlPrintingTitleStr); + + static const wxString wxPyEmptyString(wxT("")); +%} + //--------------------------------------------------------------------------- enum { @@ -98,7 +114,7 @@ enum wxHtmlURLType class wxHtmlLinkInfo : public wxObject { public: - wxHtmlLinkInfo(const wxString& href, const wxString& target = wxEmptyString); + wxHtmlLinkInfo(const wxString& href, const wxString& target = wxPyEmptyString); wxString GetHref(); wxString GetTarget(); wxMouseEvent* GetEvent(); @@ -443,10 +459,19 @@ public: : wxHtmlWindow(parent, id, pos, size, style, name) {}; wxPyHtmlWindow() : wxHtmlWindow() {}; + bool ScrollToAnchor(const wxString& anchor) { + return wxHtmlWindow::ScrollToAnchor(anchor); + } + + bool HasAnchor(const wxString& anchor) { + const wxHtmlCell *c = m_Cell->Find(wxHTML_COND_ISANCHOR, &anchor); + return c!=NULL; + } + void OnLinkClicked(const wxHtmlLinkInfo& link); void base_OnLinkClicked(const wxHtmlLinkInfo& link); - wxHtmlOpeningStatus OnOpeningURL(wxHtmlURLType type, + wxHtmlOpeningStatus OnOpeningURL(wxHtmlURLType type, const wxString& url, wxString *redirect) const; @@ -489,15 +514,13 @@ wxHtmlOpeningStatus wxPyHtmlWindow::OnOpeningURL(wxHtmlURLType type, wxPyBeginBlockThreads(); if ((found = wxPyCBH_findCallback(m_myInst, "OnOpeningURL"))) { PyObject* ro; - ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(is)", type, url.c_str())); + ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(iO)", type, wx2PyString(url))); if (PyString_Check(ro) #if PYTHON_API_VERSION >= 1009 || PyUnicode_Check(ro) #endif ) { - PyObject* str = PyObject_Str(ro); - *redirect = PyString_AsString(str); - Py_DECREF(str); + *redirect = Py2wxString(ro); rval = wxHTML_REDIRECT; } else { @@ -523,15 +546,15 @@ public: wxPyHtmlWindow(wxWindow *parent, int id = -1, wxPoint& pos = wxDefaultPosition, wxSize& size = wxDefaultSize, - int flags=wxHW_SCROLLBAR_AUTO, - char* name = "htmlWindow"); + int style=wxHW_SCROLLBAR_AUTO, + const wxString& name = wxPyHtmlWindowNameStr); %name(wxPreHtmlWindow)wxPyHtmlWindow(); bool Create(wxWindow *parent, int id = -1, wxPoint& pos = wxDefaultPosition, wxSize& size = wxDefaultSize, - int flags=wxHW_SCROLLBAR_AUTO, - char* name = "htmlWindow"); + int style=wxHW_SCROLLBAR_AUTO, + const wxString& name = wxPyHtmlWindowNameStr); void _setCallbackInfo(PyObject* self, PyObject* _class); @@ -546,7 +569,7 @@ public: wxString GetOpenedAnchor(); wxString GetOpenedPageTitle(); - void SetRelatedFrame(wxFrame* frame, const char* format); + void SetRelatedFrame(wxFrame* frame, const wxString& format); wxFrame* GetRelatedFrame(); void SetRelatedStatusBar(int bar); @@ -563,8 +586,8 @@ public: void SetTitle(const wxString& title); void SetBorders(int b); - void ReadCustomization(wxConfigBase *cfg, wxString path = wxEmptyString); - void WriteCustomization(wxConfigBase *cfg, wxString path = wxEmptyString); + void ReadCustomization(wxConfigBase *cfg, wxString path = wxPyEmptyString); + void WriteCustomization(wxConfigBase *cfg, wxString path = wxPyEmptyString); bool HistoryBack(); bool HistoryForward(); bool HistoryCanBack(); @@ -573,8 +596,11 @@ public: wxHtmlContainerCell* GetInternalRepresentation(); wxHtmlWinParser* GetParser(); + bool ScrollToAnchor(const wxString& anchor); + bool HasAnchor(const wxString& anchor); + void base_OnLinkClicked(const wxHtmlLinkInfo& link); - void base_OnSetTitle(const char* title); + void base_OnSetTitle(const wxString& title); void base_OnCellMouseHover(wxHtmlCell *cell, wxCoord x, wxCoord y); void base_OnCellClicked(wxHtmlCell *cell, wxCoord x, wxCoord y, @@ -601,7 +627,7 @@ public: void SetDC(wxDC *dc, int maxwidth); void SetSize(int width, int height); void SetHtmlText(const wxString& html, - const wxString& basepath = wxEmptyString, + const wxString& basepath = wxPyEmptyString, bool isdir = TRUE); int Render(int x, int y, int from = 0, int dont_render = FALSE); int GetTotalHeight(); @@ -618,11 +644,11 @@ enum { class wxHtmlPrintout : public wxPyPrintout { public: - wxHtmlPrintout(const char* title = "Printout"); + wxHtmlPrintout(const wxString& title = wxPyHtmlPrintoutTitleStr); //~wxHtmlPrintout(); wxPrintPreview object takes ownership... void SetHtmlText(const wxString& html, - const wxString &basepath = wxEmptyString, + const wxString &basepath = wxPyEmptyString, bool isdir = TRUE); void SetHtmlFile(const wxString &htmlfile); void SetHeader(const wxString& header, int pg = wxPAGE_ALL); @@ -636,14 +662,14 @@ public: class wxHtmlEasyPrinting : public wxObject { public: - wxHtmlEasyPrinting(const char* name = "Printing", + wxHtmlEasyPrinting(const wxString& name = wxPyHtmlPrintingTitleStr, wxFrame *parent_frame = NULL); ~wxHtmlEasyPrinting(); void PreviewFile(const wxString &htmlfile); - void PreviewText(const wxString &htmltext, const wxString& basepath = wxEmptyString); + void PreviewText(const wxString &htmltext, const wxString& basepath = wxPyEmptyString); void PrintFile(const wxString &htmlfile); - void PrintText(const wxString &htmltext, const wxString& basepath = wxEmptyString); + void PrintText(const wxString &htmltext, const wxString& basepath = wxPyEmptyString); void PrinterSetup(); void PageSetup(); void SetHeader(const wxString& header, int pg = wxPAGE_ALL);