]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/html.i
ActiveX events should be sent to the window, not it's parent.
[wxWidgets.git] / wxPython / src / html.i
index 7449fdff7a75a8d8001a8ce4e79678f068cccdf2..ea6150011341d568abc73834f44e8241997c7c56 100644 (file)
 //---------------------------------------------------------------------------
 
 %import windows.i
 //---------------------------------------------------------------------------
 
 %import windows.i
-%pythoncode { wx = core }
+%pythoncode { wx = _core }
+%pythoncode { __docfilter__ = wx.__DocFilter(globals()) }
 
 %include _html_rename.i
 
 
 MAKE_CONST_WXSTRING_NOSWIG(EmptyString);
 
 %include _html_rename.i
 
 
 MAKE_CONST_WXSTRING_NOSWIG(EmptyString);
-MAKE_CONST_WXSTRING2(HtmlWindowNameStr, "htmlWindow")
-MAKE_CONST_WXSTRING2(HtmlPrintoutTitleStr, "Printout")
-MAKE_CONST_WXSTRING2(HtmlPrintingTitleStr, "Printing")
+MAKE_CONST_WXSTRING2(HtmlWindowNameStr,    wxT("htmlWindow"))
+MAKE_CONST_WXSTRING2(HtmlPrintoutTitleStr, wxT("Printout"))
+MAKE_CONST_WXSTRING2(HtmlPrintingTitleStr, wxT("Printing"))
 
 
 // TODO: Split this file into multiple %included files that coresponds to the
 
 
 // TODO: Split this file into multiple %included files that coresponds to the
@@ -249,7 +250,7 @@ IMP_PYCALLBACK_BOOL_TAG_pure(wxPyHtmlTagHandler, wxHtmlTagHandler, HandleTag);
 
 %name(HtmlTagHandler) class wxPyHtmlTagHandler : public wxObject {
 public:
 
 %name(HtmlTagHandler) class wxPyHtmlTagHandler : public wxObject {
 public:
-    %addtofunc wxPyHtmlTagHandler   "self._setCallbackInfo(self, HtmlTagHandler)"    
+    %pythonAppend wxPyHtmlTagHandler   "self._setCallbackInfo(self, HtmlTagHandler)"    
     wxPyHtmlTagHandler();
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
     wxPyHtmlTagHandler();
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
@@ -287,7 +288,7 @@ IMP_PYCALLBACK_BOOL_TAG_pure(wxPyHtmlWinTagHandler, wxHtmlWinTagHandler, HandleT
 
 %name(HtmlWinTagHandler) class wxPyHtmlWinTagHandler : public wxPyHtmlTagHandler {
 public:
 
 %name(HtmlWinTagHandler) class wxPyHtmlWinTagHandler : public wxPyHtmlTagHandler {
 public:
-    %addtofunc wxPyHtmlWinTagHandler    "self._setCallbackInfo(self, HtmlWinTagHandler)"
+    %pythonAppend wxPyHtmlWinTagHandler    "self._setCallbackInfo(self, HtmlWinTagHandler)"
     wxPyHtmlWinTagHandler();
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
     wxPyHtmlWinTagHandler();
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
@@ -312,21 +313,21 @@ public:
     }
 
     void OnExit() {
     }
 
     void OnExit() {
-        wxPyBeginBlockThreads();
+        bool blocked = wxPyBeginBlockThreads();
         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);
         }
         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);
         }
-        wxPyEndBlockThreads();
+        wxPyEndBlockThreads(blocked);
     };
 
     void FillHandlersTable(wxHtmlWinParser *parser) {
         // Wave our magic wand...  (if it works it's a miracle!  ;-)
 
         // First, make a new instance of the tag handler
     };
 
     void FillHandlersTable(wxHtmlWinParser *parser) {
         // Wave our magic wand...  (if it works it's a miracle!  ;-)
 
         // First, make a new instance of the tag handler
-        wxPyBeginBlockThreads();
+        bool blocked = wxPyBeginBlockThreads();
         PyObject* arg = PyTuple_New(0);
         PyObject* obj = PyObject_CallObject(m_tagHandlerClass, arg);
         Py_DECREF(arg);
         PyObject* arg = PyTuple_New(0);
         PyObject* obj = PyObject_CallObject(m_tagHandlerClass, arg);
         Py_DECREF(arg);
@@ -334,10 +335,10 @@ public:
         // now figure out where it's C++ object is...
         wxPyHtmlWinTagHandler* thPtr;
         if (! wxPyConvertSwigPtr(obj, (void **)&thPtr, wxT("wxPyHtmlWinTagHandler"))) {
         // now figure out where it's C++ object is...
         wxPyHtmlWinTagHandler* thPtr;
         if (! wxPyConvertSwigPtr(obj, (void **)&thPtr, wxT("wxPyHtmlWinTagHandler"))) {
-            wxPyEndBlockThreads();
+            wxPyEndBlockThreads(blocked);
             return;
         }
             return;
         }
-        wxPyEndBlockThreads();
+        wxPyEndBlockThreads(blocked);
 
         // add it,
         parser->AddTagHandler(thPtr);
 
         // add it,
         parser->AddTagHandler(thPtr);
@@ -487,6 +488,11 @@ public:
     int GetWidth();
     int GetHeight();
     int GetDescent();
     int GetWidth();
     int GetHeight();
     int GetDescent();
+
+    // Returns the maximum possible length of the cell.
+    // Call Layout at least once before using GetMaxTotalWidth()
+    int GetMaxTotalWidth() const;
+   
     const wxString& GetId() const;
     void SetId(const wxString& id);
     wxHtmlLinkInfo* GetLink(int x = 0, int y = 0);
     const wxString& GetId() const;
     void SetId(const wxString& id);
     wxHtmlLinkInfo* GetLink(int x = 0, int y = 0);
@@ -625,13 +631,13 @@ public:
     virtual bool CanRead(const wxFSFile& file) const {
         bool rval = False;
         bool found;
     virtual bool CanRead(const wxFSFile& file) const {
         bool rval = False;
         bool found;
-        wxPyBeginBlockThreads();
+        bool blocked = 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);
         }
         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();
+        wxPyEndBlockThreads(blocked);
         return rval;
     }
 
         return rval;
     }
 
@@ -641,7 +647,7 @@ public:
     virtual wxString ReadFile(const wxFSFile& file) const {
         wxString rval;
         bool found;
     virtual wxString ReadFile(const wxFSFile& file) const {
         wxString rval;
         bool found;
-        wxPyBeginBlockThreads();
+        bool blocked = wxPyBeginBlockThreads();
         if ((found = wxPyCBH_findCallback(m_myInst, "ReadFile"))) {
             PyObject* obj = wxPyMake_wxObject((wxFSFile*)&file);  // cast away const
             PyObject* ro;
         if ((found = wxPyCBH_findCallback(m_myInst, "ReadFile"))) {
             PyObject* obj = wxPyMake_wxObject((wxFSFile*)&file);  // cast away const
             PyObject* ro;
@@ -652,7 +658,7 @@ public:
                 Py_DECREF(ro);
             }
         }
                 Py_DECREF(ro);
             }
         }
-        wxPyEndBlockThreads();
+        wxPyEndBlockThreads(blocked);
         return rval;
     }
 
         return rval;
     }
 
@@ -667,7 +673,7 @@ IMPLEMENT_ABSTRACT_CLASS(wxPyHtmlFilter, wxHtmlFilter);
 
 %name(HtmlFilter) class wxPyHtmlFilter : public wxObject {
 public:
 
 %name(HtmlFilter) class wxPyHtmlFilter : public wxObject {
 public:
-    %addtofunc wxPyHtmlFilter   "self._setCallbackInfo(self, HtmlFilter)"
+    %pythonAppend wxPyHtmlFilter   "self._setCallbackInfo(self, HtmlFilter)"
     wxPyHtmlFilter();
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
     wxPyHtmlFilter();
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
@@ -724,13 +730,13 @@ IMP_PYCALLBACK__CELLINTINTME(wxPyHtmlWindow, wxHtmlWindow, OnCellClicked);
 
 void wxPyHtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& link) {
     bool found;
 
 void wxPyHtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& link) {
     bool found;
-    wxPyBeginBlockThreads();
+    bool 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));
         Py_DECREF(obj);
     }
     if ((found = wxPyCBH_findCallback(m_myInst, "OnLinkClicked"))) {
         PyObject* obj = wxPyConstructObject((void*)&link, wxT("wxHtmlLinkInfo"), 0);
         wxPyCBH_callCallback(m_myInst, Py_BuildValue("(O)", obj));
         Py_DECREF(obj);
     }
-    wxPyEndBlockThreads();
+    wxPyEndBlockThreads(blocked);
     if (! found)
         wxHtmlWindow::OnLinkClicked(link);
 }
     if (! found)
         wxHtmlWindow::OnLinkClicked(link);
 }
@@ -744,7 +750,7 @@ wxHtmlOpeningStatus wxPyHtmlWindow::OnOpeningURL(wxHtmlURLType type,
                                                  wxString *redirect) const {
     bool found;
     wxHtmlOpeningStatus rval;
                                                  wxString *redirect) const {
     bool found;
     wxHtmlOpeningStatus rval;
-    wxPyBeginBlockThreads();
+    bool blocked = wxPyBeginBlockThreads();
     if ((found = wxPyCBH_findCallback(m_myInst, "OnOpeningURL"))) {
         PyObject* ro;
         PyObject* s = wx2PyString(url);
     if ((found = wxPyCBH_findCallback(m_myInst, "OnOpeningURL"))) {
         PyObject* ro;
         PyObject* s = wx2PyString(url);
@@ -765,7 +771,7 @@ wxHtmlOpeningStatus wxPyHtmlWindow::OnOpeningURL(wxHtmlURLType type,
         }
         Py_DECREF(ro);
     }
         }
         Py_DECREF(ro);
     }
-    wxPyEndBlockThreads();
+    wxPyEndBlockThreads(blocked);
     if (! found)
         rval = wxHtmlWindow::OnOpeningURL(type, url, redirect);
     return rval;
     if (! found)
         rval = wxHtmlWindow::OnOpeningURL(type, url, redirect);
     return rval;
@@ -778,8 +784,8 @@ wxHtmlOpeningStatus wxPyHtmlWindow::OnOpeningURL(wxHtmlURLType type,
 
 %name(HtmlWindow) class wxPyHtmlWindow : public wxScrolledWindow {
 public:
 
 %name(HtmlWindow) class wxPyHtmlWindow : public wxScrolledWindow {
 public:
-    %addtofunc wxPyHtmlWindow      "self._setCallbackInfo(self, HtmlWindow); self._setOORInfo(self)"
-    %addtofunc wxPyHtmlWindow()    ""
+    %pythonAppend wxPyHtmlWindow      "self._setCallbackInfo(self, HtmlWindow); self._setOORInfo(self)"
+    %pythonAppend wxPyHtmlWindow()    ""
     
     wxPyHtmlWindow(wxWindow *parent, int id = -1,
                  const wxPoint& pos = wxDefaultPosition,
     
     wxPyHtmlWindow(wxWindow *parent, int id = -1,
                  const wxPoint& pos = wxDefaultPosition,
@@ -850,7 +856,9 @@ public:
         }
     }
 
         }
     }
 
-    void SetTitle(const wxString& title);
+    DocDeclStr(
+        void, SetTitle(const wxString& title),
+        "");
 
     // Sets space between text and window borders.
     void SetBorders(int b);
 
     // Sets space between text and window borders.
     void SetBorders(int b);
@@ -883,13 +891,21 @@ public:
     //Adds input filter
     static void AddFilter(wxPyHtmlFilter *filter);
 
     //Adds input filter
     static void AddFilter(wxPyHtmlFilter *filter);
 
+    // Helper functions to select parts of page:
+    void SelectWord(const wxPoint& pos);
+    void SelectLine(const wxPoint& pos);
+    void SelectAll();
 
 
+    
     void base_OnLinkClicked(const wxHtmlLinkInfo& link);
     void base_OnSetTitle(const wxString& title);
     void base_OnCellMouseHover(wxHtmlCell *cell, wxCoord x, wxCoord y);
     void base_OnCellClicked(wxHtmlCell *cell,
                             wxCoord x, wxCoord y,
                             const wxMouseEvent& event);
     void base_OnLinkClicked(const wxHtmlLinkInfo& link);
     void base_OnSetTitle(const wxString& title);
     void base_OnCellMouseHover(wxHtmlCell *cell, wxCoord x, wxCoord y);
     void base_OnCellClicked(wxHtmlCell *cell,
                             wxCoord x, wxCoord y,
                             const wxMouseEvent& event);
+
+    static wxVisualAttributes
+    GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
 };
 
 
 };
 
 
@@ -1087,7 +1103,7 @@ public:
 
 class wxHtmlHelpFrame : public wxFrame {
 public:
 
 class wxHtmlHelpFrame : public wxFrame {
 public:
-    %addtofunc wxHtmlHelpFrame    "self._setOORInfo(self)"
+    %pythonAppend wxHtmlHelpFrame    "self._setOORInfo(self)"
     
     wxHtmlHelpFrame(wxWindow* parent, int wxWindowID,
                    const wxString& title = wxPyEmptyString,
     
     wxHtmlHelpFrame(wxWindow* parent, int wxWindowID,
                    const wxString& title = wxPyEmptyString,
@@ -1124,7 +1140,7 @@ enum {
 
 class wxHtmlHelpController : public wxEvtHandler {
 public:
 
 class wxHtmlHelpController : public wxEvtHandler {
 public:
-    %addtofunc wxHtmlHelpController "self._setOORInfo(self)"
+    %pythonAppend wxHtmlHelpController "self._setOORInfo(self)"
     
     wxHtmlHelpController(int style = wxHF_DEFAULTSTYLE);
     ~wxHtmlHelpController();
     
     wxHtmlHelpController(int style = wxHF_DEFAULTSTYLE);
     ~wxHtmlHelpController();