Merged wxPython 2.4.x to the 2.5 branch (Finally!!!)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19793 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
#include <wx/fs_zip.h>
|
||||
#include <wx/fs_inet.h>
|
||||
#include <wx/wfstream.h>
|
||||
#include <wx/filesys.h>
|
||||
|
||||
#include "printfw.h"
|
||||
%}
|
||||
@@ -37,8 +38,10 @@
|
||||
%extern controls.i
|
||||
%extern controls2.i
|
||||
%extern printfw.i
|
||||
|
||||
%extern utils.i
|
||||
%extern filesys.i
|
||||
%extern streams.i
|
||||
|
||||
|
||||
%pragma(python) code = "import wx"
|
||||
|
||||
@@ -158,7 +161,9 @@ public:
|
||||
void InitParser(const wxString& source);
|
||||
void DoneParser();
|
||||
void DoParsing(int begin_pos, int end_pos);
|
||||
void StopParsing();
|
||||
// wxObject* GetProduct();
|
||||
|
||||
void AddTagHandler(wxHtmlTagHandler *handler);
|
||||
wxString* GetSource();
|
||||
void PushTagHandler(wxHtmlTagHandler* handler, wxString tags);
|
||||
@@ -415,6 +420,7 @@ public:
|
||||
%name(SetWidthFloatFromTag)void SetWidthFloat(const wxHtmlTag& tag);
|
||||
void SetMinHeight(int h, int align = wxHTML_ALIGN_TOP);
|
||||
void SetBackgroundColour(const wxColour& clr);
|
||||
wxColour GetBackgroundColour();
|
||||
void SetBorder(const wxColour& clr1, const wxColour& clr2);
|
||||
wxHtmlCell* GetFirstCell();
|
||||
};
|
||||
@@ -442,9 +448,75 @@ public:
|
||||
};
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// wxHtmlFilter
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
%{ // here's the C++ version
|
||||
class wxPyHtmlFilter : public wxHtmlFilter {
|
||||
DECLARE_ABSTRACT_CLASS(wxPyHtmlFilter);
|
||||
public:
|
||||
wxPyHtmlFilter() : wxHtmlFilter() {}
|
||||
|
||||
// returns TRUE if this filter is able to open&read given file
|
||||
virtual bool CanRead(const wxFSFile& file) const {
|
||||
bool rval = FALSE;
|
||||
bool found;
|
||||
wxPyBeginBlockThreads();
|
||||
if ((found = wxPyCBH_findCallback(m_myInst, "CanRead"))) {
|
||||
PyObject* obj = wxPyMake_wxObject((wxFSFile*)&file); // cast away const
|
||||
rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(O)", obj));
|
||||
Py_DECREF(obj);
|
||||
}
|
||||
wxPyEndBlockThreads();
|
||||
return rval;
|
||||
}
|
||||
|
||||
|
||||
// Reads given file and returns HTML document.
|
||||
// Returns empty string if opening failed
|
||||
virtual wxString ReadFile(const wxFSFile& file) const {
|
||||
wxString rval;
|
||||
bool found;
|
||||
wxPyBeginBlockThreads();
|
||||
if ((found = wxPyCBH_findCallback(m_myInst, "ReadFile"))) {
|
||||
PyObject* obj = wxPyMake_wxObject((wxFSFile*)&file); // cast away const
|
||||
PyObject* ro;
|
||||
ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(O)", obj));
|
||||
Py_DECREF(obj);
|
||||
if (ro) {
|
||||
rval = Py2wxString(ro);
|
||||
Py_DECREF(ro);
|
||||
}
|
||||
}
|
||||
wxPyEndBlockThreads();
|
||||
return rval;
|
||||
}
|
||||
|
||||
PYPRIVATE;
|
||||
};
|
||||
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxPyHtmlFilter, wxHtmlFilter);
|
||||
%}
|
||||
|
||||
|
||||
// And now the version seen by SWIG
|
||||
|
||||
%name(wxHtmlFilter) class wxPyHtmlFilter : public wxObject {
|
||||
public:
|
||||
wxPyHtmlFilter();
|
||||
|
||||
void _setCallbackInfo(PyObject* self, PyObject* _class);
|
||||
%pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxHtmlFilter)"
|
||||
};
|
||||
|
||||
|
||||
// TODO: wxHtmlFilterHTML
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
// wxHtmlWindow
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
%{
|
||||
@@ -455,7 +527,7 @@ public:
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = wxHW_SCROLLBAR_AUTO,
|
||||
const wxString& name = "htmlWindow")
|
||||
const wxString& name = wxPyHtmlWindowNameStr)
|
||||
: wxHtmlWindow(parent, id, pos, size, style, name) {};
|
||||
wxPyHtmlWindow() : wxHtmlWindow() {};
|
||||
|
||||
@@ -478,7 +550,6 @@ public:
|
||||
DEC_PYCALLBACK__STRING(OnSetTitle);
|
||||
DEC_PYCALLBACK__CELLINTINT(OnCellMouseHover);
|
||||
DEC_PYCALLBACK__CELLINTINTME(OnCellClicked);
|
||||
// DEC_PYCALLBACK_BOOL_STRING(OnOpeningURL);
|
||||
PYPRIVATE;
|
||||
};
|
||||
|
||||
@@ -486,14 +557,13 @@ IMPLEMENT_ABSTRACT_CLASS( wxPyHtmlWindow, wxHtmlWindow );
|
||||
IMP_PYCALLBACK__STRING(wxPyHtmlWindow, wxHtmlWindow, OnSetTitle);
|
||||
IMP_PYCALLBACK__CELLINTINT(wxPyHtmlWindow, wxHtmlWindow, OnCellMouseHover);
|
||||
IMP_PYCALLBACK__CELLINTINTME(wxPyHtmlWindow, wxHtmlWindow, OnCellClicked);
|
||||
// IMP_PYCALLBACK_BOOL_STRING(wxPyHtmlWindow, wxHtmlWindow, OnOpeningURL);
|
||||
|
||||
|
||||
void wxPyHtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& link) {
|
||||
bool found;
|
||||
wxPyBeginBlockThreads();
|
||||
if ((found = wxPyCBH_findCallback(m_myInst, "OnLinkClicked"))) {
|
||||
PyObject* obj = wxPyConstructObject((void*)&link, "wxHtmlLinkInfo", 0);
|
||||
PyObject* obj = wxPyConstructObject((void*)&link, wxT("wxHtmlLinkInfo"), 0);
|
||||
wxPyCBH_callCallback(m_myInst, Py_BuildValue("(O)", obj));
|
||||
Py_DECREF(obj);
|
||||
}
|
||||
@@ -564,18 +634,45 @@ public:
|
||||
%pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
|
||||
%pragma(python) addtomethod = "wxPreHtmlWindow:val._setOORInfo(val)"
|
||||
|
||||
// Set HTML page and display it. !! source is HTML document itself,
|
||||
// it is NOT address/filename of HTML document. If you want to
|
||||
// specify document location, use LoadPage() istead
|
||||
// Return value : FALSE if an error occured, TRUE otherwise
|
||||
bool SetPage(const wxString& source);
|
||||
|
||||
// Load HTML page from given location. Location can be either
|
||||
// a) /usr/wxGTK2/docs/html/wx.htm
|
||||
// b) http://www.somewhere.uk/document.htm
|
||||
// c) ftp://ftp.somesite.cz/pub/something.htm
|
||||
// In case there is no prefix (http:,ftp:), the method
|
||||
// will try to find it itself (1. local file, then http or ftp)
|
||||
// After the page is loaded, the method calls SetPage() to display it.
|
||||
// Note : you can also use path relative to previously loaded page
|
||||
// Return value : same as SetPage
|
||||
bool LoadPage(const wxString& location);
|
||||
|
||||
// Append to current page
|
||||
bool AppendToPage(const wxString& source);
|
||||
|
||||
// Returns full location of opened page
|
||||
wxString GetOpenedPage();
|
||||
|
||||
// Returns anchor within opened page
|
||||
wxString GetOpenedAnchor();
|
||||
|
||||
// Returns <TITLE> of opened page or empty string otherwise
|
||||
wxString GetOpenedPageTitle();
|
||||
|
||||
// Sets frame in which page title will be displayed. Format is format of
|
||||
// frame title, e.g. "HtmlHelp : %s". It must contain exactly one %s
|
||||
void SetRelatedFrame(wxFrame* frame, const wxString& format);
|
||||
wxFrame* GetRelatedFrame();
|
||||
|
||||
// After(!) calling SetRelatedFrame, this sets statusbar slot where messages
|
||||
// will be displayed. Default is -1 = no messages.
|
||||
void SetRelatedStatusBar(int bar);
|
||||
|
||||
//void SetFonts(wxString normal_face, wxString fixed_face, int *LIST);
|
||||
// Sets fonts to be used when displaying HTML page.
|
||||
%addmethods {
|
||||
void SetFonts(wxString normal_face, wxString fixed_face, PyObject* sizes) {
|
||||
int* temp = int_LIST_helper(sizes);
|
||||
@@ -587,20 +684,39 @@ public:
|
||||
}
|
||||
|
||||
void SetTitle(const wxString& title);
|
||||
|
||||
// Sets space between text and window borders.
|
||||
void SetBorders(int b);
|
||||
|
||||
// Saves custom settings into cfg config. it will use the path 'path'
|
||||
// if given, otherwise it will save info into currently selected path.
|
||||
// saved values : things set by SetFonts, SetBorders.
|
||||
void ReadCustomization(wxConfigBase *cfg, wxString path = wxPyEmptyString);
|
||||
void WriteCustomization(wxConfigBase *cfg, wxString path = wxPyEmptyString);
|
||||
|
||||
// Goes to previous/next page (in browsing history)
|
||||
// Returns TRUE if successful, FALSE otherwise
|
||||
bool HistoryBack();
|
||||
bool HistoryForward();
|
||||
bool HistoryCanBack();
|
||||
bool HistoryCanForward();
|
||||
|
||||
// Resets History
|
||||
void HistoryClear();
|
||||
|
||||
// Returns pointer to conteiners/cells structure.
|
||||
wxHtmlContainerCell* GetInternalRepresentation();
|
||||
|
||||
// Returns a pointer to the parser.
|
||||
wxHtmlWinParser* GetParser();
|
||||
|
||||
bool ScrollToAnchor(const wxString& anchor);
|
||||
bool HasAnchor(const wxString& anchor);
|
||||
|
||||
//Adds input filter
|
||||
static void AddFilter(wxPyHtmlFilter *filter);
|
||||
|
||||
|
||||
void base_OnLinkClicked(const wxHtmlLinkInfo& link);
|
||||
void base_OnSetTitle(const wxString& title);
|
||||
void base_OnCellMouseHover(wxHtmlCell *cell, wxCoord x, wxCoord y);
|
||||
@@ -609,12 +725,6 @@ public:
|
||||
const wxMouseEvent& event);
|
||||
};
|
||||
|
||||
// Static methods are mapped to stand-alone functions
|
||||
%inline %{
|
||||
void wxHtmlWindow_AddFilter(wxHtmlFilter *filter) {
|
||||
wxHtmlWindow::AddFilter(filter);
|
||||
}
|
||||
%}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
@@ -702,6 +812,7 @@ public:
|
||||
wxPyPtrTypeMap_Add("wxHtmlTagHandler", "wxPyHtmlTagHandler");
|
||||
wxPyPtrTypeMap_Add("wxHtmlWinTagHandler", "wxPyHtmlWinTagHandler");
|
||||
wxPyPtrTypeMap_Add("wxHtmlWindow", "wxPyHtmlWindow");
|
||||
wxPyPtrTypeMap_Add("wxHtmlFilter", "wxPyHtmlFilter");
|
||||
%}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user