Example #1
0
        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);
            };
        }
Example #2
0
        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;
        }
Example #3
0
        public override void Construct()
        {
            base.Construct();

            if (EnableScrolling)
            {
                ScrollBar = AddChild(new VerticalScrollBar
                {
                    AutoLayout           = AutoLayout.DockRight,
                    OnScrollValueChanged = (sender) =>
                    {
                        sender.Parent.Layout();
                    }
                }) as VerticalScrollBar;
            }
        }
Example #4
0
        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();
        }