Files
LPTCManager2026/src/components/ToolBarToggleButton.hx
T
nekotoro a42a468070 Trying get rid of the scroll bars
- moved view classes instanciation into CREATION_COMPLETE triggered methods
2025-11-24 18:15:47 +01:00

79 lines
2.2 KiB
Haxe

package components;
import feathers.controls.ToggleButton;
import feathers.skins.RectangleSkin;
import feathers.text.TextFormat;
import format.SVG;
import model.Constants;
import openfl.display.Shape;
import openfl.events.Event;
import openfl.geom.ColorTransform;
import openfl.text.Font;
import openfl.utils.Assets;
import t9.util.ColorTraces.*;
class ToolbarToggleButton extends ToggleButton {
private var svgIconPath:String;
private var svgIcon:Shape;
private var unselectedColor:Int;
private var selectedColor:Int;
private var iconSize:Int;
private var textSize:Int;
public function new(pSvgIconPath:String = null,
pUnselectedColor:Int = 0x00FF00,
pSelectedColor:Int = 0x000000,
pIconSize:Int = 40,
pTextSize:Int = 16) {
super();
svgIconPath = pSvgIconPath;
unselectedColor = pSelectedColor;
selectedColor = pUnselectedColor;
iconSize = pIconSize;
textSize = pTextSize;
//traceRed("iconSize : " + iconSize + " / textSize : " + textSize);
}
override private function initialize():Void {
super.initialize();
iconPosition = TOP;
embedFonts = true;
backgroundSkin = new RectangleSkin(SolidColor( 0xFF0000, 0));
// icon
if(svgIconPath != null){
svgIcon = new Shape();
colorizeIcon(unselectedColor);
new SVG(svgIconPath).render(svgIcon.graphics);
icon = svgIcon;
icon.width = icon.height = iconSize;
iconOffsetY = 0;
}
// text
var fnt:Font = Assets.getFont(Constants.MONTSERRAT_REGULAR_400);
textFormat = new TextFormat(fnt.fontName, textSize, unselectedColor);
selectedTextFormat = new TextFormat(fnt.fontName, textSize, selectedColor);
addEventListener(Event.CHANGE, onButtonStateChange);
}
private function colorizeIcon(pColor:Int) {
var ct = new ColorTransform();
ct.color = pColor;
svgIcon.transform.colorTransform = ct;
}
private function onButtonStateChange(e:Event):Void {
selected ? colorizeIcon(selectedColor) : colorizeIcon(unselectedColor);
}
}