Files
LPTCManager2026/src/ui/LPTCTheme.hx
T
nekotoro ace49bf193 - added HProgressBar to RiderCardDrawer
- added Spacer class insted of padding & gap
2025-12-21 17:26:57 +01:00

227 lines
9.5 KiB
Haxe

package ui;
import feathers.controls.HProgressBar;
import feathers.controls.TextInputState;
import feathers.controls.TextInput;
import openfl.Assets;
import model.Constants;
import feathers.text.TextFormat;
import feathers.controls.ButtonState;
import feathers.skins.RectangleSkin;
import feathers.controls.Button;
import feathers.themes.ClassVariantTheme;
class LPTCTheme extends ClassVariantTheme {
public static final BUTTON_VARIANT_WHITE:String = "buttonVariantWhite";
public static final BUTTON_VARIANT_ORANGE:String = "buttonVariantOrange";
public static final TEXT_INPUT_VARIANT_SEARCH:String = "textInputVariantSearch";
public static final H_PROGRESS_BAR_VARIANT_INFO:String = "HProgressBarVariantInfo";
public static final H_PROGRESS_BAR_VARIANT_WARNING:String = "HProgressBarVariantWarning";
public static final H_PROGRESS_BAR_VARIANT_ALERT:String = "HProgressBarVariantAlert";
public static final H_PROGRESS_BAR_VARIANT_ALARM:String = "HProgressBarVariantAlarm";
public function new() {
super();
initialize();
}
private function initialize():Void {
// Buttons
styleProvider.setStyleFunction(Button, null, setButtonStyles);
styleProvider.setStyleFunction(Button, LPTCTheme.BUTTON_VARIANT_WHITE, setWhiteButtonStyles);
styleProvider.setStyleFunction(Button, LPTCTheme.BUTTON_VARIANT_ORANGE, setOrangeButtonStyles);
// TextInput
styleProvider.setStyleFunction(TextInput, LPTCTheme.TEXT_INPUT_VARIANT_SEARCH, setSearchTextInputStyles);
//HProgressBar
styleProvider.setStyleFunction(HProgressBar, LPTCTheme.H_PROGRESS_BAR_VARIANT_INFO, setHProgressBarInfoStyles);
styleProvider.setStyleFunction(HProgressBar, LPTCTheme.H_PROGRESS_BAR_VARIANT_WARNING, setHProgressBarWarningStyles);
styleProvider.setStyleFunction(HProgressBar, LPTCTheme.H_PROGRESS_BAR_VARIANT_ALERT, setHProgressBarAlertStyles);
styleProvider.setStyleFunction(HProgressBar, LPTCTheme.H_PROGRESS_BAR_VARIANT_ALARM, setHProgressBarAlarmStyles);
}
//############################################################### BUTTONS
private function setButtonStyles(button:Button):Void {
var backgroundSkin = new RectangleSkin();
backgroundSkin.border = SolidColor(1.0, Constants.HERO_COLOR);
backgroundSkin.fill = SolidColor(Constants.HERO_COLOR);
backgroundSkin.cornerRadius = Constants.GLOBAL_CORNER_RADIUS;
button.backgroundSkin = backgroundSkin;
var downSkin = new RectangleSkin();
downSkin.border = SolidColor(1.0, Constants.HERO_COLOR);
downSkin.fill = SolidColor(Constants.MAIN_COLOR3);
downSkin.cornerRadius = Constants.GLOBAL_CORNER_RADIUS;
button.setSkinForState(ButtonState.DOWN, downSkin);
var format = new TextFormat(Assets.getFont(Constants.MONTSERRAT_MEDIUM_500).fontName, Constants.FONT_SIZE_14, Constants.MAIN_COLOR3);
button.textFormat = format;
var downFormat = new TextFormat(Assets.getFont(Constants.MONTSERRAT_MEDIUM_500).fontName, Constants.FONT_SIZE_14, Constants.HERO_COLOR);
button.setTextFormatForState(ButtonState.DOWN, downFormat);
button.paddingLeft = button.paddingRight = 10;
button.paddingTop = button.paddingBottom = 5;
button.iconOffsetX = Constants.GLOBAL_BUTTON_ICON_OFFSET;
}
private function setWhiteButtonStyles(button:Button):Void {
var backgroundSkin = new RectangleSkin();
backgroundSkin.border = SolidColor(1.0, Constants.HERO_COLOR);
backgroundSkin.fill = SolidColor(Constants.MAIN_COLOR3);
backgroundSkin.cornerRadius = Constants.GLOBAL_CORNER_RADIUS;
button.backgroundSkin = backgroundSkin;
var downSkin = new RectangleSkin();
downSkin.border = SolidColor(1.0, Constants.HERO_COLOR);
downSkin.fill = SolidColor(Constants.HERO_COLOR);
downSkin.cornerRadius = Constants.GLOBAL_CORNER_RADIUS;
button.setSkinForState(ButtonState.DOWN, downSkin);
var format = new TextFormat(Assets.getFont(Constants.MONTSERRAT_MEDIUM_500).fontName, Constants.FONT_SIZE_14, Constants.HERO_COLOR);
button.textFormat = format;
var downFormat = new TextFormat(Assets.getFont(Constants.MONTSERRAT_MEDIUM_500).fontName, Constants.FONT_SIZE_14, Constants.MAIN_COLOR3);
button.setTextFormatForState(ButtonState.DOWN, downFormat);
button.paddingLeft = button.paddingRight = 10;
button.paddingTop = button.paddingBottom = 5;
button.iconOffsetX = Constants.GLOBAL_BUTTON_ICON_OFFSET;
}
private function setOrangeButtonStyles(button:Button):Void {
var backgroundSkin = new RectangleSkin();
backgroundSkin.border = SolidColor(1.0, Constants.ACCENT_COLOR2);
backgroundSkin.fill = SolidColor(Constants.ACCENT_COLOR2);
backgroundSkin.cornerRadius = Constants.GLOBAL_CORNER_RADIUS;
button.backgroundSkin = backgroundSkin;
var downSkin = new RectangleSkin();
downSkin.border = SolidColor(1.0, Constants.ACCENT_COLOR2);
downSkin.fill = SolidColor(Constants.MAIN_COLOR3);
downSkin.cornerRadius = Constants.GLOBAL_CORNER_RADIUS;
button.setSkinForState(ButtonState.DOWN, downSkin);
var format = new TextFormat(Assets.getFont(Constants.MONTSERRAT_MEDIUM_500).fontName, Constants.FONT_SIZE_14, Constants.HERO_COLOR);
button.textFormat = format;
var downFormat = new TextFormat(Assets.getFont(Constants.MONTSERRAT_MEDIUM_500).fontName, Constants.FONT_SIZE_14, Constants.MAIN_COLOR3);
button.setTextFormatForState(ButtonState.DOWN, downFormat);
button.paddingLeft = button.paddingRight = 10;
button.paddingTop = button.paddingBottom = 5;
button.iconOffsetX = Constants.GLOBAL_BUTTON_ICON_OFFSET;
}
//############################################################### TEXT INPUT
private function setSearchTextInputStyles(pTextInput:TextInput):Void {
var backgroundSkin = new RectangleSkin();
backgroundSkin.border = SolidColor(1, Constants.MAIN_COLOR3, .1);
backgroundSkin.fill = SolidColor(Constants.MAIN_COLOR3, 0.1);
backgroundSkin.cornerRadius = Constants.GLOBAL_CORNER_RADIUS;
pTextInput.backgroundSkin = backgroundSkin;
var disabledSkin = new RectangleSkin();
disabledSkin.border = SolidColor(1, Constants.MAIN_COLOR3, .1);
disabledSkin.fill = SolidColor(Constants.MAIN_COLOR3, 0.1);
disabledSkin.cornerRadius = Constants.GLOBAL_CORNER_RADIUS;
pTextInput.setSkinForState(TextInputState.DISABLED, disabledSkin);
var focusSkin = new RectangleSkin();
focusSkin.border = SolidColor(1, Constants.MAIN_COLOR3, .8);
focusSkin.fill = SolidColor(Constants.MAIN_COLOR3, 0.2);
focusSkin.cornerRadius = Constants.GLOBAL_CORNER_RADIUS;
pTextInput.setSkinForState(TextInputState.FOCUSED, focusSkin);
var format:TextFormat = new TextFormat(Assets.getFont(Constants.MONTSERRAT_MEDIUM_500).fontName, Constants.FONT_SIZE_14, Constants.MAIN_COLOR3);
pTextInput.textFormat = format;
var disabledFormat:TextFormat = new TextFormat(Assets.getFont(Constants.MONTSERRAT_MEDIUM_500).fontName, Constants.FONT_SIZE_14, Constants.MAIN_COLOR3);
pTextInput.setTextFormatForState(TextInputState.DISABLED, disabledFormat);
var focusFormat:TextFormat = new TextFormat(Assets.getFont(Constants.MONTSERRAT_MEDIUM_500).fontName, Constants.FONT_SIZE_14, Constants.MAIN_COLOR3);
pTextInput.setTextFormatForState(TextInputState.FOCUSED, focusFormat);
pTextInput.paddingLeft = pTextInput.paddingRight = 10;
pTextInput.paddingTop = pTextInput.paddingBottom = 5;
pTextInput.embedFonts = true;
}
//############################################################### PROGRESS BAR
private function setHProgressBarInfoStyles(pHProgrssBar:HProgressBar):Void {
var backgroundSkin = new RectangleSkin();
backgroundSkin.border = null;
backgroundSkin.fill = SolidColor(Constants.MAIN_COLOR1, .2);
backgroundSkin.height = 10;
backgroundSkin.cornerRadius = 4;
pHProgrssBar.backgroundSkin = backgroundSkin;
var fillSkin = new RectangleSkin();
fillSkin.border = null;
fillSkin.fill = SolidColor(Constants.INFO);
backgroundSkin.height = 10;
fillSkin.cornerRadius = 4;
pHProgrssBar.fillSkin = fillSkin;
}
private function setHProgressBarWarningStyles(pHProgrssBar:HProgressBar):Void {
var backgroundSkin = new RectangleSkin();
backgroundSkin.border = null;
backgroundSkin.fill = SolidColor(Constants.MAIN_COLOR1, .2);
backgroundSkin.height = 10;
backgroundSkin.cornerRadius = 4;
pHProgrssBar.backgroundSkin = backgroundSkin;
var fillSkin = new RectangleSkin();
fillSkin.border = null;
fillSkin.fill = SolidColor(Constants.WARNING);
backgroundSkin.height = 10;
fillSkin.cornerRadius = 4;
pHProgrssBar.fillSkin = fillSkin;
}
private function setHProgressBarAlertStyles(pHProgrssBar:HProgressBar):Void {
var backgroundSkin = new RectangleSkin();
backgroundSkin.border = null;
backgroundSkin.fill = SolidColor(Constants.MAIN_COLOR1, .2);
backgroundSkin.height = 10;
backgroundSkin.cornerRadius = 4;
pHProgrssBar.backgroundSkin = backgroundSkin;
var fillSkin = new RectangleSkin();
fillSkin.border = null;
fillSkin.fill = SolidColor(Constants.ALERT);
backgroundSkin.height = 10;
fillSkin.cornerRadius = 4;
pHProgrssBar.fillSkin = fillSkin;
}
private function setHProgressBarAlarmStyles(pHProgrssBar:HProgressBar):Void {
var backgroundSkin = new RectangleSkin();
backgroundSkin.border = null;
backgroundSkin.fill = SolidColor(Constants.MAIN_COLOR1, .2);
backgroundSkin.height = 10;
backgroundSkin.cornerRadius = 4;
pHProgrssBar.backgroundSkin = backgroundSkin;
var fillSkin = new RectangleSkin();
fillSkin.border = null;
fillSkin.fill = SolidColor(Constants.ALARM);
backgroundSkin.height = 10;
fillSkin.cornerRadius = 4;
pHProgrssBar.fillSkin = fillSkin;
}
}