//////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// protected override void DrawControl(Renderer renderer, Rectangle rect, GameTime gameTime) { BlendState bs = Manager.GraphicsDevice.BlendState; Manager.GraphicsDevice.BlendState = BlendState.NonPremultiplied; //if (this.Name == "Close.Buttom") //{ //} if (mode == ButtonMode.PushButton && pushed) { SkinLayer l = Skin.Layers[lrButton]; renderer.DrawLayer(l, rect, l.States.Pressed.Color, l.States.Pressed.Index); if (l.States.Pressed.Overlay) { renderer.DrawLayer(l, rect, l.Overlays.Pressed.Color, l.Overlays.Pressed.Index); } } else { base.DrawControl(renderer, rect, gameTime); } SkinLayer layer = Skin.Layers[lrButton]; SpriteFont font = (layer.Text != null && layer.Text.Font != null) ? layer.Text.Font.Resource : null; Color col = Color.White; int ox = 0; int oy = 0; if (ControlState == ControlState.Pressed) { if (layer.Text != null) { col = layer.Text.Colors.Pressed; } ox = 1; oy = 1; } if (glyph != null) { Margins cont = layer.ContentMargins; Rectangle r = new Rectangle(rect.Left + cont.Left, rect.Top + cont.Top, rect.Width - cont.Horizontal, rect.Height - cont.Vertical); renderer.DrawGlyph(glyph, r); } else { renderer.DrawString(this, layer, Text, rect, true, ox, oy); } Manager.GraphicsDevice.BlendState = bs; }
//////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// protected override void DrawControl(Renderer renderer, Rectangle rect, GameTime gameTime) { if (mode == ButtonMode.PushButton && pushed) { SkinLayer l = Skin.Layers[lrButton]; renderer.DrawLayer(l, rect, l.States.Pressed.Color, l.States.Pressed.Index); if (l.States.Pressed.Overlay) { renderer.DrawLayer(l, rect, l.Overlays.Pressed.Color, l.Overlays.Pressed.Index); } } else { base.DrawControl(renderer, rect, gameTime); } SkinLayer layer = Skin.Layers[lrButton]; SpriteFont font = (layer.Text != null && layer.Text.Font != null) ? layer.Text.Font.Resource : null; Color col = Color.White; int ox = 0; int oy = 0; if (ControlState == ControlState.Pressed) { if (layer.Text != null) col = layer.Text.Colors.Pressed; ox = 1; oy = 1; } if (glyph != null) { Margins cont = layer.ContentMargins; Rectangle r = new Rectangle(rect.Left + cont.Left, rect.Top + cont.Top, rect.Width - cont.Horizontal, rect.Height - cont.Vertical); renderer.DrawGlyph(glyph, r); } else { renderer.DrawString(this, layer, Text, rect, true, ox, oy); } }
/// <summary> /// Draws the button control. /// </summary> /// <param name="renderer">Rendering management object.</param> /// <param name="rect">Destination rectangle.</param> /// <param name="gameTime">Snapshot of the application's timing values.</param> protected override void DrawControl(Renderer renderer, Rectangle rect, GameTime gameTime) { // Toggle button in pressed state? if (mode == ButtonMode.PushButton && pushed) { SkinLayer l = Skin.Layers[lrButton]; renderer.DrawLayer(l, rect, l.States.Pressed.Color, l.States.Pressed.Index); // Does the layer's pressed state have an overlay? if (l.States.Pressed.Overlay) { // Draw the overlay on top of the button. renderer.DrawLayer(l, rect, l.Overlays.Pressed.Color, l.Overlays.Pressed.Index); } } else { // Standard button. ButtonBase can handle drawing. base.DrawControl(renderer, rect, gameTime); } SkinLayer layer = Skin.Layers[lrButton]; SpriteFont font = (layer.Text != null && layer.Text.Font != null) ? layer.Text.Font.Resource : null; Color col = Color.White; int ox = 0; int oy = 0; // Standard button pressed? if (ControlState == ControlState.Pressed) { if (layer.Text != null) col = layer.Text.Colors.Pressed; ox = 1; oy = 1; } // Button has an image to apply? if (glyph != null) { // Draw the button image. Margins cont = layer.ContentMargins; Rectangle r = new Rectangle(rect.Left + cont.Left, rect.Top + cont.Top, rect.Width - cont.Horizontal, rect.Height - cont.Vertical); renderer.DrawGlyph(glyph, r); } else { // Draw the button text. renderer.DrawString(this, layer, Text, rect, true, ox, oy); } }