public ScrollView(Vector3 position, Vector2 size, ScrollViewOptions opts) : base(position, size, opts.Sprite, opts) { _clip = new Rect( opts.Border.x, opts.Border.y + opts.HScrollBarHeight, size.x - opts.Border.x - opts.Border.z - opts.VScrollBarWidth, size.y - opts.Border.y - opts.Border.w - opts.HScrollBarHeight ); _extents = _clip; _opts = opts; var clip = this.Clip; // vertical scroll bar if (opts.VScrollBarWidth > 0f) { _vScroll = new Image( new Rect(clip.xMax, clip.yMin, opts.VScrollBarWidth, clip.height), position.z - 0.1f, opts.VScrollBarSprite, new VisualOptions { Name = "vscroll", Parent = this, PixelAlign = true }); var knobSize = opts.VKnobSize; if (knobSize.x <= 0f) { knobSize.x = opts.VScrollBarWidth; } if (knobSize.y <= 0f) { _vAutoSize = true; knobSize.y = clip.height; } var x = (clip.xMax + opts.VScrollBarWidth / 2f) - knobSize.x / 2f; _vKnob = new Button( new Rect(x, clip.yMin, knobSize.x, knobSize.y), position.z - 0.9f, new ButtonOptions { NormalSprite = opts.VKnobSprite, OverSprite = opts.VKnobOverSprite, PressedSprite = opts.VKnobPressedSprite, Name = "vscrollknob", Parent = this, PixelAlign = !_vAutoSize }); } // horizontal scroll bar if (opts.HScrollBarHeight > 0f) { _hScroll = new Image( new Rect(clip.xMin, clip.yMin - opts.HScrollBarHeight, clip.width, opts.HScrollBarHeight), position.z - 0.1f, opts.HScrollBarSprite, new VisualOptions { Name = "hscroll", Parent = this, PixelAlign = false }); var knobSize = opts.VKnobSize; if (knobSize.y <= 0f) { knobSize.y = opts.HScrollBarHeight; } if (knobSize.x <= 0f) { _hAutoSize = true; knobSize.x = clip.width; } var y = (clip.yMin - opts.HScrollBarHeight / 2f) - knobSize.y / 2f; _hKnob = new Button( new Rect(clip.xMin, y, knobSize.x, knobSize.y), position.z - 0.9f, new ButtonOptions { NormalSprite = opts.HKnobSprite, OverSprite = opts.HKnobOverSprite, PressedSprite = opts.HKnobPressedSprite, Name = "hscrollknob", Parent = this, PixelAlign = !_hAutoSize }); } }
public ScrollView(Rect bounds, float depth, ScrollViewOptions opts) : this(new Vector3(bounds.x, bounds.y, depth), new Vector2(bounds.width, bounds.height), opts) { }