#include "wx/filesys.h"
#include "wx/html/htmlfilt.h"
-class WXDLLEXPORT wxHtmlProcessor;
-
+class wxHtmlProcessor;
class wxHtmlWinModule;
class wxHtmlHistoryArray;
class wxHtmlProcessorList;
friend class wxHtmlWinModule;
public:
- wxHtmlWindow() : wxScrolledWindow() {};
+ wxHtmlWindow() { Init(); }
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"))
+ {
+ Init();
+ Create(parent, id, pos, size, style, name);
+ }
~wxHtmlWindow();
+ bool Create(wxWindow *parent, wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxHW_SCROLLBAR_AUTO,
+ const wxString& name = wxT("htmlWindow"));
+
// Set HTML page and display it. !! source is HTML document itself,
// it is NOT address/filename of HTML document. If you want to
// 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
// 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;}
// 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 AddSharedProcessor(wxHtmlProcessor *processor);
+ static void AddGlobalProcessor(wxHtmlProcessor *processor);
+
+ // what would we do with it?
+ virtual bool AcceptsFocusFromKeyboard() const { return FALSE; }
protected:
+ void Init();
+
// Scrolls to anchor of this name. (Anchor is #news
// or #features etc. it is part of address sometimes:
// http://www.ms.mff.cuni.cz/~vsla8348/wxhtml/index.html#news)
// 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();
bool m_tmpMouseMoved;
// contains last link name
wxHtmlLinkInfo *m_tmpLastLink;
+ // contains the last (terminal) cell which contained the mouse
+ wxHtmlCell *m_tmpLastCell;
// if >0 contents of the window is not redrawn
// (in order to avoid ugly blinking)
int m_tmpCanDrawLocks;
int m_HistoryPos;
// if this FLAG is false, items are not added to history
bool m_HistoryOn;
-
+
// html processors array:
wxHtmlProcessorList *m_Processors;
- static wxHtmlProcessorList *m_SharedProcessors;
+ static wxHtmlProcessorList *m_GlobalProcessors;
DECLARE_EVENT_TABLE()
};
#endif
#endif // _WX_HTMLWIN_H_
+