예제 #1
0
        public ItemPicker()
        {
            ReadOnly        = true;
            PlaceholderText = Application.TranslationCatalog.GetString("Click o press Intro or Space to select one item");
            TooltipText     = Application.TranslationCatalog.GetString("Click o press Intro or Space to select one item from the list");

            var popoverBox = new VBox();

            popoverBox.PackStart(listBoxFilter, true, true);
            popoverBox.PackEnd(selectedItemClear, false, true);

            var popover = new Popover {
                Content = popoverBox,
            };

            Activated += delegate {
                if (!DisabledPicker)
                {
                    popover.Show(Popover.Position.Top, this);
                    listBoxFilter.Search.SetFocus();
                }
            };
            ButtonPressed += delegate {
                if (!DisabledPicker)
                {
                    popover.Show(Popover.Position.Top, this);
                    listBoxFilter.Search.SetFocus();
                }
            };

            listBoxFilter.ListBox.RowActivated += delegate {
                if (listBoxFilter.SelectedItem != null)
                {
                    popover.Hide();
                    SelectedItem = listBoxFilter.SelectedItem;
                }
            };

            selectedItemClear.Clicked += delegate {
                listBoxFilter.UnselectAll();
                popover.Hide();
                SelectedItem = default(T);
            };
        }
예제 #2
0
            public void Maximize(Box dock_bar)
            {
                dock_bar.Remove(ReopenButton);
                popover.Hide();
                if (popover.Child != null)
                {
                    popover.Remove(Item);
                }

                Pane.Pack1(Item, resize: false, shrink: false);

                Item.Maximize();
            }
        internal bool SetTarget(IHasPopover?newTarget)
        {
            target = newTarget;

            currentPopover?.Hide();
            currentPopover?.Expire();

            var newPopover = target?.GetPopover();

            if (newPopover == null)
            {
                return(false);
            }

            popoverContainer.Add(currentPopover = newPopover);
            currentPopover.Show();
            return(true);
        }