Exemplo n.º 1
0
        public override void Render(DwarfTime time, SpriteBatch batch)
        {
            if (!IsVisible)
            {
                return;
            }
            Drawer2D.Alignment alignment = DrawButton ? Drawer2D.Alignment.Center : Drawer2D.Alignment.Left;
            if (DrawButton)
            {
                GUI.Skin.RenderButton(GlobalBounds, batch);
            }

            //Drawer2D.DrawRect(GlobalBounds, Color.White, Color.Black, 1.0f);
            if (IsMouseOver)
            {
                Drawer2D.DrawAlignedStrokedText(batch, Label, GUI.DefaultFont, HoverColor, TextStrokeColor, alignment, GlobalBounds);
            }
            else
            {
                if (!IsToggled || Mode == SelectionMode.ButtonList)
                {
                    Drawer2D.DrawAlignedStrokedText(batch, Label, GUI.DefaultFont, TextColor, TextStrokeColor, alignment, GlobalBounds);
                }
                else
                {
                    Drawer2D.DrawAlignedStrokedText(batch, Label, GUI.DefaultFont, ToggledColor, TextStrokeColor, alignment, GlobalBounds);
                }
            }

            if (Texture != null)
            {
                batch.Draw(Texture, new Vector2(GlobalBounds.Top, GlobalBounds.Left - 10), TextureBounds, Color.White, 0.0f, Vector2.Zero, Vector2.Zero, SpriteEffects.None, 0);
            }

            base.Render(time, batch);
        }
Exemplo n.º 2
0
        public void TweenOut(Drawer2D.Alignment alignment, float time = 0.5f, Func <float, float, float, float, float> tweenFn = null)
        {
            Point end = new Point(0, 0);

            switch (alignment)
            {
            case Drawer2D.Alignment.Bottom:
                end = new Point(LocalBounds.X, Parent.LocalBounds.Height);
                break;

            case Drawer2D.Alignment.Top:
                end = new Point(LocalBounds.X, -LocalBounds.Height);
                break;

            case Drawer2D.Alignment.Left:
                end = new Point(-LocalBounds.Width, LocalBounds.Y);
                break;

            case Drawer2D.Alignment.Right:
                end = new Point(Parent.LocalBounds.Width, LocalBounds.Y);
                break;
            }
            TweenOut(end, time, tweenFn);
        }