#ifndef _AutoScroller_AutoScroller_hpp_ #define _AutoScroller_AutoScroller_hpp_ #include "AutoScroller.h" template AutoScroller::AutoScroller() { C::AddFrame(scroll); scroll.AutoHide(); scroll.WhenScroll = THISBACK(OnScroll); } template void AutoScroller::Scroll(const Point& p) { if(!HasPane()) return; Rect _r = pane->GetRect(); Rect r(-p, _r.GetSize()); pane->SetRect(r); WhenScrolled(); } template void AutoScroller::OnScroll() { Scroll(scroll.Get()); } template void AutoScroller::Layout() { Size psz = C::GetSize(); scroll.SetPage(psz); if(!HasPane()) return; Size tsz = pane->GetSize(); scroll.SetTotal(tsz); } template void AutoScroller::EnableScroll(bool b) { scroll.x.Enable(b); scroll.y.Enable(b); } #endif