magnificent-caravan-75149
03/13/2021, 5:18 PMbright-gpu-74537
03/13/2021, 5:32 PMbright-gpu-74537
03/13/2021, 5:32 PMxml
<vbox style="padding: 5px;">
<grid columns="2">
<custom-button text="Button 1" />
<custom-button text="Button 2" indicate="true" />
<custom-button text="Button 3" />
<custom-button text="Button 4" />
<custom-button text="Button 5" indicate="true" />
<custom-button text="Button 6" />
</grid>
</vbox>bright-gpu-74537
03/13/2021, 5:32 PMbright-gpu-74537
03/13/2021, 5:32 PMxml
<hbox style="spacing: 0">
<style>
#indicator {
background-color: none;
}
#indicator.indicate {
background-color: green;
}
</style>
<box id="indicator" height="100%" width="5" />
<button id="theButton" />
</hbox>bright-gpu-74537
03/13/2021, 5:32 PMbright-gpu-74537
03/13/2021, 5:33 PMhaxe
@:build(haxe.ui.macros.ComponentMacros.build("assets/custom-button.xml"))
class CustomButton extends HBox {
public function new() {
super();
}
public override function get_text():String {
return theButton.text;
}
public override function set_text(value:String):String {
theButton.text = value;
return value;
}
public var indicate(get, set):Bool;
private function get_indicate():Bool {
return indicator.hasClass("indicate");
}
private function set_indicate(value:Bool):Bool {
if (value == true) {
indicator.addClass("indicate");
} else {
indicator.removeClass("indicate");
}
return value;
}
}bright-gpu-74537
03/13/2021, 5:33 PMbright-gpu-74537
03/13/2021, 5:33 PMxml
<module>
<components>
<class package="custom" />
</components>
</module>bright-gpu-74537
03/13/2021, 5:33 PMmagnificent-caravan-75149
03/13/2021, 5:36 PMbright-gpu-74537
03/13/2021, 5:36 PMspacing: 0magnificent-caravan-75149
03/13/2021, 5:36 PMbright-gpu-74537
03/13/2021, 5:37 PMmagnificent-caravan-75149
03/13/2021, 5:37 PMbright-gpu-74537
03/13/2021, 5:38 PMvertical-spacing, horizontal-spacing or spacing for bothbright-gpu-74537
03/13/2021, 5:38 PMmagnificent-caravan-75149
03/13/2021, 5:39 PMbright-gpu-74537
03/13/2021, 5:40 PMmagnificent-caravan-75149
03/13/2021, 5:40 PMbright-gpu-74537
03/15/2021, 2:07 PMmagnificent-caravan-75149
03/15/2021, 4:22 PMpublic override function onClick(e:MouseEvent) {
return(theButton.onClick);
}magnificent-caravan-75149
03/15/2021, 4:22 PMbright-gpu-74537
03/15/2021, 4:24 PMtheButton.onClick = function(e) { this.dispatch(e) }bright-gpu-74537
03/15/2021, 4:25 PM@:bind(theButton, MouseEvent.CLICK)
function onTheButton(e) {
this.dispatch(e)
}bright-gpu-74537
03/15/2021, 4:26 PMmagnificent-caravan-75149
03/15/2021, 4:27 PMbright-gpu-74537
03/15/2021, 4:27 PMbright-gpu-74537
03/15/2021, 4:29 PMbright-gpu-74537
03/15/2021, 4:29 PMhaxe
var custom2 = mainView.findComponent("custom2", CustomButton);
custom2.onClick = function(e) {
trace("bob");
}