コード例 #1
0
        //public static Widget DropDown(IEnumerable<string> items, PopInOut pop_in_out_behavior = null)
        //{
        //    WidgetList widgets = new WidgetList();
        //    foreach (string item in items) widgets.Add(new Widget().WithAddedBehavior(new DrawText() { Text = item, ConstrainAreaToText = true }));
        //    return DropDown(widgets, pop_in_out_behavior);
        //}

        public static Widget DropDown(
            IEnumerable <Widget> widgets,
            PopInOut pop_in_out_behavior = null
            )
        {
            var widgets_ = widgets.ToList();
            var dropdown = new Widget();

            dropdown.VisualSettings.VisualRole = VisualRoleType.pop_up;
            dropdown.Behaviors.GroupBehaviors.AcceptancePolicy += GroupBehaviorAcceptancePolicy.NoUserScrolling;
            dropdown.MinimumSize = new Point2(1f, 1f);
            dropdown.AddRange(widgets_);
            dropdown.Behaviors.Add(new GridFormat(1, widgets_.Count));

            dropdown.Behaviors.Add(
                pop_in_out_behavior ?? new PopInOut(
                    RectanglePart.Uniform(0.95f, Directions2D.DLR),
                    RectanglePart.Uniform(0f, Directions2D.D, 1f)
                    )
            {
                OpeningMotion = InterpolationSettings.Fast,
                ClosingMotion = InterpolationSettings.Faster
            }
                );

            return(dropdown);
        }
コード例 #2
0
        public static Widget DropDown(
            IEnumerable <KeyValuePair <string, DropDownEntry> > entries,
            PopInOut pop_in_out_behavior = null
            )
        {
            var items = new WidgetList();

            foreach (var item in entries)
            {
                items.Add(DropDownEntry(item.Key, item.Value));
            }
            return(DropDown(items, pop_in_out_behavior));
        }