#endif
#ifndef WXPRECOMP
-#include "wx/wx.h"
+ #include "wx/log.h"
+ #include "wx/intl.h"
+ #include "wx/dcclient.h"
+ #include "wx/frame.h"
#endif
#include "wx/html/htmlwin.h"
#include "wx/html/forcelnk.h"
#include "wx/html/htmlproc.h"
-#include "wx/log.h"
-#include "wx/arrimpl.cpp"
#include "wx/list.h"
+
+#include "wx/arrimpl.cpp"
#include "wx/listimpl.cpp"
//-----------------------------------------------------------------------------
nodeG = (m_GlobalProcessors) ? m_GlobalProcessors->GetFirst() : NULL;
// VS: there are two lists, global and local, both of them sorted by
- // priority. Since we have to go through _both_ lists with
+ // priority. Since we have to go through _both_ lists with
// decreasing priority, we "merge-sort" the lists on-line by
// processing that one of the two heads that has higher priority
// in every iteration
wxYield(); Refresh(FALSE);
m_tmpCanDrawLocks++;
- if (m_HistoryOn && (m_HistoryPos != -1))
+ if (m_HistoryOn && (m_HistoryPos != -1))
{
// store scroll position into history item:
int x, y;
- ViewStart(&x, &y);
+ GetViewStart(&x, &y);
(*m_History)[m_HistoryPos].SetPos(y);
}
- if (location[0] == wxT('#'))
+ if (location[0] == wxT('#'))
{
// local anchor:
wxString anch = location.Mid(1) /*1 to end*/;
}
else if (location.Find(wxT('#')) != wxNOT_FOUND &&
(m_FS->GetPath() + location.BeforeFirst(wxT('#'))) == m_OpenedPage)
- {
+ {
wxString anch = location.AfterFirst(wxT('#'));
m_tmpCanDrawLocks--;
rt_val = ScrollToAnchor(anch);
needs_refresh = TRUE;
// load&display it:
if (m_RelatedStatusBar != -1)
- {
+ {
m_RelatedFrame->SetStatusText(_("Connecting..."), m_RelatedStatusBar);
Refresh(FALSE);
}
f = m_FS->OpenFile(location);
if (f == NULL)
- {
- wxString err;
-
+ {
wxLogError(_("Unable to open requested HTML document: %s"), location.c_str());
m_tmpCanDrawLocks--;
}
else
- {
+ {
wxNode *node;
wxString src = wxEmptyString;
if (m_RelatedStatusBar != -1)
- {
+ {
wxString msg = _("Loading : ") + location;
m_RelatedFrame->SetStatusText(msg, m_RelatedStatusBar);
Refresh(FALSE);
node = m_Filters.GetFirst();
while (node)
- {
+ {
wxHtmlFilter *h = (wxHtmlFilter*) node->GetData();
if (h->CanRead(*f))
- {
+ {
src = h->ReadFile(*f);
break;
}
node = node->GetNext();
}
if (src == wxEmptyString)
- {
+ {
if (m_DefaultFilter == NULL) m_DefaultFilter = GetDefaultFilter();
src = m_DefaultFilter->ReadFile(*f);
}
rt_val = SetPage(src);
m_OpenedPage = f->GetLocation();
if (f->GetAnchor() != wxEmptyString)
- {
+ {
wxYield();
ScrollToAnchor(f->GetAnchor());
}
{
int c = m_History->GetCount() - (m_HistoryPos + 1);
- m_HistoryPos++;
- for (int i = 0; i < c; i++)
- m_History->Remove(m_HistoryPos);
- m_History->Add(new wxHtmlHistoryItem(m_OpenedPage, m_OpenedAnchor));
+ if (m_HistoryPos < 0 ||
+ (*m_History)[m_HistoryPos].GetPage() != m_OpenedPage ||
+ (*m_History)[m_HistoryPos].GetAnchor() != m_OpenedAnchor)
+ {
+ m_HistoryPos++;
+ for (int i = 0; i < c; i++)
+ m_History->RemoveAt(m_HistoryPos);
+ m_History->Add(new wxHtmlHistoryItem(m_OpenedPage, m_OpenedAnchor));
+ }
}
if (m_OpenedPageTitle == wxEmptyString)
GetClientSize(&ClientWidth, &ClientHeight);
m_Cell->Layout(ClientWidth);
if (ClientHeight < m_Cell->GetHeight() + GetCharHeight())
- {
+ {
SetScrollbars(
wxHTML_SCROLL_STEP, wxHTML_SCROLL_STEP,
m_Cell->GetWidth() / wxHTML_SCROLL_STEP,
/*cheat: top-level frag is always container*/);
}
else /* we fit into window, no need for scrollbars */
- {
+ {
SetScrollbars(wxHTML_SCROLL_STEP, 1, m_Cell->GetWidth() / wxHTML_SCROLL_STEP, 0); // disable...
GetClientSize(&ClientWidth, &ClientHeight);
m_Cell->Layout(ClientWidth); // ...and relayout
// store scroll position into history item:
int x, y;
- ViewStart(&x, &y);
+ GetViewStart(&x, &y);
(*m_History)[m_HistoryPos].SetPos(y);
// go to previous position:
m_GlobalProcessors->DeleteContents(TRUE);
}
wxHtmlProcessorList::Node *node;
-
+
for (node = m_GlobalProcessors->GetFirst(); node; node = node->GetNext())
{
if (processor->GetPriority() > node->GetData()->GetPriority())
#endif
#endif
dc.SetBackgroundMode(wxTRANSPARENT);
- ViewStart(&x, &y);
+ GetViewStart(&x, &y);
while (upd)
{
wxPoint pos;
wxString lnk;
- ViewStart(&sx, &sy); sx *= wxHTML_SCROLL_STEP; sy *= wxHTML_SCROLL_STEP;
+ GetViewStart(&sx, &sy); sx *= wxHTML_SCROLL_STEP; sy *= wxHTML_SCROLL_STEP;
pos = event.GetPosition();
if (m_Cell)
int x, y;
wxHtmlLinkInfo *lnk;
- ViewStart(&sx, &sy); sx *= wxHTML_SCROLL_STEP; sy *= wxHTML_SCROLL_STEP;
+ GetViewStart(&sx, &sy); sx *= wxHTML_SCROLL_STEP; sy *= wxHTML_SCROLL_STEP;
wxGetMousePosition(&x, &y);
ScreenToClient(&x, &y);
lnk = m_Cell->GetLink(sx + x, sy + y);
if (lnk != m_tmpLastLink)
- {
+ {
if (lnk == NULL)
- {
+ {
SetCursor(*s_cur_arrow);
if (m_RelatedStatusBar != -1) m_RelatedFrame->SetStatusText(wxEmptyString, m_RelatedStatusBar);
}
else
- {
+ {
SetCursor(*s_cur_hand);
if (m_RelatedStatusBar != -1)
m_RelatedFrame->SetStatusText(lnk->GetHref(), m_RelatedStatusBar);