// bring the selected item into view, scrolling to it if necessary
void MoveToItem(size_t item);
+ bool ScrollList( int WXUNUSED(dx), int dy );
+
// bring the current item into view
void MoveToFocus() { MoveToItem(m_current); }
}
else // !report
{
+ int sx = -1,
+ sy = -1;
+
if (rect.x-view_x < 5)
- Scroll( (rect.x - 5) / SCROLL_UNIT_X, -1 );
+ sx = (rect.x - 5) / SCROLL_UNIT_X;
if (rect.x + rect.width - 5 > view_x + client_w)
- Scroll( (rect.x + rect.width - client_w + SCROLL_UNIT_X) / SCROLL_UNIT_X, -1 );
+ sx = (rect.x + rect.width - client_w + SCROLL_UNIT_X) / SCROLL_UNIT_X;
+
+ if (rect.y-view_y < 5)
+ sy = (rect.y - 5) / hLine;
+ if (rect.y + rect.height - 5 > view_y + client_h)
+ sy = (rect.y + rect.height - client_h + hLine) / hLine;
+
+ Scroll(sx, sy);
+ }
+}
+
+bool wxListMainWindow::ScrollList(int WXUNUSED(dx), int dy)
+{
+ if ( !InReportView() )
+ {
+ // TODO: this should work in all views but is not implemented now
+ return false;
}
+
+ size_t top, bottom;
+ GetVisibleLinesRange(&top, &bottom);
+
+ if ( bottom == (size_t)-1 )
+ return 0;
+
+ ResetVisibleLinesRange();
+
+ int hLine = GetLineHeight();
+
+ Scroll(-1, top + dy / hLine);
+
+#ifdef __WXMAC__
+ // see comment in MoveToItem() for why we do this
+ ResetVisibleLinesRange();
+#endif
+
+ return true;
}
// ----------------------------------------------------------------------------
if ( GetWindowVariant() == wxWINDOW_VARIANT_NORMAL )
{
wxFont font;
- font.MacCreateThemeFont( kThemeViewsFont );
+ font.MacCreateFromThemeFont( kThemeViewsFont );
SetFont( font );
}
#endif
if (m_headerWin)
{
wxFont font;
- font.MacCreateThemeFont( kThemeSmallSystemFont );
+ font.MacCreateFromThemeFont( kThemeSmallSystemFont );
m_headerWin->SetFont( font );
CalculateAndSetHeaderHeight();
}
return InsertColumn( col, item );
}
-bool wxGenericListCtrl::ScrollList( int WXUNUSED(dx), int WXUNUSED(dy) )
+bool wxGenericListCtrl::ScrollList( int dx, int dy )
{
- return 0;
+ return m_mainWin->ScrollList(dx, dy);
}
// Sort items.