%module html
%{
-#include "helpers.h"
+#include "export.h"
#include <wx/html/htmlwin.h>
#include <wx/html/htmprint.h>
#include <wx/image.h>
%extern utils.i
-//---------------------------------------------------------------------------
-
-%{
-// #ifdef __WXMSW__
-// wxString wxPyEmptyStr("");
-// wxPoint wxPyDefaultPosition(wxDefaultPosition);
-// wxSize wxPyDefaultSize(wxDefaultSize);
-// #endif
-%}
-
%pragma(python) code = "import wx"
//---------------------------------------------------------------------------
-class wxHtmlLinkInfo {
+class wxHtmlLinkInfo : public wxObject {
public:
wxHtmlLinkInfo(const wxString& href, const wxString& target = wxEmptyString);
wxString GetHref();
wxString GetTarget();
wxMouseEvent* GetEvent();
wxHtmlCell* GetHtmlCell();
+
+ void SetEvent(const wxMouseEvent *e);
+ void SetHtmlCell(const wxHtmlCell * e);
};
//---------------------------------------------------------------------------
-class wxHtmlTag {
+class wxHtmlTag : public wxObject {
public:
// Never need to create a new tag from Python...
//wxHtmlTag(const wxString& source, int pos, int end_pos, wxHtmlTagsCache* cache);
//---------------------------------------------------------------------------
-class wxHtmlParser {
+class wxHtmlParser : public wxObject {
public:
// wxHtmlParser(); This is an abstract base class...
%{
class wxPyHtmlTagHandler : public wxHtmlTagHandler {
+ DECLARE_DYNAMIC_CLASS(wxPyHtmlTagHandler);
public:
wxPyHtmlTagHandler() : wxHtmlTagHandler() {};
PYPRIVATE;
};
+IMPLEMENT_DYNAMIC_CLASS(wxPyHtmlTagHandler, wxHtmlTagHandler);
+
IMP_PYCALLBACK_STRING__pure(wxPyHtmlTagHandler, wxHtmlTagHandler, GetSupportedTags);
IMP_PYCALLBACK_BOOL_TAG_pure(wxPyHtmlTagHandler, wxHtmlTagHandler, HandleTag);
%}
-%name(wxHtmlTagHandler) class wxPyHtmlTagHandler {
+%name(wxHtmlTagHandler) class wxPyHtmlTagHandler : public wxObject {
public:
wxPyHtmlTagHandler();
%{
class wxPyHtmlWinTagHandler : public wxHtmlWinTagHandler {
+ DECLARE_DYNAMIC_CLASS(wxPyHtmlWinTagHandler);
public:
wxPyHtmlWinTagHandler() : wxHtmlWinTagHandler() {};
PYPRIVATE;
};
+IMPLEMENT_DYNAMIC_CLASS( wxPyHtmlWinTagHandler, wxHtmlWinTagHandler);
+
IMP_PYCALLBACK_STRING__pure(wxPyHtmlWinTagHandler, wxHtmlWinTagHandler, GetSupportedTags);
IMP_PYCALLBACK_BOOL_TAG_pure(wxPyHtmlWinTagHandler, wxHtmlWinTagHandler, HandleTag);
%}
}
void OnExit() {
+ bool doSave = wxPyRestoreThread();
Py_DECREF(m_tagHandlerClass);
m_tagHandlerClass = NULL;
for (size_t x=0; x < m_objArray.GetCount(); x++) {
PyObject* obj = (PyObject*)m_objArray.Item(x);
Py_DECREF(obj);
}
+ wxPySaveThread(doSave);
};
void FillHandlersTable(wxHtmlWinParser *parser) {
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
-class wxHtmlCell {
+class wxHtmlCell : public wxObject {
public:
wxHtmlCell();
};
+class wxHtmlWordCell : public wxHtmlCell
+{
+public:
+ wxHtmlWordCell(const wxString& word, wxDC& dc);
+};
+
+
class wxHtmlContainerCell : public wxHtmlCell {
public:
wxHtmlContainerCell(wxHtmlContainerCell *parent);
};
+class wxHtmlFontCell : public wxHtmlCell
+{
+public:
+ wxHtmlFontCell(wxFont *font);
+};
+
class wxHtmlWidgetCell : public wxHtmlCell {
public:
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
-// item of history list
-class HtmlHistoryItem {
-public:
- HtmlHistoryItem(const char* p, const char* a);
-
- int GetPos();
- void SetPos(int p);
- const wxString& GetPage();
- const wxString& GetAnchor();
-};
-
-
-//---------------------------------------------------------------------------
%{
class wxPyHtmlWindow : public wxHtmlWindow {
public:
IMP_PYCALLBACK__STRING(wxPyHtmlWindow, wxHtmlWindow, OnSetTitle);
- void wxPyHtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& link) {
+void wxPyHtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& link) {
bool doSave = wxPyRestoreThread();
- if (m_myInst.findCallback("OnLinkClicked")) {
- PyObject* obj = wxPyConstructObject((void*)&link, "wxHtmlLinkInfo");
- m_myInst.callCallback(Py_BuildValue("(O)", obj));
+ if (wxPyCBH_findCallback(m_myInst, "OnLinkClicked")) {
+ PyObject* obj = wxPyConstructObject((void*)&link, "wxHtmlLinkInfo", 0);
+ wxPyCBH_callCallback(m_myInst, Py_BuildValue("(O)", obj));
+ Py_DECREF(obj);
}
else
wxHtmlWindow::OnLinkClicked(link);
%name(wxHtmlWindow) class wxPyHtmlWindow : public wxScrolledWindow {
public:
wxPyHtmlWindow(wxWindow *parent, int id = -1,
- wxPoint& pos = wxPyDefaultPosition,
- wxSize& size = wxPyDefaultSize,
+ wxPoint& pos = wxDefaultPosition,
+ wxSize& size = wxDefaultSize,
int flags=wxHW_SCROLLBAR_AUTO,
char* name = "htmlWindow");
%pragma(python) addtomethod = "__init__:#wx._StdOnScrollCallbacks(self)"
- bool SetPage(const char* source);
- bool LoadPage(const char* location);
+ bool SetPage(const wxString& source);
+ bool LoadPage(const wxString& location);
wxString GetOpenedPage();
+ wxString GetOpenedAnchor();
+ wxString GetOpenedPageTitle();
+
void SetRelatedFrame(wxFrame* frame, const char* format);
wxFrame* GetRelatedFrame();
void SetRelatedStatusBar(int bar);
}
}
- void SetTitle(const char* title);
+ void SetTitle(const wxString& title);
void SetBorders(int b);
- void ReadCustomization(wxConfigBase *cfg, char* path = "");
- void WriteCustomization(wxConfigBase *cfg, char* path = "");
+ void ReadCustomization(wxConfigBase *cfg, wxString path = wxEmptyString);
+ void WriteCustomization(wxConfigBase *cfg, wxString path = wxEmptyString);
bool HistoryBack();
bool HistoryForward();
+ bool HistoryCanBack();
+ bool HistoryCanForward();
void HistoryClear();
wxHtmlContainerCell* GetInternalRepresentation();
wxHtmlWinParser* GetParser();
//---------------------------------------------------------------------------
-class wxHtmlDCRenderer {
+class wxHtmlDCRenderer : public wxObject {
public:
wxHtmlDCRenderer();
~wxHtmlDCRenderer();
class wxHtmlPrintout : public wxPyPrintout {
public:
wxHtmlPrintout(const char* title = "Printout");
- ~wxHtmlPrintout();
+ //~wxHtmlPrintout(); wxPrintPreview object takes ownership...
void SetHtmlText(const wxString& html,
const wxString &basepath = wxEmptyString,
-class wxHtmlEasyPrinting {
+class wxHtmlEasyPrinting : public wxObject {
public:
wxHtmlEasyPrinting(const char* name = "Printing",
wxFrame *parent_frame = NULL);
wxClassInfo::CleanUpClasses();
wxClassInfo::InitializeClasses();
- // Until wxFileSystem is wrapped...
- #if wxUSE_FS_ZIP
- wxFileSystem::AddHandler(new wxZipFSHandler);
- #endif
- #if wxUSE_FS_INET
-// wxFileSystem::AddHandler(new wxInternetFSHandler);
- #endif
+ wxPyPtrTypeMap_Add("wxHtmlTagHandler", "wxPyHtmlTagHandler");
+ wxPyPtrTypeMap_Add("wxHtmlWinTagHandler", "wxPyHtmlWinTagHandler");
+ wxPyPtrTypeMap_Add("wxHtmlWindow", "wxPyHtmlWindow");
%}
//----------------------------------------------------------------------
%pragma(python) include="_htmlextras.py";
//---------------------------------------------------------------------------
-