some scrolling&refreshing fixed ; removed wxHtmlWindow::OnKeyDown
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5697 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -127,9 +127,10 @@ bool wxHtmlWindow::LoadPage(const wxString& location)
|
|||||||
{
|
{
|
||||||
wxFSFile *f;
|
wxFSFile *f;
|
||||||
bool rt_val;
|
bool rt_val;
|
||||||
|
bool needs_refresh = FALSE;
|
||||||
|
|
||||||
SetCursor(*wxHOURGLASS_CURSOR);
|
SetCursor(*wxHOURGLASS_CURSOR);
|
||||||
wxYield();
|
wxYield(); Refresh(FALSE);
|
||||||
|
|
||||||
m_tmpCanDrawLocks++;
|
m_tmpCanDrawLocks++;
|
||||||
if (m_HistoryOn && (m_HistoryPos != -1)) { // store scroll position into history item
|
if (m_HistoryOn && (m_HistoryPos != -1)) { // store scroll position into history item
|
||||||
@@ -138,20 +139,36 @@ bool wxHtmlWindow::LoadPage(const wxString& location)
|
|||||||
m_History[m_HistoryPos].SetPos(y);
|
m_History[m_HistoryPos].SetPos(y);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (location[0] == '#') { // local anchor
|
if (location[0] == wxT('#')) { // local anchor
|
||||||
wxString anch = location.Mid(1) /*1 to end*/;
|
wxString anch = location.Mid(1) /*1 to end*/;
|
||||||
m_tmpCanDrawLocks--;
|
m_tmpCanDrawLocks--;
|
||||||
rt_val = ScrollToAnchor(anch);
|
rt_val = ScrollToAnchor(anch);
|
||||||
|
m_tmpCanDrawLocks++;
|
||||||
|
}
|
||||||
|
else if (location.Find(wxT('#')) != wxNOT_FOUND && location.BeforeFirst(wxT('#')) == m_OpenedPage) {
|
||||||
|
wxString anch = location.AfterFirst(wxT('#'));
|
||||||
|
m_tmpCanDrawLocks--;
|
||||||
|
rt_val = ScrollToAnchor(anch);
|
||||||
|
m_tmpCanDrawLocks++;
|
||||||
|
}
|
||||||
|
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);
|
||||||
|
m_tmpCanDrawLocks++;
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
|
needs_refresh = TRUE;
|
||||||
// load&display it:
|
// load&display it:
|
||||||
if (m_RelatedStatusBar != -1) {
|
if (m_RelatedStatusBar != -1) {
|
||||||
m_RelatedFrame -> SetStatusText(_("Connecting..."), m_RelatedStatusBar);
|
m_RelatedFrame -> SetStatusText(_("Connecting..."), m_RelatedStatusBar);
|
||||||
Refresh();
|
Refresh(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
f = m_FS -> OpenFile(location);
|
f = m_FS -> OpenFile(location);
|
||||||
|
|
||||||
if (f == NULL) {
|
if (f == NULL) {
|
||||||
wxString err;
|
wxString err;
|
||||||
|
|
||||||
@@ -169,7 +186,7 @@ bool wxHtmlWindow::LoadPage(const wxString& location)
|
|||||||
if (m_RelatedStatusBar != -1) {
|
if (m_RelatedStatusBar != -1) {
|
||||||
wxString msg = _("Loading : ") + location;
|
wxString msg = _("Loading : ") + location;
|
||||||
m_RelatedFrame -> SetStatusText(msg, m_RelatedStatusBar);
|
m_RelatedFrame -> SetStatusText(msg, m_RelatedStatusBar);
|
||||||
Refresh();
|
Refresh(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
node = m_Filters.GetFirst();
|
node = m_Filters.GetFirst();
|
||||||
@@ -190,9 +207,8 @@ bool wxHtmlWindow::LoadPage(const wxString& location)
|
|||||||
rt_val = SetPage(src);
|
rt_val = SetPage(src);
|
||||||
m_OpenedPage = f -> GetLocation();
|
m_OpenedPage = f -> GetLocation();
|
||||||
if (f -> GetAnchor() != wxEmptyString) {
|
if (f -> GetAnchor() != wxEmptyString) {
|
||||||
// m_tmpCanDrawLocks--;
|
wxYield();
|
||||||
ScrollToAnchor(f -> GetAnchor());
|
ScrollToAnchor(f -> GetAnchor());
|
||||||
// m_tmpCanDrawLocks++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
delete f;
|
delete f;
|
||||||
@@ -214,9 +230,14 @@ bool wxHtmlWindow::LoadPage(const wxString& location)
|
|||||||
OnSetTitle(wxFileNameFromPath(m_OpenedPage));
|
OnSetTitle(wxFileNameFromPath(m_OpenedPage));
|
||||||
SetCursor(*wxSTANDARD_CURSOR);
|
SetCursor(*wxSTANDARD_CURSOR);
|
||||||
|
|
||||||
|
if (needs_refresh) {
|
||||||
wxYield();
|
wxYield();
|
||||||
m_tmpCanDrawLocks--;
|
m_tmpCanDrawLocks--;
|
||||||
Refresh();
|
Refresh();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
m_tmpCanDrawLocks--;
|
||||||
|
|
||||||
return rt_val;
|
return rt_val;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -269,11 +290,6 @@ void wxHtmlWindow::CreateLayout()
|
|||||||
|
|
||||||
else {
|
else {
|
||||||
GetClientSize(&ClientWidth, &ClientHeight);
|
GetClientSize(&ClientWidth, &ClientHeight);
|
||||||
#ifndef __WXMSW__
|
|
||||||
// VS : this looks extremely ugly under windoze, better fix needed!
|
|
||||||
SetScrollbars(wxHTML_SCROLL_STEP, 1, m_Cell -> GetWidth() / wxHTML_SCROLL_STEP, ClientHeight * 2); // always on
|
|
||||||
#endif
|
|
||||||
GetClientSize(&ClientWidth, &ClientHeight);
|
|
||||||
m_Cell -> Layout(ClientWidth);
|
m_Cell -> Layout(ClientWidth);
|
||||||
if (ClientHeight < m_Cell -> GetHeight() + GetCharHeight()) {
|
if (ClientHeight < m_Cell -> GetHeight() + GetCharHeight()) {
|
||||||
SetScrollbars(
|
SetScrollbars(
|
||||||
@@ -356,7 +372,7 @@ bool wxHtmlWindow::HistoryBack()
|
|||||||
m_HistoryOn = FALSE;
|
m_HistoryOn = FALSE;
|
||||||
m_tmpCanDrawLocks++;
|
m_tmpCanDrawLocks++;
|
||||||
if (a == wxEmptyString) LoadPage(l);
|
if (a == wxEmptyString) LoadPage(l);
|
||||||
else LoadPage(l + "#" + a);
|
else LoadPage(l + wxT("#") + a);
|
||||||
m_HistoryOn = TRUE;
|
m_HistoryOn = TRUE;
|
||||||
wxYield();
|
wxYield();
|
||||||
m_tmpCanDrawLocks--;
|
m_tmpCanDrawLocks--;
|
||||||
@@ -382,7 +398,7 @@ bool wxHtmlWindow::HistoryForward()
|
|||||||
m_HistoryOn = FALSE;
|
m_HistoryOn = FALSE;
|
||||||
m_tmpCanDrawLocks++;
|
m_tmpCanDrawLocks++;
|
||||||
if (a == wxEmptyString) LoadPage(l);
|
if (a == wxEmptyString) LoadPage(l);
|
||||||
else LoadPage(l + "#" + a);
|
else LoadPage(l + wxT("#") + a);
|
||||||
m_HistoryOn = TRUE;
|
m_HistoryOn = TRUE;
|
||||||
wxYield();
|
wxYield();
|
||||||
m_tmpCanDrawLocks--;
|
m_tmpCanDrawLocks--;
|
||||||
@@ -437,6 +453,7 @@ void wxHtmlWindow::OnDraw(wxDC& dc)
|
|||||||
int v_y, v_h;
|
int v_y, v_h;
|
||||||
|
|
||||||
if (m_tmpCanDrawLocks > 0) return;
|
if (m_tmpCanDrawLocks > 0) return;
|
||||||
|
|
||||||
dc.SetMapMode(wxMM_TEXT);
|
dc.SetMapMode(wxMM_TEXT);
|
||||||
#if 0
|
#if 0
|
||||||
/* VS - I don't think this is neccessary any longer
|
/* VS - I don't think this is neccessary any longer
|
||||||
@@ -466,42 +483,6 @@ void wxHtmlWindow::OnSize(wxSizeEvent& event)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void wxHtmlWindow::OnKeyDown(wxKeyEvent& event)
|
|
||||||
{
|
|
||||||
int dummy;
|
|
||||||
int sty, szy, cliy;
|
|
||||||
|
|
||||||
ViewStart(&dummy, &sty);
|
|
||||||
GetClientSize(&dummy, &cliy); cliy /= wxHTML_SCROLL_STEP;
|
|
||||||
GetVirtualSize(&dummy, &szy); szy /= wxHTML_SCROLL_STEP;
|
|
||||||
|
|
||||||
switch (event.KeyCode()) {
|
|
||||||
case WXK_PAGEUP :
|
|
||||||
case WXK_PRIOR :
|
|
||||||
Scroll(-1, sty - (5 * cliy / 6));
|
|
||||||
break;
|
|
||||||
case WXK_PAGEDOWN :
|
|
||||||
case WXK_NEXT :
|
|
||||||
Scroll(-1, sty + (5 * cliy / 6));
|
|
||||||
break;
|
|
||||||
case WXK_HOME :
|
|
||||||
Scroll(-1, 0);
|
|
||||||
break;
|
|
||||||
case WXK_END :
|
|
||||||
Scroll(-1, szy - cliy);
|
|
||||||
break;
|
|
||||||
case WXK_UP :
|
|
||||||
Scroll(-1, sty - 1);
|
|
||||||
break;
|
|
||||||
case WXK_DOWN :
|
|
||||||
Scroll(-1, sty + 1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void wxHtmlWindow::OnMouseEvent(wxMouseEvent& event)
|
void wxHtmlWindow::OnMouseEvent(wxMouseEvent& event)
|
||||||
{
|
{
|
||||||
m_tmpMouseMoved = TRUE;
|
m_tmpMouseMoved = TRUE;
|
||||||
@@ -561,7 +542,6 @@ BEGIN_EVENT_TABLE(wxHtmlWindow, wxScrolledWindow)
|
|||||||
EVT_LEFT_DOWN(wxHtmlWindow::OnMouseEvent)
|
EVT_LEFT_DOWN(wxHtmlWindow::OnMouseEvent)
|
||||||
EVT_MOTION(wxHtmlWindow::OnMouseEvent)
|
EVT_MOTION(wxHtmlWindow::OnMouseEvent)
|
||||||
EVT_IDLE(wxHtmlWindow::OnIdle)
|
EVT_IDLE(wxHtmlWindow::OnIdle)
|
||||||
EVT_KEY_DOWN(wxHtmlWindow::OnKeyDown)
|
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user