# wxHtmlWindow

###
Module

wxHtmlWindow

###
Module Summary

Functions for wxHtmlWindow class

###
Description

wxHtmlWindow 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 setPage/2 with raw HTML, loadPage/2 with a wxFileSystem (not implemented in wx) location or loadFile/2 with a filename.

Note: If you want complete HTML/CSS support as well as a Javascript engine, consider using wxWebView instead.

wxHtmlWindow uses the wxImage class for displaying images, so you need to initialize the handlers for any image formats you use before loading a page. See ?wxInitAllImageHandlers and wxImage::AddHandler (not implemented in wx).

Styles

This class supports the following styles:

See: wxHtmlLinkEvent, wxHtmlCellEvent (not implemented in wx)

This class is derived (and can use functions) from: wxScrolledWindow wxPanel wxWindow wxEvtHandler

wxWidgets docs: wxHtmlWindow

###
Events

Event types emitted from this class: html_cell_clicked, html_cell_hover, command_html_link_clicked

###
Data Types

####
wxHtmlWindow() = wx:wx_object()

###
Exports

####
new() -> wxHtmlWindow()

Default ctor.

####
new(Parent) -> wxHtmlWindow()

### Types

Parent = wxWindow:wxWindow()

####
new(Parent, Options :: [Option]) -> wxHtmlWindow()

### Types

Parent = wxWindow:wxWindow()
Option =
{id, integer()} |
{pos, {X :: integer(), Y :: integer()}} |
{size, {W :: integer(), H :: integer()}} |
{style, integer()}

Constructor.

The parameters are the same as wxScrolled::wxScrolled() (not implemented in wx) constructor.

####
appendToPage(This, Source) -> boolean()

### Types

This = wxHtmlWindow()
Source = unicode:chardata()

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

Return: false if an error occurred, true otherwise.

####
getOpenedAnchor(This) -> unicode:charlist()

### Types

This = wxHtmlWindow()

Returns anchor within currently opened page (see getOpenedPage/1).

If no page is opened or if the displayed page wasn't produced by call to loadPage/2, empty string is returned.

####
getOpenedPage(This) -> unicode:charlist()

### Types

This = wxHtmlWindow()

Returns full location of the opened page.

If no page is opened or if the displayed page wasn't produced by call to loadPage/2, empty string is returned.

####
getOpenedPageTitle(This) -> unicode:charlist()

### Types

This = wxHtmlWindow()

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

####
getRelatedFrame(This) -> wxFrame:wxFrame()

### Types

This = wxHtmlWindow()

Returns the related frame.

####
historyBack(This) -> boolean()

### Types

This = wxHtmlWindow()

Moves back to the previous page.

Only pages displayed using loadPage/2 are stored in history list.

####
historyCanBack(This) -> boolean()

### Types

This = wxHtmlWindow()

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

historyBack/1 won't fail.

####
historyCanForward(This) -> boolean()

### Types

This = wxHtmlWindow()

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

historyForward/1 won't fail.

####
historyClear(This) -> ok

### Types

This = wxHtmlWindow()

Clears history.

####
historyForward(This) -> boolean()

### Types

This = wxHtmlWindow()

Moves to next page in history.

Only pages displayed using loadPage/2 are stored in history list.

####
loadFile(This, Filename) -> boolean()

### Types

This = wxHtmlWindow()
Filename = unicode:chardata()

Loads an HTML page from a file and displays it.

Return: false if an error occurred, true otherwise

See: loadPage/2

####
loadPage(This, Location) -> boolean()

### Types

This = wxHtmlWindow()
Location = unicode:chardata()

Unlike setPage/2 this function first loads the HTML page from location and then displays it.

Return: false if an error occurred, true otherwise

See: loadFile/2

####
selectAll(This) -> ok

### Types

This = wxHtmlWindow()

Selects all text in the window.

See: selectLine/2, selectWord/2

####
selectionToText(This) -> unicode:charlist()

### Types

This = wxHtmlWindow()

Returns the current selection as plain text.

Returns an empty string if no text is currently selected.

####
selectLine(This, Pos) -> ok

### Types

This = wxHtmlWindow()
Pos = {X :: integer(), Y :: integer()}

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 wxScrolledWindow:calcUnscrolledPosition/3 to convert physical coordinate.

See: selectAll/1, selectWord/2

####
selectWord(This, Pos) -> ok

### Types

This = wxHtmlWindow()
Pos = {X :: integer(), Y :: integer()}

Selects the word at position pos.

Note that pos is relative to the top of displayed page, not to window's origin, use wxScrolledWindow:calcUnscrolledPosition/3 to convert physical coordinate.

See: selectAll/1, selectLine/2

####
setBorders(This, B) -> ok

### Types

This = wxHtmlWindow()
B = integer()

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

See image:

####
setFonts(This, Normal_face, Fixed_face) -> ok

### Types

This = wxHtmlWindow()
Normal_face = Fixed_face = unicode:chardata()

####
setFonts(This, Normal_face, Fixed_face, Options :: [Option]) -> ok

### Types

This = wxHtmlWindow()
Normal_face = Fixed_face = unicode:chardata()
Option = {sizes, [integer()]}

This function sets font sizes and faces.

See wxHtmlDCRenderer::SetFonts (not implemented in wx) for detailed description.

See: SetSize()

####
setPage(This, Source) -> boolean()

### Types

This = wxHtmlWindow()
Source = unicode:chardata()

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

If you want to load a document from some location use loadPage/2 instead.

Return: false if an error occurred, true otherwise.

####
setRelatedFrame(This, Frame, Format) -> ok

### Types

This = wxHtmlWindow()
Frame = wxFrame:wxFrame()
Format = unicode:chardata()

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.

####
setRelatedStatusBar(This, Statusbar) -> ok

####
setRelatedStatusBar(This, Index) -> ok

### Types

This = wxHtmlWindow()
Index = integer()

After calling setRelatedFrame/3, this sets statusbar slot where messages will be displayed.

(Default is -1 = no messages.)

####
setRelatedStatusBar(This, Statusbar, Options :: [Option]) -> ok

### Types

This = wxHtmlWindow()
Statusbar = wxStatusBar:wxStatusBar()
Option = {index, integer()}

Sets the associated statusbar where messages will be displayed.

Call this instead of setRelatedFrame/3 if you want statusbar updates only, no changing of the frame title.

Since: 2.9.0

####
toText(This) -> unicode:charlist()

### Types

This = wxHtmlWindow()

Returns content of currently displayed page as plain text.

####
destroy(This :: wxHtmlWindow()) -> ok

Destroys the object.