protected void UpdateScrollBars() { int old_max, old_page_size; if (HaveVerticalScrollbar) { if (ScrollbarsVisible) FVerticalScrollbar.Show(); else FVerticalScrollbar.Hide(); if (VScrollBarIsRight) FVerticalScrollbar.SetX(ClientRect.x + ClientRect.w - FVerticalScrollbar.Width()); else FVerticalScrollbar.SetX(ClientRect.x); FVerticalScrollbar.SetY(ClientRect.y); old_max = FVerticalScrollbar.Max; old_page_size = FVerticalScrollbar.PageSize; FVerticalScrollbar.Min = 0; FVerticalScrollbar.Max = FullHeight; if (HaveHorizontalScrollbar) { FVerticalScrollbar.SetHeight(ClientRect.h - FHorizontalScrollbar.Height()); } else { FVerticalScrollbar.SetHeight(ClientRect.h); } FVerticalScrollbar.PageSize = FVerticalScrollbar.Height(); if (AutoScrollV) if (FVerticalScrollbar.Pos + old_page_size >= old_max) FVerticalScrollbar.SetPos(FVerticalScrollbar.Max - FVerticalScrollbar.PageSize); } if (HaveHorizontalScrollbar) { if (ScrollbarsVisible) FHorizontalScrollbar.Show(); else FHorizontalScrollbar.Hide(); FHorizontalScrollbar.SetX(ClientRect.x); if (HScrollBarIsBottom) FHorizontalScrollbar.SetY(ClientRect.y + ClientRect.h - FHorizontalScrollbar.Height()); else FHorizontalScrollbar.SetY(ClientRect.y); old_max = FHorizontalScrollbar.Max; old_page_size = FHorizontalScrollbar.PageSize; FHorizontalScrollbar.Min = 0; FHorizontalScrollbar.Max = FullWidth; if (HaveVerticalScrollbar) { FHorizontalScrollbar.SetWidth(ClientRect.w - FVerticalScrollbar.Width()); } else { FHorizontalScrollbar.SetWidth(ClientRect.w); } FHorizontalScrollbar.PageSize = FHorizontalScrollbar.Width(); if (AutoScrollH) if (FHorizontalScrollbar.Pos + old_page_size >= old_max) FHorizontalScrollbar.SetPos(FHorizontalScrollbar.Max - FHorizontalScrollbar.PageSize); } }
protected IntCoord WorkRect() { // HaveVerticalScrollbar int x, y, w, h; if (HaveVerticalScrollbar) { y = FVerticalScrollbar.Pos; if (HaveHorizontalScrollbar) h = ClientRect.h - FHorizontalScrollbar.Height(); else h = ClientRect.h; } else { y = 0; if (HaveHorizontalScrollbar) h = ClientRect.h - FHorizontalScrollbar.Height(); else h = ClientRect.h; } if (HaveHorizontalScrollbar) { x = FHorizontalScrollbar.Pos; if (HaveVerticalScrollbar) w = ClientRect.w - FVerticalScrollbar.Width(); else w = ClientRect.w; } else { x = 0; if (HaveVerticalScrollbar) w = ClientRect.w - FVerticalScrollbar.Width(); else w = ClientRect.w; } return new IntCoord(x, y, w, h); }
public int GetHorizScrollHeight() { if (HaveHorizontalScrollbar) return FHorizontalScrollbar.Height(); else return 0; }