X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ba597ca8315df299a603990df4e0f334e3f21f6a..9c112555198f51fcec71106530cddba95a17f3dc:/contrib/src/gizmos/splittree.cpp?ds=inline diff --git a/contrib/src/gizmos/splittree.cpp b/contrib/src/gizmos/splittree.cpp index 87b3668ffd..60f4129f8f 100644 --- a/contrib/src/gizmos/splittree.cpp +++ b/contrib/src/gizmos/splittree.cpp @@ -30,7 +30,7 @@ #endif // for all others, include the necessary headers (this file is usually all you -// need because it includes almost all "standard" wxWindows headers) +// need because it includes almost all "standard" wxWidgets headers) #ifndef WX_PRECOMP #include "wx/wx.h" #endif @@ -60,8 +60,8 @@ BEGIN_EVENT_TABLE(wxRemotelyScrolledTreeCtrl, wxTreeCtrl) #endif EVT_SIZE(wxRemotelyScrolledTreeCtrl::OnSize) EVT_PAINT(wxRemotelyScrolledTreeCtrl::OnPaint) - EVT_TREE_ITEM_EXPANDED(-1, wxRemotelyScrolledTreeCtrl::OnExpand) - EVT_TREE_ITEM_COLLAPSED(-1, wxRemotelyScrolledTreeCtrl::OnExpand) + EVT_TREE_ITEM_EXPANDED(wxID_ANY, wxRemotelyScrolledTreeCtrl::OnExpand) + EVT_TREE_ITEM_COLLAPSED(wxID_ANY, wxRemotelyScrolledTreeCtrl::OnExpand) EVT_SCROLLWIN(wxRemotelyScrolledTreeCtrl::OnScroll) END_EVENT_TABLE() @@ -90,7 +90,7 @@ void wxRemotelyScrolledTreeCtrl::HideVScrollbar() if (!IsKindOf(CLASSINFO(wxGenericTreeCtrl))) #endif { - ::ShowScrollBar((HWND) GetHWND(), SB_VERT, FALSE); + ::ShowScrollBar((HWND) GetHWND(), SB_VERT, false); } #if USE_GENERIC_TREECTRL else @@ -122,7 +122,7 @@ void wxRemotelyScrolledTreeCtrl::SetScrollbars( if (IsKindOf(CLASSINFO(wxGenericTreeCtrl))) { wxGenericTreeCtrl* win = (wxGenericTreeCtrl*) this; - win->wxGenericTreeCtrl::SetScrollbars(pixelsPerUnitX, pixelsPerUnitY, noUnitsX, 0, xPos, 0, /* noRefresh */ TRUE); + win->wxGenericTreeCtrl::SetScrollbars(pixelsPerUnitX, pixelsPerUnitY, noUnitsX, 0, xPos, 0, /* noRefresh */ true); wxScrolledWindow* scrolledWindow = GetScrolledWindow(); if (scrolledWindow) @@ -236,7 +236,7 @@ void wxRemotelyScrolledTreeCtrl::ScrollToLine(int WXUNUSED(posHoriz), int posVer { UINT sbCode = SB_THUMBPOSITION; HWND vertScrollBar = 0; - MSWDefWindowProc((WXUINT) WM_VSCROLL, MAKELONG(sbCode, posVert), (WXHWND) vertScrollBar); + MSWDefWindowProc((WXUINT) WM_VSCROLL, MAKELONG(sbCode, posVert), (WXLPARAM) vertScrollBar); } #if USE_GENERIC_TREECTRL else @@ -299,7 +299,9 @@ void wxRemotelyScrolledTreeCtrl::OnPaint(wxPaintEvent& event) wxSize clientSize = GetClientSize(); wxRect itemRect; wxTreeItemId h, lastH; - for(h=GetFirstVisibleItem();h;h=GetNextVisible(h)) + for (h=GetFirstVisibleItem(); + h.IsOk(); + h=GetNextVisible(h)) { if (GetBoundingRect(h, itemRect)) { @@ -307,6 +309,8 @@ void wxRemotelyScrolledTreeCtrl::OnPaint(wxPaintEvent& event) dc.DrawLine(0, cy, clientSize.x, cy); lastH = h; } + if (! IsVisible(h)) + break; } if (lastH.IsOk() && GetBoundingRect(lastH, itemRect)) { @@ -508,7 +512,9 @@ void wxTreeCompanionWindow::OnPaint(wxPaintEvent& WXUNUSED(event)) wxSize clientSize = GetClientSize(); wxRect itemRect; wxTreeItemId h, lastH; - for(h=m_treeCtrl->GetFirstVisibleItem();h;h=m_treeCtrl->GetNextVisible(h)) + for (h=m_treeCtrl->GetFirstVisibleItem(); + h.IsOk(); + h=m_treeCtrl->GetNextVisible(h)) { if (m_treeCtrl->GetBoundingRect(h, itemRect)) { @@ -521,6 +527,8 @@ void wxTreeCompanionWindow::OnPaint(wxPaintEvent& WXUNUSED(event)) DrawItem(dc, h, drawItemRect); dc.DrawLine(0, cy, clientSize.x, cy); } + if (! m_treeCtrl->IsVisible(h)) + break; } if (lastH.IsOk() && m_treeCtrl->GetBoundingRect(lastH, itemRect)) { @@ -541,7 +549,7 @@ void wxTreeCompanionWindow::OnScroll(wxScrollWinEvent& event) return; // TODO: scroll the window physically instead of just refreshing. - Refresh(TRUE); + Refresh(true); } void wxTreeCompanionWindow::OnExpand(wxTreeEvent& WXUNUSED(event)) @@ -674,37 +682,37 @@ void wxSplitterScrolledWindow::OnScroll(wxScrollWinEvent& event) { // Ensure that events being propagated back up the window hierarchy // don't cause an infinite loop - static bool inOnScroll = FALSE; + static bool inOnScroll = false; if (inOnScroll) { event.Skip(); return; } - inOnScroll = TRUE; + inOnScroll = true; int orient = event.GetOrientation(); int nScrollInc = CalcScrollInc(event); if (nScrollInc == 0) { - inOnScroll = FALSE; + inOnScroll = false; return; } if (orient == wxHORIZONTAL) { - inOnScroll = FALSE; + inOnScroll = false; event.Skip(); return; #if 0 int newPos = m_xScrollPosition + nScrollInc; - SetScrollPos(wxHORIZONTAL, newPos, TRUE ); + SetScrollPos(wxHORIZONTAL, newPos, true ); #endif } else { int newPos = m_yScrollPosition + nScrollInc; - SetScrollPos(wxVERTICAL, newPos, TRUE ); + SetScrollPos(wxVERTICAL, newPos, true ); } if (orient == wxHORIZONTAL) @@ -717,7 +725,7 @@ void wxSplitterScrolledWindow::OnScroll(wxScrollWinEvent& event) } // Find targets in splitter window and send the event to them - wxWindowListNode* node = GetChildren().GetFirst(); + wxWindowList::compatibility_iterator node = GetChildren().GetFirst(); while (node) { wxWindow* child = (wxWindow*) node->GetData(); @@ -733,10 +741,8 @@ void wxSplitterScrolledWindow::OnScroll(wxScrollWinEvent& event) node = node->GetNext(); } -#ifdef __WXMAC__ - m_targetWindow->MacUpdateImmediately() ; -#endif + m_targetWindow->Update() ; - inOnScroll = FALSE; + inOnScroll = false; }