]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/html.i
use wx.CallAfter to set the insertion point
[wxWidgets.git] / wxPython / src / html.i
index 164183844e2a74df81dd42877cd1a3196714196a..8fa832053aa9ea5c0af0bea4889915f74c9500fc 100644 (file)
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
+%define DOCSTRING
+"Classes for a simple HTML rendering window, HTML Help Window, etc."
+%enddef
 
-%module html
+%module(package="wx", docstring=DOCSTRING) html
 
 %{
 #include "wx/wxPython/wxPython.h"
@@ -134,7 +137,7 @@ public:
 
     wxString GetName();
     bool HasParam(const wxString& par);
-    wxString GetParam(const wxString& par, int with_commas = False);
+    wxString GetParam(const wxString& par, int with_commas = false);
 
     // Can't do this one as-is, but GetParam should be enough...
     //int ScanParam(const wxString& par, const char *format, void* param);
@@ -196,6 +199,13 @@ public:
         }
     }
 
+    // Sets font sizes to be relative to the given size or the system
+    // default size; use either specified or default font
+    void SetStandardFonts(int size = -1,
+                          const wxString& normal_face = wxPyEmptyString,
+                          const wxString& fixed_face = wxPyEmptyString);
+     
+    
     wxHtmlContainerCell* GetContainer();
     wxHtmlContainerCell* OpenContainer();
     wxHtmlContainerCell *SetContainer(wxHtmlContainerCell *c);
@@ -217,6 +227,10 @@ public:
     void SetLinkColor(const wxColour& clr);
     wxColour GetActualColor();
     void SetActualColor(const wxColour& clr);
+    %pythoncode {
+        GetActualColour = GetActualColor
+        SetActualColour = SetActualColor
+    }
     void SetLink(const wxString& link);
     wxFont* CreateCurrentFont();
     wxHtmlLinkInfo GetLink();
@@ -248,7 +262,8 @@ IMP_PYCALLBACK_BOOL_TAG_pure(wxPyHtmlTagHandler, wxHtmlTagHandler, HandleTag);
 %}
 
 
-%name(HtmlTagHandler) class wxPyHtmlTagHandler : public wxObject {
+%rename(HtmlTagHandler) wxPyHtmlTagHandler;
+class wxPyHtmlTagHandler : public wxObject {
 public:
     %pythonAppend wxPyHtmlTagHandler   "self._setCallbackInfo(self, HtmlTagHandler)"    
     wxPyHtmlTagHandler();
@@ -286,7 +301,8 @@ IMP_PYCALLBACK_BOOL_TAG_pure(wxPyHtmlWinTagHandler, wxHtmlWinTagHandler, HandleT
 %}
 
 
-%name(HtmlWinTagHandler) class wxPyHtmlWinTagHandler : public wxPyHtmlTagHandler {
+%rename(HtmlWinTagHandler) wxPyHtmlWinTagHandler;
+class wxPyHtmlWinTagHandler : public wxPyHtmlTagHandler {
 public:
     %pythonAppend wxPyHtmlWinTagHandler    "self._setCallbackInfo(self, HtmlWinTagHandler)"
     wxPyHtmlWinTagHandler();
@@ -313,7 +329,7 @@ public:
     }
 
     void OnExit() {
-        bool blocked = wxPyBeginBlockThreads();
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
         Py_DECREF(m_tagHandlerClass);
         m_tagHandlerClass = NULL;
         for (size_t x=0; x < m_objArray.GetCount(); x++) {
@@ -327,7 +343,7 @@ public:
         // Wave our magic wand...  (if it works it's a miracle!  ;-)
 
         // First, make a new instance of the tag handler
-        bool blocked = wxPyBeginBlockThreads();
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
         PyObject* arg = PyTuple_New(0);
         PyObject* obj = PyObject_CallObject(m_tagHandlerClass, arg);
         Py_DECREF(arg);
@@ -381,7 +397,7 @@ public:
 
     void Set(const wxPoint& fromPos, const wxHtmlCell *fromCell,
              const wxPoint& toPos, const wxHtmlCell *toCell);
-    %name(SetCells)void Set(const wxHtmlCell *fromCell, const wxHtmlCell *toCell);
+    %Rename(SetCells, void, Set(const wxHtmlCell *fromCell, const wxHtmlCell *toCell));
 
     const wxHtmlCell *GetFromCell() const;
     const wxHtmlCell *GetToCell() const;
@@ -581,7 +597,7 @@ public:
     int GetIndentUnits(int ind);
     void SetAlign(const wxHtmlTag& tag);
     void SetWidthFloat(int w, int units);
-    %name(SetWidthFloatFromTag)void SetWidthFloat(const wxHtmlTag& tag);
+    %Rename(SetWidthFloatFromTag, void,  SetWidthFloat(const wxHtmlTag& tag));
     void SetMinHeight(int h, int align = wxHTML_ALIGN_TOP);
     void SetBackgroundColour(const wxColour& clr);
     wxColour GetBackgroundColour();
@@ -594,7 +610,7 @@ public:
 
 class wxHtmlColourCell : public wxHtmlCell {
 public:
-    wxHtmlColourCell(wxColour clr, int flags = wxHTML_CLR_FOREGROUND);
+    wxHtmlColourCell(const wxColour& clr, int flags = wxHTML_CLR_FOREGROUND);
 
 };
 
@@ -629,11 +645,11 @@ public:
 
     // returns True if this filter is able to open&read given file
     virtual bool CanRead(const wxFSFile& file) const {
-        bool rval = False;
+        bool rval = false;
         bool found;
-        bool blocked = wxPyBeginBlockThreads();
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
         if ((found = wxPyCBH_findCallback(m_myInst, "CanRead"))) {
-            PyObject* obj = wxPyMake_wxObject((wxFSFile*)&file);  // cast away const
+            PyObject* obj = wxPyMake_wxObject((wxFSFile*)&file,false);  // cast away const
             rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(O)", obj));
             Py_DECREF(obj);
         }
@@ -647,9 +663,9 @@ public:
     virtual wxString ReadFile(const wxFSFile& file) const {
         wxString rval;
         bool found;
-        bool blocked = wxPyBeginBlockThreads();
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
         if ((found = wxPyCBH_findCallback(m_myInst, "ReadFile"))) {
-            PyObject* obj = wxPyMake_wxObject((wxFSFile*)&file);  // cast away const
+            PyObject* obj = wxPyMake_wxObject((wxFSFile*)&file,false);  // cast away const
             PyObject* ro;
             ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(O)", obj));
             Py_DECREF(obj);
@@ -671,7 +687,8 @@ IMPLEMENT_ABSTRACT_CLASS(wxPyHtmlFilter, wxHtmlFilter);
 
 // And now the version seen by SWIG
 
-%name(HtmlFilter) class wxPyHtmlFilter : public wxObject {
+%rename(HtmlFilter) wxPyHtmlFilter;
+class wxPyHtmlFilter : public wxObject {
 public:
     %pythonAppend wxPyHtmlFilter   "self._setCallbackInfo(self, HtmlFilter)"
     wxPyHtmlFilter();
@@ -730,7 +747,7 @@ IMP_PYCALLBACK__CELLINTINTME(wxPyHtmlWindow, wxHtmlWindow, OnCellClicked);
 
 void wxPyHtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& link) {
     bool found;
-    bool blocked = wxPyBeginBlockThreads();
+    wxPyBlock_t blocked = wxPyBeginBlockThreads();
     if ((found = wxPyCBH_findCallback(m_myInst, "OnLinkClicked"))) {
         PyObject* obj = wxPyConstructObject((void*)&link, wxT("wxHtmlLinkInfo"), 0);
         wxPyCBH_callCallback(m_myInst, Py_BuildValue("(O)", obj));
@@ -750,7 +767,7 @@ wxHtmlOpeningStatus wxPyHtmlWindow::OnOpeningURL(wxHtmlURLType type,
                                                  wxString *redirect) const {
     bool found;
     wxHtmlOpeningStatus rval;
-    bool blocked = wxPyBeginBlockThreads();
+    wxPyBlock_t blocked = wxPyBeginBlockThreads();
     if ((found = wxPyCBH_findCallback(m_myInst, "OnOpeningURL"))) {
         PyObject* ro;
         PyObject* s = wx2PyString(url);
@@ -782,17 +799,24 @@ wxHtmlOpeningStatus wxPyHtmlWindow::OnOpeningURL(wxHtmlURLType type,
 
 
 
-%name(HtmlWindow) class wxPyHtmlWindow : public wxScrolledWindow {
+MustHaveApp(wxPyHtmlWindow);
+
+%rename(HtmlWindow) wxPyHtmlWindow;
+class wxPyHtmlWindow : public wxScrolledWindow {
 public:
     %pythonAppend wxPyHtmlWindow      "self._setCallbackInfo(self, HtmlWindow); self._setOORInfo(self)"
     %pythonAppend wxPyHtmlWindow()    ""
+    %typemap(out) wxPyHtmlWindow*;    // turn off this typemap
     
     wxPyHtmlWindow(wxWindow *parent, int id = -1,
                  const wxPoint& pos = wxDefaultPosition,
                  const wxSize& size = wxDefaultSize,
                  int style=wxHW_DEFAULT_STYLE,
                  const wxString& name = wxPyHtmlWindowNameStr);
-    %name(PreHtmlWindow)wxPyHtmlWindow();
+    %RenameCtor(PreHtmlWindow, wxPyHtmlWindow());
+
+    // Turn it back on again
+    %typemap(out) wxPyHtmlWindow* { $result = wxPyMake_wxObject($1, $owner); }
 
     bool Create(wxWindow *parent, int id = -1,
                 const wxPoint& pos = wxDefaultPosition,
@@ -856,13 +880,23 @@ public:
         }
     }
 
+    // Sets font sizes to be relative to the given size or the system
+    // default size; use either specified or default font
+    void SetStandardFonts(int size = -1,
+                          const wxString& normal_face = wxPyEmptyString,
+                          const wxString& fixed_face = wxPyEmptyString);
+    
     DocDeclStr(
         void, SetTitle(const wxString& title),
-        "");
+        "", "");
 
     // Sets space between text and window borders.
     void SetBorders(int b);
 
+    // Sets the bitmap to use for background (currnetly it will be tiled,
+    // when/if we have CSS support we could add other possibilities...)
+    void SetBackgroundImage(const wxBitmap& bmpBg);
+
     // 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.
@@ -896,6 +930,11 @@ public:
     void SelectLine(const wxPoint& pos);
     void SelectAll();
 
+    // Convert selection to text:
+    wxString SelectionToText();
+
+    // Converts current page to text:
+    wxString ToText();
     
     void base_OnLinkClicked(const wxHtmlLinkInfo& link);
     void base_OnSetTitle(const wxString& title);
@@ -903,6 +942,9 @@ public:
     void base_OnCellClicked(wxHtmlCell *cell,
                             wxCoord x, wxCoord y,
                             const wxMouseEvent& event);
+
+    static wxVisualAttributes
+    GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
 };
 
 
@@ -913,6 +955,8 @@ public:
 %newgroup
 
 
+MustHaveApp(wxHtmlDCRenderer);
+
 class wxHtmlDCRenderer : public wxObject {
 public:
     wxHtmlDCRenderer();
@@ -922,7 +966,7 @@ public:
     void SetSize(int width, int height);
     void SetHtmlText(const wxString& html,
                      const wxString& basepath = wxPyEmptyString,
-                     bool isdir = True);
+                     bool isdir = true);
     // Sets fonts to be used when displaying HTML page. (if size null then default sizes used).
     %extend {
         void SetFonts(wxString normal_face, wxString fixed_face, PyObject* sizes=NULL) {
@@ -933,7 +977,14 @@ public:
                 delete [] temp;
         }
     }
-    int Render(int x, int y, int from = 0, int dont_render = False, int to = INT_MAX,
+
+    // Sets font sizes to be relative to the given size or the system
+    // default size; use either specified or default font
+    void SetStandardFonts(int size = -1,
+                          const wxString& normal_face = wxPyEmptyString,
+                          const wxString& fixed_face = wxPyEmptyString);
+    
+    int Render(int x, int y, int from = 0, int dont_render = false, int maxHeight = INT_MAX,
                //int *known_pagebreaks = NULL, int number_of_pages = 0
                int* choices=NULL, int LCOUNT = 0
                );
@@ -950,6 +1001,8 @@ enum {
 };
 
 
+MustHaveApp(wxHtmlPrintout);
+
 class wxHtmlPrintout : public wxPyPrintout {
 public:
     wxHtmlPrintout(const wxString& title = wxPyHtmlPrintoutTitleStr);
@@ -957,7 +1010,7 @@ public:
 
     void SetHtmlText(const wxString& html,
                      const wxString &basepath = wxPyEmptyString,
-                     bool isdir = True);
+                     bool isdir = true);
     void SetHtmlFile(const wxString &htmlfile);
     void SetHeader(const wxString& header, int pg = wxPAGE_ALL);
     void SetFooter(const wxString& footer, int pg = wxPAGE_ALL);
@@ -972,6 +1025,13 @@ public:
                 delete [] temp;
         }
     }
+
+    // Sets font sizes to be relative to the given size or the system
+    // default size; use either specified or default font
+    void SetStandardFonts(int size = -1,
+                          const wxString& normal_face = wxPyEmptyString,
+                          const wxString& fixed_face = wxPyEmptyString);
+    
     void SetMargins(float top = 25.2, float bottom = 25.2,
                     float left = 25.2, float right = 25.2,
                     float spaces = 5);
@@ -985,6 +1045,8 @@ public:
 
 
 
+MustHaveApp(wxHtmlEasyPrinting);
+
 class wxHtmlEasyPrinting : public wxObject {
 public:
     wxHtmlEasyPrinting(const wxString& name = wxPyHtmlPrintingTitleStr,
@@ -995,7 +1057,7 @@ public:
     void PreviewText(const wxString &htmltext, const wxString& basepath = wxPyEmptyString);
     void PrintFile(const wxString &htmlfile);
     void PrintText(const wxString &htmltext, const wxString& basepath = wxPyEmptyString);
-    void PrinterSetup();
+//    void PrinterSetup();
     void PageSetup();
     void SetHeader(const wxString& header, int pg = wxPAGE_ALL);
     void SetFooter(const wxString& footer, int pg = wxPAGE_ALL);
@@ -1010,6 +1072,12 @@ public:
         }
     }
 
+    // Sets font sizes to be relative to the given size or the system
+    // default size; use either specified or default font
+    void SetStandardFonts(int size = -1,
+                          const wxString& normal_face = wxPyEmptyString,
+                          const wxString& fixed_face = wxPyEmptyString);
+    
     wxPrintData *GetPrintData() {return m_PrintData;}
     wxPageSetupDialogData *GetPageSetupData() {return m_PageSetupData;}
 
@@ -1098,6 +1166,8 @@ public:
 
 //---------------------------------------------------------------------------
 
+MustHaveApp(wxHtmlHelpFrame);
+
 class wxHtmlHelpFrame : public wxFrame {
 public:
     %pythonAppend wxHtmlHelpFrame    "self._setOORInfo(self)"
@@ -1109,7 +1179,7 @@ public:
     wxHtmlHelpData* GetData();
     void SetTitleFormat(const wxString& format);
     void Display(const wxString& x);
-    %name(DisplayID) void Display(int id);
+    %Rename(DisplayID,  void,  Display(int id));
     void DisplayContents();
     void DisplayIndex();
     bool KeywordSearch(const wxString& keyword);
@@ -1135,18 +1205,21 @@ enum {
 };
 
 
-class wxHtmlHelpController : public wxEvtHandler {
+MustHaveApp(wxHtmlHelpController);
+
+class wxHtmlHelpController : public wxObject  // wxHelpControllerBase
+{
 public:
-    %pythonAppend wxHtmlHelpController "self._setOORInfo(self)"
+//    %pythonAppend wxHtmlHelpController "self._setOORInfo(self)"
     
     wxHtmlHelpController(int style = wxHF_DEFAULTSTYLE);
     ~wxHtmlHelpController();
 
     void SetTitleFormat(const wxString& format);
     void SetTempDir(const wxString& path);
-    bool AddBook(const wxString& book, int show_wait_msg = False);
+    bool AddBook(const wxString& book, int show_wait_msg = false);
     void Display(const wxString& x);
-    %name(DisplayID) void Display(int id);
+    %Rename(DisplayID,  void,  Display(int id));
     void DisplayContents();
     void DisplayIndex();
     bool KeywordSearch(const wxString& keyword);