{
DECLARE_DYNAMIC_CLASS(wxHtmlWindow)
- private:
- bool m_tmpMouseMoved;
- // a flag indicated if mouse moved
- // (if TRUE we will try to change cursor in last call to OnIdle)
- bool m_tmpCanDraw;
- // if FALSE contents of the window is not redrawn
- // (in order to avoid ugly bliking)
-
- static wxList m_Filters;
- // list of HTML filters
- static wxHtmlFilter *m_DefaultFilter;
- // this filter is used when no filter is able to read some file
-
- HtmlHistoryArray m_History;
- int m_HistoryPos;
- // browser history
- bool m_HistoryOn;
- // if this FLAG is false, items are not added to history
-
public:
wxHtmlWindow() : wxScrolledWindow() {};
wxHtmlWindow(wxWindow *parent, wxWindowID id = -1,
virtual wxHtmlFilter *GetDefaultFilter() {return new wxHtmlFilterPlainText;}
// returns new filter (will be stored into m_DefaultFilter variable)
+
protected:
wxHtmlContainerCell *m_Cell;
// This is pointer to the first cell in parsed data.
int m_Style;
+ private:
+ bool m_tmpMouseMoved;
+ // a flag indicated if mouse moved
+ // (if TRUE we will try to change cursor in last call to OnIdle)
+ wxString m_tmpLastLink;
+ // contains last link name
+ bool m_tmpCanDraw;
+ // if FALSE contents of the window is not redrawn
+ // (in order to avoid ugly bliking)
+
+ static wxList m_Filters;
+ // list of HTML filters
+ static wxHtmlFilter *m_DefaultFilter;
+ // this filter is used when no filter is able to read some file
+
+ HtmlHistoryArray m_History;
+ int m_HistoryPos;
+ // browser history
+ bool m_HistoryOn;
+ // if this FLAG is false, items are not added to history
+
DECLARE_EVENT_TABLE()
};
long style, const wxString& name) : wxScrolledWindow(parent, id, pos, size, wxVSCROLL, name)
{
m_tmpMouseMoved = FALSE;
+ m_tmpLastLink = wxEmptyString;
m_tmpCanDraw = TRUE;
m_FS = new wxFileSystem();
m_RelatedStatusBar = -1;
{
if (m_DefaultFilter) delete m_DefaultFilter;
m_DefaultFilter = NULL;
- wxNode* node = m_Filters.GetFirst();
m_Filters.DeleteContents(TRUE);
m_Filters.Clear();
ScreenToClient(&x, &y);
lnk = m_Cell -> GetLink(sx + x, sy + y);
- if (lnk == wxEmptyString) {
- SetCursor(cur_arrow);
- if (m_RelatedStatusBar != -1) m_RelatedFrame -> SetStatusText(wxEmptyString, m_RelatedStatusBar);
- }
- else {
- SetCursor(cur_hand);
- if (m_RelatedStatusBar != -1) m_RelatedFrame -> SetStatusText(lnk, m_RelatedStatusBar);
+ if (lnk != m_tmpLastLink) {
+ if (lnk == wxEmptyString) {
+ SetCursor(cur_arrow);
+ if (m_RelatedStatusBar != -1) m_RelatedFrame -> SetStatusText(wxEmptyString, m_RelatedStatusBar);
+ }
+ else {
+ SetCursor(cur_hand);
+ if (m_RelatedStatusBar != -1) m_RelatedFrame -> SetStatusText(lnk, m_RelatedStatusBar);
+ }
+ m_tmpLastLink = lnk;
}
m_tmpMouseMoved = FALSE;
}