public override void Draw() { if (base.screenVisible) { _size = UiStateManager.MeasureString(text); //Draw the button if (enabled) { UiTexture img = TextureManager.GetUiUv("button_neutral"); if (isHovered && Parent.FocusedComponent != null && Parent.FocusedComponent == this) { if (isClicked) { img = TextureManager.GetUiUv("button_clicked"); } else { img = TextureManager.GetUiUv("button_hover"); } } UiStateManager.Draw9SplicedButton(img, this); UiStateManager.DrawText(location.X + size.X / 2 - _size.X / 2, location.Y + size.Y / 2 - _size.Y / 2, buttonColor, text); } else { UiTexture img = TextureManager.GetUiUv("button_disabled"); UiStateManager.Draw9SplicedButton(img, this); UiStateManager.DrawText(location.X + size.X / 2 - _size.X / 2, location.Y + size.Y / 2 - _size.Y / 2, buttonDisabledColor, text); } } }
public static void Draw9SplicedButton(UiTexture buttonTex, Point size, Point location) { int sizePaddingX = 3 * GameSettings.UIScale; int sizePaddingY = 3 * GameSettings.UIScale; int sizeCenterX = size.X - 2 * sizePaddingX; int sizeCenterY = size.Y - 2 * sizePaddingY; int paddingX = (int)(buttonTex.UV.Width * 0.046875f); int paddingY = (int)(buttonTex.UV.Height * 0.1875f); int centerX = buttonTex.UV.Width - 2 * paddingX; int centerY = buttonTex.UV.Height - 2 * paddingY; //TopLeft DrawImage(new Rectangle(location.X, location.Y, sizePaddingX, sizePaddingY), new Rectangle(buttonTex.UV.X, buttonTex.UV.Y, paddingX, paddingY), buttonTex.texture); //TopCenter DrawImage(new Rectangle(location.X + sizePaddingX, location.Y, sizeCenterX, sizePaddingY), new Rectangle(buttonTex.UV.X + paddingX, buttonTex.UV.Y, centerX, paddingY), buttonTex.texture); //TopRight DrawImage(new Rectangle(location.X + sizeCenterX + sizePaddingX, location.Y, sizePaddingX, sizePaddingY), new Rectangle(buttonTex.UV.X + buttonTex.UV.Width - paddingX, buttonTex.UV.Y, paddingX, paddingY), buttonTex.texture); //CenterLeft DrawImage(new Rectangle(location.X, location.Y + sizePaddingY, sizePaddingX, sizeCenterY), new Rectangle(buttonTex.UV.X, buttonTex.UV.Y + paddingY, paddingX, centerY), buttonTex.texture); //CenterCenter DrawImage(new Rectangle(location.X + sizePaddingX, location.Y + sizePaddingY, sizeCenterX, sizeCenterY), new Rectangle(buttonTex.UV.X + paddingX, buttonTex.UV.Y + paddingY, centerX, centerY), buttonTex.texture); //CenterRight DrawImage(new Rectangle(location.X + sizeCenterX + sizePaddingX, location.Y + sizePaddingY, sizePaddingX, sizeCenterY), new Rectangle(buttonTex.UV.X + buttonTex.UV.Width - paddingX, buttonTex.UV.Y + paddingY, paddingX, centerY), buttonTex.texture); //BottomLeft DrawImage(new Rectangle(location.X, location.Y + sizePaddingY + sizeCenterY, sizePaddingX, sizePaddingY), new Rectangle(buttonTex.UV.X, buttonTex.UV.Y + centerY + paddingY, paddingX, paddingY), buttonTex.texture); //BottomCenter DrawImage(new Rectangle(location.X + sizePaddingX, location.Y + sizePaddingY + sizeCenterY, sizeCenterX, sizePaddingY), new Rectangle(buttonTex.UV.X + paddingX, buttonTex.UV.Y + centerY + paddingY, centerX, paddingY), buttonTex.texture); //BottomRight DrawImage(new Rectangle(location.X + sizeCenterX + sizePaddingX, location.Y + sizePaddingY + sizeCenterY, sizePaddingX, sizePaddingY), new Rectangle(buttonTex.UV.X + buttonTex.UV.Width - paddingX, buttonTex.UV.Y + centerY + paddingY, paddingX, paddingY), buttonTex.texture); }
public override void Draw() { if (base.screenVisible) { _size = UiStateManager.MeasureString(text); UiTexture img = TextureManager.GetUiUv("button_disabled"); UiStateManager.Draw9SplicedButton(img, this); //Draw the button if (enabled) { img = TextureManager.GetUiUv("button_neutral"); if (isHovered && Parent.FocusedComponent != null && Parent.FocusedComponent == this) { if (isClicked) { img = TextureManager.GetUiUv("button_clicked"); } else { img = TextureManager.GetUiUv("button_hover"); } } if (isSliding) { UiStateManager.Draw9SplicedButton(img, new Point(HandleWidth * GameSettings.UIScale, size.Y), new Point(FastMath.FastClamp(InputManager.MouseX + MouseOffset.X, location.X, location.X + size.X - HandleWidth * GameSettings.UIScale), location.Y)); } else { //location.X = component.location.X + % of slider value * component.size.X handleX = FastMath.FastClamp(location.X + (_value * size.X / (_maxValue - _minValue)), location.X, location.X + size.X - HandleWidth * GameSettings.UIScale); UiStateManager.Draw9SplicedButton(img, new Point(HandleWidth * GameSettings.UIScale, size.Y), new Point(handleX, location.Y)); } UiStateManager.DrawText(location.X + size.X / 2 - _size.X / 2, location.Y + size.Y / 2 - _size.Y / 2, buttonColor, text); } else { UiStateManager.Draw9SplicedButton(img, new Point(HandleWidth * GameSettings.UIScale, size.Y), new Point(FastMath.FastClamp(location.X + (_value * size.X / (_maxValue - _minValue)), location.X, location.X + size.X - HandleWidth * GameSettings.UIScale), location.Y)); UiStateManager.DrawText(location.X + size.X / 2 - _size.X / 2, location.Y + size.Y / 2 - _size.Y / 2, buttonDisabledColor, text); } } }
public override void Draw() { if (screenVisible) { //If the uiscale updated, redraw the text //Background image UiTexture img = TextureManager.GetUiUv("button_disabled"); UiStateManager.Draw9SplicedButton(img, this); //Check if we have text or we're focused if (text != "" || isEditing) { bool caretVisible = caretTimer * 2 % caretAnimationTime > 0.5f; DrawText(text, textColor, scrollPosition, caretPosition, caretVisible && isEditing); //Don't display the caret if we aren't editing } else { //Placeholder DrawText(placeholderText, placeholderColor, 0, -1, false); } } }
public static void Draw9SplicedButton(UiTexture buttonTex, Component component) { Draw9SplicedButton(buttonTex, component.size, component.location); }