| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        html/htmlwin.h
 
- // Purpose:     interface of wxHtmlWindow
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- // wxHtmlWindow flags:
 
- #define wxHW_SCROLLBAR_NEVER    0x0002
 
- #define wxHW_SCROLLBAR_AUTO     0x0004
 
- #define wxHW_NO_SELECTION       0x0008
 
- #define wxHW_DEFAULT_STYLE      wxHW_SCROLLBAR_AUTO
 
- /// Enum for wxHtmlWindow::OnOpeningURL and wxHtmlWindowInterface::OnOpeningURL
 
- enum wxHtmlOpeningStatus
 
- {
 
-     /// Open the requested URL
 
-     wxHTML_OPEN,
 
-     /// Do not open the URL
 
-     wxHTML_BLOCK,
 
-     /// Redirect to another URL (returned from OnOpeningURL)
 
-     wxHTML_REDIRECT
 
- };
 
- /**
 
-    @class wxHtmlWindowInterface
 
-    
 
-    Abstract interface to a HTML rendering window (such as wxHtmlWindow or
 
-    wxHtmlListBox) that is passed to wxHtmlWinParser. It encapsulates all
 
-    communication from the parser to the window.
 
-  */
 
- class wxHtmlWindowInterface
 
- {
 
- public:
 
-     /// Ctor
 
-     wxHtmlWindowInterface();
 
-     virtual ~wxHtmlWindowInterface();
 
-     /**
 
-         Called by the parser to set window's title to given text.
 
-      */
 
-     virtual void SetHTMLWindowTitle(const wxString& title) = 0;
 
-     /**
 
-         Called when a link is clicked.
 
-         @param link information about the clicked link
 
-      */
 
-     virtual void OnHTMLLinkClicked(const wxHtmlLinkInfo& link) = 0;
 
-     /**
 
-         Called when the parser needs to open another URL (e.g. an image).
 
-         @param type     Type of the URL request (e.g. image)
 
-         @param url      URL the parser wants to open
 
-         @param redirect If the return value is wxHTML_REDIRECT, then the
 
-                         URL to redirect to will be stored in this variable
 
-                         (the pointer must never be NULL)
 
-         @return indicator of how to treat the request
 
-      */
 
-     virtual wxHtmlOpeningStatus OnHTMLOpeningURL(wxHtmlURLType type,
 
-                                                  const wxString& url,
 
-                                                  wxString *redirect) const = 0;
 
-     /**
 
-         Converts coordinates @a pos relative to given @a cell to
 
-         physical coordinates in the window.
 
-      */
 
-     virtual wxPoint HTMLCoordsToWindow(wxHtmlCell *cell,
 
-                                        const wxPoint& pos) const = 0;
 
-     /// Returns the window used for rendering (may be NULL).
 
-     virtual wxWindow* GetHTMLWindow() = 0;
 
-     /// Returns background colour to use by default.
 
-     virtual wxColour GetHTMLBackgroundColour() const = 0;
 
-     /// Sets window's background to colour @a clr.
 
-     virtual void SetHTMLBackgroundColour(const wxColour& clr) = 0;
 
-     /// Sets window's background to given bitmap.
 
-     virtual void SetHTMLBackgroundImage(const wxBitmap& bmpBg) = 0;
 
-     /// Sets status bar text.
 
-     virtual void SetHTMLStatusText(const wxString& text) = 0;
 
-     /// Type of mouse cursor
 
-     enum HTMLCursor
 
-     {
 
-         /// Standard mouse cursor (typically an arrow)
 
-         HTMLCursor_Default,
 
-         /// Cursor shown over links
 
-         HTMLCursor_Link,
 
-         /// Cursor shown over selectable text
 
-         HTMLCursor_Text
 
-     };
 
-     /**
 
-         Returns mouse cursor of given @a type.
 
-      */
 
-     virtual wxCursor GetHTMLCursor(wxHtmlWindowInterface::HTMLCursor type) const = 0;
 
- };
 
- /**
 
-     @class wxHtmlWindow
 
-     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() with raw HTML,
 
-     LoadPage() with a wxFileSystem location or LoadFile() with a filename.
 
-     @note
 
-     If you want complete HTML/CSS support as well as a Javascript engine, see instead
 
-     wxWebView.
 
-     @note
 
-     wxHtmlWindow uses the wxImage class for displaying images, as such you need to
 
-     initialize the handlers for any image formats you use before loading a page.
 
-     See ::wxInitAllImageHandlers and wxImage::AddHandler.
 
-     @beginStyleTable
 
-     @style{wxHW_SCROLLBAR_NEVER}
 
-            Never display scrollbars, not even when the page is larger than the
 
-            window.
 
-     @style{wxHW_SCROLLBAR_AUTO}
 
-            Display scrollbars only if page's size exceeds window's size.
 
-     @style{wxHW_NO_SELECTION}
 
-            Don't allow the user to select text.
 
-     @endStyleTable
 
-     @beginEventEmissionTable{wxHtmlCellEvent, wxHtmlLinkEvent}
 
-     @event{EVT_HTML_CELL_CLICKED(id, func)}
 
-         A wxHtmlCell was clicked.
 
-     @event{EVT_HTML_CELL_HOVER(id, func)}
 
-         The mouse passed over a wxHtmlCell.
 
-     @event{EVT_HTML_LINK_CLICKED(id, func)}
 
-         A wxHtmlCell which contains an hyperlink was clicked.
 
-     @endEventTable
 
-     @library{wxhtml}
 
-     @category{html}
 
-     @see wxHtmlLinkEvent, wxHtmlCellEvent
 
- */
 
- class wxHtmlWindow : public wxScrolledWindow, public wxHtmlWindowInterface
 
- {
 
- public:
 
-     /**
 
-         Default ctor.
 
-     */
 
-     wxHtmlWindow();
 
-     /**
 
-         Constructor.
 
-         The parameters are the same as wxScrolled::wxScrolled() constructor.
 
-     */
 
-     wxHtmlWindow(wxWindow *parent, wxWindowID id = wxID_ANY,
 
-                  const wxPoint& pos = wxDefaultPosition,
 
-                  const wxSize& size = wxDefaultSize,
 
-                  long style = wxHW_DEFAULT_STYLE,
 
-                  const wxString& name = "htmlWindow");
 
-     /**
 
-         Adds @ref overview_html_filters "input filter" to the static list of available
 
-         filters. These filters are present by default:
 
-         - @c text/html MIME type
 
-         - @c image/* MIME types
 
-         - Plain Text filter (this filter is used if no other filter matches)
 
-     */
 
-     static void AddFilter(wxHtmlFilter* filter);
 
-     /**
 
-         Appends HTML fragment to currently displayed text and refreshes the window.
 
-         @param source
 
-             HTML code fragment
 
-         @return @false if an error occurred, @true otherwise.
 
-     */
 
-     bool AppendToPage(const wxString& source);
 
-     /**
 
-         Returns pointer to the top-level container.
 
-         @see @ref overview_html_cells, @ref overview_printing
 
-     */
 
-     wxHtmlContainerCell* GetInternalRepresentation() const;
 
-     /**
 
-         Returns anchor within currently opened page (see wxHtmlWindow::GetOpenedPage).
 
-         If no page is opened or if the displayed page wasn't produced by call to
 
-         LoadPage(), empty string is returned.
 
-     */
 
-     wxString GetOpenedAnchor() const;
 
-     /**
 
-         Returns full location of the opened page.
 
-         If no page is opened or if the displayed page wasn't produced by call to
 
-         LoadPage(), empty string is returned.
 
-     */
 
-     wxString GetOpenedPage() const;
 
-     /**
 
-         Returns title of the opened page or wxEmptyString if the current page does not
 
-         contain \<TITLE\> tag.
 
-     */
 
-     wxString GetOpenedPageTitle() const;
 
-     /**
 
-         Returns the related frame.
 
-     */
 
-     wxFrame* GetRelatedFrame() const;
 
-     /**
 
-         Moves back to the previous page. Only pages displayed using LoadPage()
 
-         are stored in history list.
 
-     */
 
-     bool HistoryBack();
 
-     /**
 
-         Returns @true if it is possible to go back in the history
 
-         i.e. HistoryBack() won't fail.
 
-     */
 
-     bool HistoryCanBack();
 
-     /**
 
-         Returns @true if it is possible to go forward in the history
 
-         i.e. HistoryForward() won't fail.
 
-     */
 
-     bool HistoryCanForward();
 
-     /**
 
-         Clears history.
 
-     */
 
-     void HistoryClear();
 
-     /**
 
-         Moves to next page in history. Only pages displayed using LoadPage()
 
-         are stored in history list.
 
-     */
 
-     bool HistoryForward();
 
-     /**
 
-         Loads an HTML page from a file and displays it.
 
-         @return @false if an error occurred, @true otherwise
 
-         @see LoadPage()
 
-     */
 
-     bool LoadFile(const wxFileName& filename);
 
-     /**
 
-         Unlike SetPage() this function first loads the HTML page from @a location
 
-         and then displays it.
 
-         @param location
 
-             The address of the document.
 
-             See the @ref overview_fs for details on the address format
 
-             and wxFileSystem for a description of how the file is opened.
 
-         @return @false if an error occurred, @true otherwise
 
-         @see LoadFile()
 
-     */
 
-     virtual bool LoadPage(const wxString& location);
 
-     /**
 
-         Called when user clicks on hypertext link.
 
-         Default behaviour is to emit a wxHtmlLinkEvent and, if the event was not
 
-         processed or skipped, call LoadPage() and do nothing else.
 
-         Overloading this method is deprecated; intercept the event instead.
 
-         Also see wxHtmlLinkInfo.
 
-     */
 
-     virtual void OnLinkClicked(const wxHtmlLinkInfo& link);
 
-     /**
 
-         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 OnOpeningURL() returns
 
-         @c wxHTML_OPEN. This method is called by wxHtmlParser::OpenURL.
 
-         You can override OnOpeningURL() to selectively block some URLs
 
-         (e.g. for security reasons) or to redirect them elsewhere.
 
-         Default behaviour is to always return @c wxHTML_OPEN.
 
-         @param type
 
-             Indicates type of the resource. Is one of
 
-             - wxHTML_URL_PAGE: Opening a HTML page.
 
-             - wxHTML_URL_IMAGE: Opening an image.
 
-             - wxHTML_URL_OTHER: Opening a resource that doesn't fall into
 
-                                 any other category.
 
-         @param url
 
-             URL being opened.
 
-         @param redirect
 
-             Pointer to wxString variable that must be filled with an
 
-             URL if OnOpeningURL() returns @c wxHTML_REDIRECT.
 
-         The return value is:
 
-         - wxHTML_OPEN: Open the URL.
 
-         - wxHTML_BLOCK: Deny access to the URL, wxHtmlParser::OpenURL will return @NULL.
 
-         - wxHTML_REDIRECT: Don't open url, redirect to another URL.
 
-           OnOpeningURL() must fill *redirect with the new URL.
 
-           OnOpeningURL() will be called again on returned URL.
 
-     */
 
-     virtual wxHtmlOpeningStatus OnOpeningURL(wxHtmlURLType type,
 
-                                              const wxString& url,
 
-                                              wxString* redirect) const;
 
-     /**
 
-         Called on parsing \<TITLE\> tag.
 
-     */
 
-     virtual void OnSetTitle(const wxString& title);
 
-     /**
 
-         This reads custom settings from wxConfig. It uses the path 'path'
 
-         if given, otherwise it saves info into currently selected path.
 
-         The values are stored in sub-path @c wxHtmlWindow.
 
-         Read values: all things set by SetFonts(), SetBorders().
 
-         @param cfg
 
-             wxConfig from which you want to read the configuration.
 
-         @param path
 
-             Optional path in config tree. If not given current path is used.
 
-     */
 
-     virtual void ReadCustomization(wxConfigBase* cfg,
 
-                                    wxString path = wxEmptyString);
 
-     /**
 
-         Selects all text in the window.
 
-         @see SelectLine(), SelectWord()
 
-     */
 
-     void SelectAll();
 
-     /**
 
-         Selects the line of text that @a pos points at. Note that @e pos
 
-         is relative to the top of displayed page, not to window's origin, use
 
-         wxScrolled::CalcUnscrolledPosition()
 
-         to convert physical coordinate.
 
-         @see SelectAll(), SelectWord()
 
-     */
 
-     void SelectLine(const wxPoint& pos);
 
-     /**
 
-         Selects the word at position @a pos.
 
-         Note that @a pos is relative to the top of displayed page, not to window's
 
-         origin, use wxScrolled::CalcUnscrolledPosition() to convert physical coordinate.
 
-         @see SelectAll(), SelectLine()
 
-     */
 
-     void SelectWord(const wxPoint& pos);
 
-     /**
 
-         Returns the current selection as plain text.
 
-         Returns an empty string if no text is currently selected.
 
-     */
 
-     wxString SelectionToText();
 
-     /**
 
-         This function sets the space between border of window and HTML contents.
 
-         See image:
 
-         @image html htmlwin_border.png
 
-         @param b
 
-             indentation from borders in pixels
 
-     */
 
-     void SetBorders(int b);
 
-     /**
 
-         This function sets font sizes and faces. See wxHtmlDCRenderer::SetFonts
 
-         for detailed description.
 
-         @see SetSize()
 
-     */
 
-     void SetFonts(const wxString& normal_face, const wxString& fixed_face,
 
-                   const int* sizes = NULL);
 
-     /**
 
-         Sets default font sizes and/or default font size. 
 
-         See wxHtmlDCRenderer::SetStandardFonts for detailed description.
 
-         @see SetFonts()
 
-     */
 
-     void SetStandardFonts(int size = -1,
 
-                           const wxString& normal_face = wxEmptyString,
 
-                           const wxString& fixed_face = wxEmptyString);
 
-     /**
 
-         Sets the source of a page and displays it, for example:
 
-         @code
 
-         htmlwin -> SetPage("<html><body>Hello, world!</body></html>");
 
-         @endcode
 
-         If you want to load a document from some location use LoadPage() instead.
 
-         @param source
 
-             The HTML to be displayed.
 
-         @return @false if an error occurred, @true otherwise.
 
-     */
 
-     virtual bool SetPage(const wxString& source);
 
-     /**
 
-         Sets the frame in which page title will be displayed.
 
-         @a 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.
 
-     */
 
-     void SetRelatedFrame(wxFrame* frame, const wxString& format);
 
-     /**
 
-         @b After calling SetRelatedFrame(), this sets statusbar slot where messages
 
-         will be displayed. (Default is -1 = no messages.)
 
-         @param index
 
-             Statusbar slot number (0..n)
 
-     */
 
-     void SetRelatedStatusBar(int index);
 
-     /**
 
-         @b Sets the associated statusbar where messages will be displayed.
 
-         Call this instead of SetRelatedFrame() if you want statusbar updates only,
 
-         no changing of the frame title.
 
-         @param statusbar
 
-             Statusbar pointer
 
-         @param index
 
-             Statusbar slot number (0..n)
 
-         @since 2.9.0
 
-     */
 
-     void SetRelatedStatusBar(wxStatusBar* statusbar, int index = 0);
 
-     /**
 
-         Returns content of currently displayed page as plain text.
 
-     */
 
-     wxString ToText();
 
-     /**
 
-         Saves custom settings into wxConfig.
 
-         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 @c wxHtmlWindow.
 
-         Saved values: all things set by SetFonts(), SetBorders().
 
-         @param cfg
 
-             wxConfig to which you want to save the configuration.
 
-         @param path
 
-             Optional path in config tree. If not given, the current path is used.
 
-     */
 
-     virtual void WriteCustomization(wxConfigBase* cfg,
 
-                                     wxString path = wxEmptyString);
 
-     
 
- protected:
 
-     /**
 
-         This method is called when a mouse button is clicked inside wxHtmlWindow.
 
-         The default behaviour is to emit a wxHtmlCellEvent and, if the event was
 
-         not processed or skipped, call 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
 
-         @param x
 
-             The logical x coordinate of the click point
 
-         @param y
 
-             The logical y coordinate of the click point
 
-         @param event
 
-             The mouse event containing other information about the click
 
-         @return @true if a link was clicked, @false otherwise.
 
-     */
 
-     virtual bool OnCellClicked(wxHtmlCell* cell, wxCoord x, wxCoord y,
 
-                                const wxMouseEvent& event);
 
-     /**
 
-         This method is called when a mouse moves over an HTML cell.
 
-         Default behaviour is to emit a wxHtmlCellEvent.
 
-         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
 
-         @param x
 
-             The logical x coordinate of the click point
 
-         @param y
 
-             The logical y coordinate of the click point
 
-     */
 
-     virtual void OnCellMouseHover(wxHtmlCell* cell, wxCoord x, wxCoord y);
 
- };
 
- wxEventType wxEVT_HTML_CELL_CLICKED;
 
- wxEventType wxEVT_HTML_CELL_HOVER;
 
- wxEventType wxEVT_HTML_LINK_CLICKED;
 
- /**
 
-     @class wxHtmlLinkEvent
 
-     This event class is used for the events generated by wxHtmlWindow.
 
-     @beginEventTable{wxHtmlLinkEvent}
 
-     @event{EVT_HTML_LINK_CLICKED(id, func)}
 
-         User clicked on an hyperlink.
 
-     @endEventTable
 
-     @library{wxhtml}
 
-     @category{html}
 
- */
 
- class wxHtmlLinkEvent : public wxCommandEvent
 
- {
 
- public:
 
-     /**
 
-         The constructor is not normally used by the user code.
 
-     */
 
-     wxHtmlLinkEvent(int id, const wxHtmlLinkInfo& linkinfo);
 
-     /**
 
-         Returns the wxHtmlLinkInfo which contains info about the cell clicked
 
-         and the hyperlink it contains.
 
-     */
 
-     const wxHtmlLinkInfo& GetLinkInfo() const;
 
- };
 
- /**
 
-     @class wxHtmlCellEvent
 
-     This event class is used for the events generated by wxHtmlWindow.
 
-     @beginEventTable{wxHtmlCellEvent}
 
-     @event{EVT_HTML_CELL_HOVER(id, func)}
 
-         User moved the mouse over a wxHtmlCell.
 
-     @event{EVT_HTML_CELL_CLICKED(id, func)}
 
-         User clicked on a wxHtmlCell. When handling this event, remember to use
 
-         wxHtmlCell::SetLinkClicked(true) if the cell contains a link.
 
-     @endEventTable
 
-     @library{wxhtml}
 
-     @category{html}
 
- */
 
- class wxHtmlCellEvent : public wxCommandEvent
 
- {
 
- public:
 
-     /**
 
-         The constructor is not normally used by the user code.
 
-     */
 
-     wxHtmlCellEvent(wxEventType commandType, int id,
 
-                     wxHtmlCell* cell,
 
-                     const wxPoint& point,
 
-                     const wxMouseEvent& ev);
 
-     /**
 
-         Returns the wxHtmlCellEvent associated with the event.
 
-     */
 
-     wxHtmlCell* GetCell() const;
 
-     /**
 
-         Returns @true if SetLinkClicked(@true) has previously been called;
 
-         @false otherwise.
 
-     */
 
-     bool GetLinkClicked() const;
 
-     /**
 
-         Returns the wxPoint associated with the event.
 
-     */
 
-     wxPoint GetPoint() const;
 
-     /**
 
-         Call this function with @a linkclicked set to @true if the cell which has
 
-         been clicked contained a link or @false otherwise (which is the default).
 
-         With this function the event handler can return info to the wxHtmlWindow
 
-         which sent the event.
 
-     */
 
-     void SetLinkClicked(bool linkclicked);
 
- };
 
 
  |