Example #1
0
  public void SetStyle(boolean v, boolean h) {
    boolean changed = false;
    // { +VERT}
    if (v && !HaveVerticalScrollbar) {
      if (FVerticalScrollbar != null) FVerticalScrollbar.Unlink();
      FVerticalScrollbar = CreateScrollbar(true);
      FVerticalScrollbar.SetVertical(true);
      FVerticalScrollbar.Min = 1;
      FVerticalScrollbar.Pos = 1;
      changed = true;
    }
    // { -VERT}
    if (!v && HaveVerticalScrollbar) {
      if (FVerticalScrollbar != null) {
        FVerticalScrollbar.Unlink();
        FVerticalScrollbar = null;
      }
      changed = true;
    }
    // { +HORIZ}
    if (h && !HaveHorizontalScrollbar) {
      if (FHorizontalScrollbar != null) FHorizontalScrollbar.Unlink();
      FHorizontalScrollbar = CreateScrollbar(false);
      FHorizontalScrollbar.SetVertical(true);
      FHorizontalScrollbar.Min = 1;
      FHorizontalScrollbar.Pos = 1;
      changed = true;
    }
    // { -HORIZ}
    if (!h && HaveHorizontalScrollbar) {
      if (FHorizontalScrollbar != null) {
        FHorizontalScrollbar.Unlink();
        FHorizontalScrollbar = null;
      }
      changed = true;
    }

    if (changed) {
      HaveHorizontalScrollbar = h;
      HaveVerticalScrollbar = v;
      UpdateScrollBars();
    }
  }
Example #2
0
  protected Coord AbsWorkCoord() {
    Coord Result =
        new Coord(abs_pos.x + ClientRect.x - WorkRect().x, abs_pos.y + ClientRect.y - WorkRect().y);

    if (HaveHorizontalScrollbar)
      if (!HScrollBarIsBottom) Result.y = Result.y + FHorizontalScrollbar.size.y;

    if (HaveVerticalScrollbar)
      if (!VScrollBarIsRight) Result.x = Result.x + FVerticalScrollbar.Width();

    return Result;
  }
Example #3
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);
  }
Example #4
0
  public boolean DoMouseWheel(boolean isUp, int len) {
    boolean result = false;
    if (!MouseInMe()) return result;

    if (HaveVerticalScrollbar) {
      FVerticalScrollbar.Step = MouseWheelStep;
      if (!isUp) FVerticalScrollbar.DoInc();
      else FVerticalScrollbar.DoDec();
      result = true;
    } else if (HaveHorizontalScrollbar) {
      FHorizontalScrollbar.Step = MouseWheelStep;
      if (!isUp) FHorizontalScrollbar.DoInc();
      else FHorizontalScrollbar.DoDec();
      result = true;
    }
    return result;
  }
Example #5
0
 public void ResetScrollPos(boolean vertical) {
   if (vertical) {
     if (FVerticalScrollbar != null) FVerticalScrollbar.SetPos(FVerticalScrollbar.Min);
   } else if (FHorizontalScrollbar != null) FHorizontalScrollbar.SetPos(FHorizontalScrollbar.Min);
 }
Example #6
0
 public int GetHorizScrollHeight() {
   if (HaveHorizontalScrollbar) return FHorizontalScrollbar.Height();
   else return 0;
 }
Example #7
0
 public int GetVertScrollWidth() {
   if (HaveVerticalScrollbar) return FVerticalScrollbar.Width();
   else return 0;
 }
Example #8
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);
    }
  }