コード例 #1
0
  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);
    }
  }
コード例 #2
0
  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);
  }
コード例 #3
0
 public int GetHorizScrollHeight() {
   if (HaveHorizontalScrollbar) return FHorizontalScrollbar.Height();
   else return 0;
 }