//---------------------------------------------------------------------- public Button( Screen _screen, ButtonStyle _style, string _strText = "", Texture2D _iconTex = null, Anchor _anchor = Anchor.Center, string _strTooltipText="", object _tag=null ) : base(_screen) { Style = _style; mPadding = new Box(5, 0); mMargin = new Box(0); mLabel = new Label( _screen ); mIcon = new Image( _screen ); mIcon.Texture = _iconTex; mIcon.Padding = new Box( Style.VerticalPadding, 0, Style.VerticalPadding, Style.HorizontalPadding ); Text = _strText; TextColor = Screen.Style.DefaultTextColor; Anchor = _anchor; mPressedAnim = new SmoothValue( 1f, 0f, 0.2f ); mPressedAnim.SetTime( mPressedAnim.Duration ); mTooltip = new Tooltip( Screen, "" ); TooltipText = _strTooltipText; Tag = _tag; UpdateContentSize(); }
//---------------------------------------------------------------------- public DropDownBox( Screen _screen, List<DropDownItem> _lItems, int _iInitialValueIndex ) : base(_screen) { mCurrentItemLabel = new Label( Screen, _anchor: Anchor.Start ); Items = new ObservableList<DropDownItem>( _lItems ); Items.ListChanged += delegate( object _source, ObservableList<DropDownItem>.ListChangedEventArgs _args ) { if( _args.Added ) { _args.Item.DropDownBox = this; } if( SelectedItemIndex == -1 ) { if( _args.Added ) { SelectedItemIndex = _args.Index; } } else if( _args.Index <= SelectedItemIndex ) { SelectedItemIndex = Math.Min( Items.Count - 1, Math.Max( 0, SelectedItemIndex + ( _args.Added ? 1 : -1 ) ) ); } }; Items.ListCleared += delegate( object _source, EventArgs _args ) { SelectedItemIndex = -1; }; SelectedItemIndex = _iInitialValueIndex; mScrollbar = new Scrollbar( _screen ); mScrollbar.Parent = this; ScrollItemOffset = Math.Max( 0, Math.Min( SelectedItemIndex, Items.Count - siMaxLineDisplayed ) ); mScrollbar.LerpOffset = mScrollbar.Offset; Padding = new Box( 10 ); TextPadding = new Box( 5 ); mPressedAnim = new SmoothValue( 1f, 0f, 0.2f ); mPressedAnim.SetTime( mPressedAnim.Duration ); ButtonFrame = Screen.Style.ButtonFrame; ButtonFrameDown = Screen.Style.ButtonFrameDown; ButtonFrameHover = Screen.Style.ButtonHover; ButtonFramePressed = Screen.Style.ButtonPress; UpdateContentSize(); }