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); }
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); }