public override void Construct() { if (String.IsNullOrEmpty(Border)) { Border = "border-one"; } ScrollBar = new VerticalScrollBar { OnScrollValueChanged = (sender) => { this.Invalidate(); }, AutoLayout = AutoLayout.DockRight }; AddChild(ScrollBar); OnClick += (sender, args) => { var newIndex = ScrollBar.ScrollPosition + ((args.Y - GetDrawableInterior().Y) / ItemHeight); if (newIndex >= 0 && newIndex < Items.Count) { SelectedIndex = newIndex; } }; OnScroll = (sender, args) => { Root.SafeCall(ScrollBar.OnScroll, ScrollBar, args); }; }
public override void Construct() { if (String.IsNullOrEmpty(Border)) { Border = "border-one"; } ScrollBar = new VerticalScrollBar { OnScrollValueChanged = (sender) => { this.Invalidate(); }, AutoLayout = AutoLayout.DockRight }; AddChild(ScrollBar); OnClick += (sender, args) => { if (ScrollBar.Hidden || args.X < ScrollBar.Rect.Left) { SelectedIndex = ScrollBar.ScrollPosition + ((args.Y - GetDrawableInterior().Y) / ItemHeight); } }; OnScroll = (sender, args) => { Root.SafeCall(ScrollBar.OnScroll, ScrollBar, args); }; TriggerOnChildClick = true; }
public override void Construct() { base.Construct(); if (EnableScrolling) { ScrollBar = AddChild(new VerticalScrollBar { AutoLayout = AutoLayout.DockRight, OnScrollValueChanged = (sender) => { sender.Parent.Layout(); } }) as VerticalScrollBar; } }
public override void Construct() { base.Construct(); ReservedKeys = new Keys[] { Keys.Up, Keys.Left, Keys.Right, Keys.Down, Keys.LeftControl, //Keys.LeftShift, //Keys.RightShift, Keys.LeftAlt, Keys.RightAlt, Keys.RightControl, Keys.Escape }.ToList(); var bindingCount = KeyManager.Buttons.Count; var insideScrollHandler = false; ScrollBar = AddChild(new VerticalScrollBar { ScrollArea = bindingCount, ScrollPosition = 0, AutoLayout = AutoLayout.DockRight, OnScrollValueChanged = (sender) => { if (insideScrollHandler) { return; } insideScrollHandler = true; LayoutRows(); insideScrollHandler = false; } }) as VerticalScrollBar; OnLayout += (sender) => { var height = sender.Rect.Height; var rowsVisible = height / 20; ScrollBar.ScrollArea = Math.Max(0, bindingCount - rowsVisible + 1); }; foreach (var binding in KeyManager.Buttons) { var lambdaBinding = binding; var row = AddChild(new Widget { MinimumSize = new Point(0, 20), AutoLayout = AutoLayout.None, }); Rows.Add(row); row.AddChild(new Widget { MinimumSize = new Point(128, 0), AutoLayout = AutoLayout.DockLeft, Text = binding.Key }); row.AddChild(new Gui.Widgets.KeyField { AssignedKey = binding.Value, BeforeKeyChange = (sender, args) => { if (KeyManager.IsMapped(args.NewKey)) { args.Cancelled = true; Root.ShowTooltip(new Point(sender.Rect.X, sender.Rect.Y + 20), String.Format("Key {0} is already assigned.", args.NewKey)); } else if (ReservedKeys.Contains(args.NewKey)) { args.Cancelled = true; Root.ShowTooltip(new Point(sender.Rect.X, sender.Rect.Y + 20), String.Format("Key {0} is reserved.", args.NewKey)); } }, OnKeyChange = (sender, newKey) => { KeyManager[lambdaBinding.Key] = newKey; KeyManager.SaveConfigSettings(); }, AutoLayout = AutoLayout.DockFill }); } LayoutRows(); }