X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9749497156909657d17ef972857caaca4bd09da2..10eb1f1eac4f334f4acaae8199178131eeba5f74:/include/wx/html/htmlwin.h diff --git a/include/wx/html/htmlwin.h b/include/wx/html/htmlwin.h index 75585561b6..5ef878c088 100644 --- a/include/wx/html/htmlwin.h +++ b/include/wx/html/htmlwin.h @@ -27,6 +27,10 @@ #include "wx/filesys.h" #include "wx/html/htmlfilt.h" +class wxHtmlProcessor; +class wxHtmlWinModule; +class wxHtmlHistoryArray; +class wxHtmlProcessorList; //-------------------------------------------------------------------------------- // wxHtmlWindow @@ -39,40 +43,18 @@ // SetPage(text) or LoadPage(filename). //-------------------------------------------------------------------------------- - -// item of history list -class WXDLLEXPORT HtmlHistoryItem : public wxObject -{ -public: - HtmlHistoryItem(const wxString& p, const wxString& a) {m_Page = p, m_Anchor = a, m_Pos = 0;} - int GetPos() const {return m_Pos;} - void SetPos(int p) {m_Pos = p;} - const wxString& GetPage() const {return m_Page;} - const wxString& GetAnchor() const {return m_Anchor;} - -private: - wxString m_Page; - wxString m_Anchor; - int m_Pos; -}; - - -WX_DECLARE_EXPORTED_OBJARRAY(HtmlHistoryItem, HtmlHistoryArray); - -class wxHtmlWinModule; - class WXDLLEXPORT wxHtmlWindow : public wxScrolledWindow { DECLARE_DYNAMIC_CLASS(wxHtmlWindow) friend class wxHtmlWinModule; public: - wxHtmlWindow() : wxScrolledWindow() {}; + wxHtmlWindow() : wxScrolledWindow() {} wxHtmlWindow(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, + const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxHW_SCROLLBAR_AUTO, - const wxString& name = "htmlWindow"); + const wxString& name = wxT("htmlWindow")); ~wxHtmlWindow(); // Set HTML page and display it. !! source is HTML document itself, @@ -80,6 +62,9 @@ public: // specify document location, use LoadPage() istead // Return value : FALSE if an error occured, TRUE otherwise bool SetPage(const wxString& source); + + // Append to current page + bool AppendToPage(const wxString& source); // Load HTML page from given location. Location can be either // a) /usr/wxGTK2/docs/html/wx.htm @@ -90,7 +75,7 @@ public: // After the page is loaded, the method calls SetPage() to display it. // Note : you can also use path relative to previously loaded page // Return value : same as SetPage - bool LoadPage(const wxString& location); + virtual bool LoadPage(const wxString& location); // Returns full location of opened page wxString GetOpenedPage() const {return m_OpenedPage;} @@ -141,13 +126,32 @@ public: // Adds input filter static void AddFilter(wxHtmlFilter *filter); - // Called when users clicked on hypertext link. Default behavior is to + // Called when the mouse hovers over a cell: (x, y) are logical coords + // + // Default behaviour is to do nothing at all + virtual void OnCellMouseHover(wxHtmlCell *cell, wxCoord x, wxCoord y); + + // Called when user clicks on a cell. Default behavior is to call + // OnLinkClicked() if this cell corresponds to a hypertext link + virtual void OnCellClicked(wxHtmlCell *cell, + wxCoord x, wxCoord y, + const wxMouseEvent& event); + + // Called when user clicked on hypertext link. Default behavior is to // call LoadPage(loc) virtual void OnLinkClicked(const wxHtmlLinkInfo& link); // Returns a pointer to the parser. wxHtmlWinParser *GetParser() const { return m_Parser; } + // Adds HTML processor to this instance of wxHtmlWindow: + void AddProcessor(wxHtmlProcessor *processor); + // Adds HTML processor to wxHtmlWindow class as whole: + static void AddGlobalProcessor(wxHtmlProcessor *processor); + + // what would we do with it? + virtual bool AcceptsFocusFromKeyboard() const { return FALSE; } + protected: // Scrolls to anchor of this name. (Anchor is #news // or #features etc. it is part of address sometimes: @@ -155,7 +159,7 @@ protected: // Return value : TRUE if anchor exists, FALSE otherwise bool ScrollToAnchor(const wxString& anchor); - // Prepares layout (= fill m_PosX, m_PosY for fragments) based on + // Prepares layout (= fill m_PosX, m_PosY for fragments) based on // actual size of window. This method also setup scrollbars void CreateLayout(); @@ -167,63 +171,67 @@ protected: // Returns new filter (will be stored into m_DefaultFilter variable) virtual wxHtmlFilter *GetDefaultFilter() {return new wxHtmlFilterPlainText;} + // cleans static variables static void CleanUpStatics(); - // cleans static variables - protected: + // This is pointer to the first cell in parsed data. + // (Note: the first cell is usually top one = all other cells are sub-cells of this one) wxHtmlContainerCell *m_Cell; - // This is pointer to the first cell in parsed data. - // (Note: the first cell is usually top one = all other cells are sub-cells of this one) + // parser which is used to parse HTML input. + // Each wxHtmlWindow has it's own parser because sharing one global + // parser would be problematic (because of reentrancy) wxHtmlWinParser *m_Parser; - // parser which is used to parse HTML input. - // Each wxHtmlWindow has it's own parser because sharing one global - // parser would be problematic (because of reentrancy) + // contains name of actualy opened page or empty string if no page opened wxString m_OpenedPage; - // contains name of actualy opened page or empty string if no page opened + // contains name of current anchor within m_OpenedPage wxString m_OpenedAnchor; - // contains name of current anchor within m_OpenedPage + // contains title of actualy opened page or empty string if no