public void tile() {
    /* Let the superclass do most of the work. */
    super.tile();

    if (!hasHorizontalScroller()) {
      if (null != _scalePopUpButton) {
        _scalePopUpButton.removeFromSuperview();
        _scalePopUpButton = null;
      }
    } else {
      if (_scalePopUpButton == null) makeScalePopUpButton();

      NSScroller horizScroller = horizontalScroller();
      NSMutableRect horizScrollerFrame = new NSMutableRect(horizScroller.frame());
      NSRect incrementLineFrame = horizScroller.rectForPart(NSScroller.IncrementLine);
      NSMutableRect buttonFrame = new NSMutableRect(_scalePopUpButton.frame());

      /* Adjust the horizontal scroller size and set the button size and location. */
      buttonFrame.setX(horizScrollerFrame.x());
      buttonFrame.setHeight(incrementLineFrame.height());
      buttonFrame.setY(horizScrollerFrame.y() + incrementLineFrame.y());

      horizScrollerFrame.setWidth(horizScrollerFrame.width() - (buttonFrame.width() + 1.0f));
      horizScrollerFrame.setX(horizScrollerFrame.x() + (buttonFrame.width() + 1.0f));
      horizScroller.setFrame(horizScrollerFrame);

      _scalePopUpButton.setFrame(buttonFrame);
    }
  }