.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2018 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc



.. _wx.html.HtmlWindow:

==========================================================================================================================================
|phoenix_title|  **wx.html.HtmlWindow**
==========================================================================================================================================

:ref:`wx.html.HtmlWindow`  is probably the only class you will directly use unless you want to do something special (like adding new tag handlers or MIME filters).          

The purpose of this class is to display rich content pages (either local file or downloaded via ``HTTP`` protocol) in a window based on a subset of the HTML standard. The width of the window is constant - given in the constructor - and virtual height is changed dynamically depending on page size. Once the window is created you can set its content by calling :meth:`~wx.html.HtmlWindow.SetPage`  with raw HTML, :meth:`~wx.html.HtmlWindow.LoadPage`  with a :ref:`wx.FileSystem`  location or :meth:`~wx.html.HtmlWindow.LoadFile`  with a filename. 





.. _HtmlWindow-styles:

|styles| Window Styles
================================

This class supports the following styles: 

  

- ``wx.html.HW_SCROLLBAR_NEVER``: Never display scrollbars, not even when the page is larger than the window.  
- ``wx.html.HW_SCROLLBAR_AUTO``: Display scrollbars only if page's size exceeds window's size.  
- ``wx.html.HW_NO_SELECTION``: Don't allow the user to select text.  








.. _HtmlWindow-events:

|events| Events Emitted by this Class
=====================================

Handlers bound for the following event types will receive one of the :ref:`wx.html.HtmlCellEvent`:ref:`wx.html.HtmlLinkEvent` parameters.


- EVT_HTML_CELL_CLICKED: A :ref:`wx.html.HtmlCell`  was clicked.  
- EVT_HTML_CELL_HOVER: The mouse passed over a :ref:`wx.html.HtmlCell`.  
- EVT_HTML_LINK_CLICKED: A :ref:`wx.html.HtmlCell`  which contains an hyperlink was clicked.  








         



.. note:: 

   If you want complete HTML/CSS support as well as a Javascript engine, see instead :ref:`wx.html2.WebView`.  







.. note:: 

   :ref:`wx.html.HtmlWindow`  uses the :ref:`wx.Image`  class for displaying images, as such you need to initialize the handlers for any image formats you use before loading a page. See :ref:`wx.InitAllImageHandlers`  and :meth:`wx.Image.AddHandler` .  







.. seealso:: :ref:`wx.html.HtmlLinkEvent`, :ref:`wx.html.HtmlCellEvent`    







|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>HtmlWindow</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.html.HtmlWindow_inheritance.png" alt="Inheritance diagram of HtmlWindow" usemap="#dummy" class="inheritance"/></center>
   </div>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.html.HtmlWindowInterface.html" title="wx.html.HtmlWindowInterface" alt="" coords="5,101,213,131"/> <area shape="rect" id="node4" href="wx.html.HtmlWindow.html" title="wx.html.HtmlWindow" alt="" coords="135,179,288,208"/> <area shape="rect" id="node2" href="Scrolled&lt; wxPanel &gt;.html" title="Scrolled&lt; wxPanel &gt;" alt="" coords="238,101,391,131"/> </map> 
   </p>

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.html.HtmlWindow.__init__`                                             Default constructor.
:meth:`~wx.html.HtmlWindow.AddFilter`                                            Adds :ref:`input filter <input filter>`  to the static list of available filters.
:meth:`~wx.html.HtmlWindow.AppendToPage`                                         Appends HTML fragment to currently displayed text and refreshes the window.
:meth:`~wx.html.HtmlWindow.GetClassDefaultAttributes`                            
:meth:`~wx.html.HtmlWindow.GetInternalRepresentation`                            Returns pointer to the top-level container.
:meth:`~wx.html.HtmlWindow.GetOpenedAnchor`                                      Returns anchor within currently opened page (see :meth:`wx.html.HtmlWindow.GetOpenedPage` ).
:meth:`~wx.html.HtmlWindow.GetOpenedPage`                                        Returns full location of the opened page.
:meth:`~wx.html.HtmlWindow.GetOpenedPageTitle`                                   Returns title of the opened page or EmptyString if the current page does not contain <``TITLE``> tag.
:meth:`~wx.html.HtmlWindow.GetParser`                                            Returns a pointer to the current parser.
:meth:`~wx.html.HtmlWindow.GetRelatedFrame`                                      Returns the related frame.
:meth:`~wx.html.HtmlWindow.HistoryBack`                                          Moves back to the previous page.
:meth:`~wx.html.HtmlWindow.HistoryCanBack`                                       Returns ``True`` if it is possible to go back in the history i.e.
:meth:`~wx.html.HtmlWindow.HistoryCanForward`                                    Returns ``True`` if it is possible to go forward in the history i.e.
:meth:`~wx.html.HtmlWindow.HistoryClear`                                         Clears history.
:meth:`~wx.html.HtmlWindow.HistoryForward`                                       Moves to next page in history.
:meth:`~wx.html.HtmlWindow.LoadFile`                                             Loads an HTML page from a file and displays it.
:meth:`~wx.html.HtmlWindow.LoadPage`                                             Unlike :meth:`~HtmlWindow.SetPage`   this function first loads the HTML page from `location`  and then displays it.
:meth:`~wx.html.HtmlWindow.OnCellClicked`                                        This method is called when a mouse button is clicked inside :ref:`wx.html.HtmlWindow`.
:meth:`~wx.html.HtmlWindow.OnCellMouseHover`                                     This method is called when a mouse moves over an HTML cell.
:meth:`~wx.html.HtmlWindow.OnLinkClicked`                                        Called when user clicks on hypertext link.
:meth:`~wx.html.HtmlWindow.OnOpeningURL`                                         Called when an URL is being opened (either when the user clicks on a link or an image is loaded).
:meth:`~wx.html.HtmlWindow.OnSetTitle`                                           Called on parsing <``TITLE``> tag.
:meth:`~wx.html.HtmlWindow.ReadCustomization`                                    This reads custom settings from Config.
:meth:`~wx.html.HtmlWindow.ScrollToAnchor`                                       
:meth:`~wx.html.HtmlWindow.SelectAll`                                            Selects all text in the window.
:meth:`~wx.html.HtmlWindow.SelectLine`                                           Selects the line of text that `pos`  points at.
:meth:`~wx.html.HtmlWindow.SelectWord`                                           Selects the word at position `pos`.
:meth:`~wx.html.HtmlWindow.SelectionToText`                                      Returns the current selection as plain text.
:meth:`~wx.html.HtmlWindow.SetBorders`                                           This function sets the space between border of window and HTML contents.
:meth:`~wx.html.HtmlWindow.SetFonts`                                             This function sets font sizes and faces.
:meth:`~wx.html.HtmlWindow.SetPage`                                              Sets the source of a page and displays it, for example
:meth:`~wx.html.HtmlWindow.SetRelatedFrame`                                      Sets the frame in which page title will be displayed.
:meth:`~wx.html.HtmlWindow.SetRelatedStatusBar`                                  **After**  calling :meth:`~HtmlWindow.SetRelatedFrame` , this sets statusbar slot where messages will be displayed.
:meth:`~wx.html.HtmlWindow.SetStandardFonts`                                     Sets default font sizes and/or default font size.
:meth:`~wx.html.HtmlWindow.ToText`                                               Returns content of currently displayed page as plain text.
:meth:`~wx.html.HtmlWindow.WriteCustomization`                                   Saves custom settings into Config.
================================================================================ ================================================================================


|


|property_summary| Properties Summary
=====================================

================================================================================ ================================================================================
:attr:`~wx.html.HtmlWindow.InternalRepresentation`                               See :meth:`~wx.html.HtmlWindow.GetInternalRepresentation`
:attr:`~wx.html.HtmlWindow.OpenedAnchor`                                         See :meth:`~wx.html.HtmlWindow.GetOpenedAnchor`
:attr:`~wx.html.HtmlWindow.OpenedPage`                                           See :meth:`~wx.html.HtmlWindow.GetOpenedPage`
:attr:`~wx.html.HtmlWindow.OpenedPageTitle`                                      See :meth:`~wx.html.HtmlWindow.GetOpenedPageTitle`
:attr:`~wx.html.HtmlWindow.Parser`                                               See :meth:`~wx.html.HtmlWindow.GetParser`
:attr:`~wx.html.HtmlWindow.RelatedFrame`                                         See :meth:`~wx.html.HtmlWindow.GetRelatedFrame` and :meth:`~wx.html.HtmlWindow.SetRelatedFrame`
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: wx.html.HtmlWindow(ScrolledWindow, HtmlWindowInterface)

   **Possible constructors**::

       HtmlWindow()
       
       HtmlWindow(parent, id=ID_ANY, pos=DefaultPosition, size=DefaultSize,
                  style=HW_DEFAULT_STYLE, name="htmlWindow")
       
   
   HtmlWindow is probably the only class you will directly use unless
   you want to do something special (like adding new tag handlers or MIME
   filters).



   .. method:: __init__(self, *args, **kw)



      |overload| Overloaded Implementations:

      **~~~**

      
      **__init__** `(self)`
      
      Default constructor.                   
      
      
      
      
      **~~~**

      
      **__init__** `(self, parent, id=ID_ANY, pos=DefaultPosition, size=DefaultSize, style=HW_DEFAULT_STYLE, name="htmlWindow")`
      
      Constructor.                  
      
      The parameters are the same as :meth:`Scrolled.__init__`   constructor.                  
      
      
      :param `parent`: 
      :type `parent`: wx.Window
      :param `id`: 
      :type `id`: wx.WindowID
      :param `pos`: 
      :type `pos`: wx.Point
      :param `size`: 
      :type `size`: wx.Size
      :param `style`: 
      :type `style`: long
      :param `name`: 
      :type `name`: string
      
      
      
      
      
      
      **~~~**






   .. staticmethod:: AddFilter(filter)

      Adds :ref:`input filter <input filter>`  to the static list of available filters.                  

      These filters are present by default:

      -  ``text/html``   MIME type 
      -  ``image/*``   MIME types 
      - Plain Text filter (this filter is used if no other filter matches)  


                 


      :param `filter`: 
      :type `filter`: wx.html.HtmlFilter







   .. method:: AppendToPage(self, source)

      Appends HTML fragment to currently displayed text and refreshes the window.                  




      :param `source`: HTML code fragment  
      :type `source`: string






      :rtype: `bool`



                  



      :returns: 

         ``False`` if an error occurred, ``True`` otherwise.   








   .. staticmethod:: GetClassDefaultAttributes(variant=WINDOW_VARIANT_NORMAL)




      :param `variant`: 
      :type `variant`: wx.WindowVariant




      :rtype: :ref:`VisualAttributes`








   .. method:: GetInternalRepresentation(self)

      Returns pointer to the top-level container.                  

                

      :rtype: :ref:`wx.html.HtmlContainerCell`







      .. seealso:: :ref:`Cells and Containers <cells and containers>`, :ref:`Printing Framework Overview <printing framework overview>`    








   .. method:: GetOpenedAnchor(self)

      Returns anchor within currently opened page (see :meth:`wx.html.HtmlWindow.GetOpenedPage` ).                  

      If no page is opened or if the displayed page wasn't produced by call to :meth:`LoadPage` , empty string is returned.                  

      :rtype: `string`








   .. method:: GetOpenedPage(self)

      Returns full location of the opened page.                  

      If no page is opened or if the displayed page wasn't produced by call to :meth:`LoadPage` , empty string is returned.                  

      :rtype: `string`








   .. method:: GetOpenedPageTitle(self)

      Returns title of the opened page or EmptyString if the current page does not contain <``TITLE``> tag.                  

      :rtype: `string`








   .. method:: GetParser(self)

      Returns a pointer to the current parser.                  

      :rtype: :ref:`wx.html.HtmlWinParser`








   .. method:: GetRelatedFrame(self)

      Returns the related frame.                  

      :rtype: :ref:`Frame`








   .. method:: HistoryBack(self)

      Moves back to the previous page.                  

      Only pages displayed using :meth:`LoadPage`   are stored in history list.                  

      :rtype: `bool`








   .. method:: HistoryCanBack(self)

      Returns ``True`` if it is possible to go back in the history i.e.                  

      :meth:`HistoryBack`   won't fail.                  

      :rtype: `bool`








   .. method:: HistoryCanForward(self)

      Returns ``True`` if it is possible to go forward in the history i.e.                  

      :meth:`HistoryForward`   won't fail.                  

      :rtype: `bool`








   .. method:: HistoryClear(self)

      Clears history.                   





   .. method:: HistoryForward(self)

      Moves to next page in history.                  

      Only pages displayed using :meth:`LoadPage`   are stored in history list.                  

      :rtype: `bool`








   .. method:: LoadFile(self, filename)

      Loads an HTML page from a file and displays it.                  

                


      :param `filename`: 
      :type `filename`: string




      :rtype: `bool`







      :returns: 

         ``False`` if an error occurred, ``True`` otherwise  







      .. seealso:: :meth:`LoadPage`     








   .. method:: LoadPage(self, location)

      Unlike :meth:`SetPage`   this function first loads the HTML page from `location`  and then displays it.                  




      :param `location`: The address of the document. See the :ref:`FileSystem Overview <filesystem overview>`  for details on the address format and :ref:`wx.FileSystem`  for a description of how the file is opened.  
      :type `location`: string






      :rtype: `bool`



                  



      :returns: 

         ``False`` if an error occurred, ``True`` otherwise  







      .. seealso:: :meth:`LoadFile`     








   .. method:: OnCellClicked(self, cell, x, y, event)

      This method is called when a mouse button is clicked inside :ref:`wx.html.HtmlWindow`.                  

      The default behaviour is to emit a :ref:`wx.html.HtmlCellEvent`  and, if the event was not processed or skipped, call :meth:`OnLinkClicked`   if the cell contains an hypertext link. 

      Overloading this method is deprecated; intercept the event instead. 




      :param `cell`: The cell inside which the mouse was clicked, always a simple (i.e. non-container) cell   
      :type `cell`: wx.html.HtmlCell
      :param `x`: The logical x coordinate of the click point   
      :type `x`: int
      :param `y`: The logical y coordinate of the click point   
      :type `y`: int
      :param `event`: The mouse event containing other information about the click  
      :type `event`: wx.MouseEvent












      :rtype: `bool`



                  



      :returns: 

         ``True`` if a link was clicked, ``False`` otherwise.   








   .. method:: OnCellMouseHover(self, cell, x, y)

      This method is called when a mouse moves over an HTML cell.                  

      Default behaviour is to emit a :ref:`wx.html.HtmlCellEvent`. 

      Overloading this method is deprecated; intercept the event instead. 




      :param `cell`: The cell inside which the mouse is currently, always a simple (i.e. non-container) cell   
      :type `cell`: wx.html.HtmlCell
      :param `x`: The logical x coordinate of the click point   
      :type `x`: int
      :param `y`: The logical y coordinate of the click point   
      :type `y`: int








                  





   .. method:: OnLinkClicked(self, link)

      Called when user clicks on hypertext link.                  

      Default behaviour is to emit a :ref:`wx.html.HtmlLinkEvent`  and, if the event was not processed or skipped, call :meth:`LoadPage`   and do nothing else. 

      Overloading this method is deprecated; intercept the event instead. 

      Also see :ref:`wx.html.HtmlLinkInfo`.                  


      :param `link`: 
      :type `link`: wx.html.HtmlLinkInfo







   .. method:: OnOpeningURL(self, type, url)

      Called when an URL is being opened (either when the user clicks on a link or an image is loaded).                  

      The URL will be opened only if :meth:`OnOpeningURL`   returns  ``HTML_OPEN`` . This method is called by  :meth:`wx.html.HtmlParser.OpenURL` . 

      You can override :meth:`OnOpeningURL`   to selectively block some URLs (e.g. for security reasons) or to redirect them elsewhere. Default behaviour is to always return  ``HTML_OPEN`` . 




      :param `type`: Indicates type of the resource. Is one of

       - ``wx.html.HTML_URL_PAGE``: Opening a HTML page. 
       - ``wx.html.HTML_URL_IMAGE``: Opening an image. 
       - ``wx.html.HTML_URL_OTHER``: Opening a resource that doesn't fall into any other category.  

 

      :type `type`: wx.html.HtmlURLType
      :param `url`: URL being opened.   
      :type `url`: string








      Pointer to :ref:`String`  variable that must be filled with an URL if :meth:`OnOpeningURL`   returns  ``HTML_REDIRECT`` . 



      :rtype: `tuple`





      - ``wx.html.HTML_OPEN``: Open the URL. 
      - ``wx.html.HTML_BLOCK``: Deny access to the URL, :meth:`wx.html.HtmlParser.OpenURL`   will return ``None``. 
      - ``wx.html.HTML_REDIRECT``: Don't open url, redirect to another URL. :meth:`OnOpeningURL`   must fill redirect with the new URL. :meth:`OnOpeningURL`   will be called again on returned URL.  


                  



      :returns: 

         ( :ref:`wx.html.HtmlOpeningStatus`, `redirectTo` ) 








   .. method:: OnSetTitle(self, title)

      Called on parsing <``TITLE``> tag.                  


      :param `title`: 
      :type `title`: string







   .. method:: ReadCustomization(self, cfg, path=EmptyString)

      This reads custom settings from Config.                  

      It uses the path 'path' if given, otherwise it saves info into currently selected path. The values are stored in sub-path  :ref:`wx.html.HtmlWindow`. Read values: all things set by  :meth:`SetFonts` , :meth:`SetBorders` . 




      :param `cfg`: Config from which you want to read the configuration.   
      :type `cfg`: wx.ConfigBase
      :param `path`: Optional path in config tree. If not given current path is used.   
      :type `path`: string






                  





   .. method:: ScrollToAnchor(self, anchor)




      :param `anchor`: 
      :type `anchor`: :class:`String`




      :rtype: `bool`








   .. method:: SelectAll(self)

      Selects all text in the window.                  

                 



      .. seealso:: :meth:`SelectLine` , :meth:`SelectWord`     








   .. method:: SelectLine(self, pos)

      Selects the line of text that `pos`  points at.                  

      Note that `pos`  is relative to the top of displayed page, not to window's origin, use :meth:`wx.Scrolled.CalcUnscrolledPosition`   to convert physical coordinate. 

                


      :param `pos`: 
      :type `pos`: wx.Point






      .. seealso:: :meth:`SelectAll` , :meth:`SelectWord`     








   .. method:: SelectWord(self, pos)

      Selects the word at position `pos`.                  

      Note that `pos`  is relative to the top of displayed page, not to window's origin, use :meth:`wx.Scrolled.CalcUnscrolledPosition`   to convert physical coordinate. 

                


      :param `pos`: 
      :type `pos`: wx.Point






      .. seealso:: :meth:`SelectAll` , :meth:`SelectLine`     








   .. method:: SelectionToText(self)

      Returns the current selection as plain text.                  

      Returns an empty string if no text is currently selected.                  

      :rtype: `string`








   .. method:: SetBorders(self, b)

      This function sets the space between border of window and HTML contents.                  

      See image: 

      .. figure:: _static/images/overviews/htmlwin_border.png
         :align: center


      |






      :param `b`: indentation from borders in pixels   
      :type `b`: int




                  





   .. method:: SetFonts(self, normal_face, fixed_face, sizes)

      This function sets font sizes and faces.                  

      See :meth:`wx.html.HtmlDCRenderer.SetFonts`   for detailed description. 

                


      :param `normal_face`: 
      :type `normal_face`: string
      :param `fixed_face`: 
      :type `fixed_face`: string
      :param `sizes`: 
      :type `sizes`: list of integers






      .. seealso:: SetSize()   








   .. method:: SetPage(self, source)

      Sets the source of a page and displays it, for example:                  

      ::

          htmlwin.SetPage("<html><body>Hello, world!</body></html>")



      If you want to load a document from some location use :meth:`LoadPage`   instead. 




      :param `source`: The HTML to be displayed.  
      :type `source`: string






      :rtype: `bool`



                  



      :returns: 

         ``False`` if an error occurred, ``True`` otherwise.   








   .. method:: SetRelatedFrame(self, frame, format)

      Sets the frame in which page title will be displayed.                  

      `format`  is the format of the frame title, e.g. "HtmlHelp : %s". It must contain exactly one s. This s is substituted with HTML page title.                  


      :param `frame`: 
      :type `frame`: wx.Frame
      :param `format`: 
      :type `format`: string







   .. method:: SetRelatedStatusBar(self, *args, **kw)



      |overload| Overloaded Implementations:

      **~~~**

      
      **SetRelatedStatusBar** `(self, index)`
      
      **After**  calling :meth:`SetRelatedFrame` , this sets statusbar slot where messages will be displayed.                  
      
      (Default is -1 = no messages.) 
      
      
      
      
      :param `index`: Statusbar slot number (0..n)   
      :type `index`: int
      
      
      
      
                        
      
      
      
      
      **~~~**

      
      **SetRelatedStatusBar** `(self, statusbar, index=0)`
      
      **Sets**  the associated statusbar where messages will be displayed.                  
      
      Call this instead of :meth:`SetRelatedFrame`   if you want statusbar updates only, no changing of the frame title. 
      
      
      
      
      :param `statusbar`: Statusbar pointer   
      :type `statusbar`: wx.StatusBar
      :param `index`: Statusbar slot number (0..n)  
      :type `index`: int
      
      
      
      
      
      
                        
      
      
      
      .. versionadded:: 2.9.0 
           
      
      
      
      
      
      
      
      **~~~**






   .. method:: SetStandardFonts(self, size=-1, normal_face=EmptyString, fixed_face=EmptyString)

      Sets default font sizes and/or default font size.                  

      See :meth:`wx.html.HtmlDCRenderer.SetStandardFonts`   for detailed description.                  


      :param `size`: 
      :type `size`: int
      :param `normal_face`: 
      :type `normal_face`: string
      :param `fixed_face`: 
      :type `fixed_face`: string






      .. seealso:: :meth:`SetFonts`     








   .. method:: ToText(self)

      Returns content of currently displayed page as plain text.                  

      :rtype: `string`








   .. method:: WriteCustomization(self, cfg, path=EmptyString)

      Saves custom settings into Config.                  

      It uses the path 'path' if given, otherwise it saves info into currently selected path. Regardless of whether the path is given or not, the function creates sub-path  :ref:`wx.html.HtmlWindow`. 

      Saved values: all things set by :meth:`SetFonts` , :meth:`SetBorders` . 




      :param `cfg`: Config to which you want to save the configuration.   
      :type `cfg`: wx.ConfigBase
      :param `path`: Optional path in config tree. If not given, the current path is used.   
      :type `path`: string






                  





   .. attribute:: InternalRepresentation

      See :meth:`~wx.html.HtmlWindow.GetInternalRepresentation`


   .. attribute:: OpenedAnchor

      See :meth:`~wx.html.HtmlWindow.GetOpenedAnchor`


   .. attribute:: OpenedPage

      See :meth:`~wx.html.HtmlWindow.GetOpenedPage`


   .. attribute:: OpenedPageTitle

      See :meth:`~wx.html.HtmlWindow.GetOpenedPageTitle`


   .. attribute:: Parser

      See :meth:`~wx.html.HtmlWindow.GetParser`


   .. attribute:: RelatedFrame

      See :meth:`~wx.html.HtmlWindow.GetRelatedFrame` and :meth:`~wx.html.HtmlWindow.SetRelatedFrame`

