[gui] add SizeValue wrapper
This commit is contained in:
@@ -1,11 +1,8 @@
|
|||||||
package haxework.gui;
|
package haxework.gui;
|
||||||
|
|
||||||
import haxework.gui.skin.ISkin.SkinSet;
|
|
||||||
|
|
||||||
class ToggleButtonView extends ButtonView {
|
class ToggleButtonView extends ButtonView {
|
||||||
|
|
||||||
public var on(default, set):Bool;
|
public var on(default, set):Bool;
|
||||||
public var onSkin(default, set):SkinSet;
|
|
||||||
|
|
||||||
public var onText(default, set):String;
|
public var onText(default, set):String;
|
||||||
|
|
||||||
@@ -19,16 +16,6 @@ class ToggleButtonView extends ButtonView {
|
|||||||
return on;
|
return on;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function set_onSkin(value:SkinSet):SkinSet {
|
|
||||||
onSkin = value;
|
|
||||||
toRedraw();
|
|
||||||
return onSkin;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function currentSkin():SkinSet {
|
|
||||||
return on ? onSkin : skin;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function set_onText(value:String):String {
|
private function set_onText(value:String):String {
|
||||||
if (onText != value) {
|
if (onText != value) {
|
||||||
onText = value;
|
onText = value;
|
||||||
|
|||||||
@@ -5,28 +5,26 @@ enum SizeValue {
|
|||||||
PERCENT(value:Float);
|
PERCENT(value:Float);
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract SValue(String) {
|
abstract ASizeValue(SizeValue) {
|
||||||
public var percent(get, never):Bool;
|
|
||||||
public var value(get, never):Float;
|
|
||||||
|
|
||||||
inline public function new(value:String) {
|
public inline function new(value:SizeValue) {
|
||||||
this = value;
|
this = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline private function get_percent():Bool {
|
@:from static public inline function fromFloat(value:Float):ASizeValue {
|
||||||
return this.substr(this.length - 1) == "%";
|
return new ASizeValue(FIXED(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline private function get_value():Float {
|
@:from static public inline function fromString(value:String):ASizeValue {
|
||||||
return Std.parseFloat(this);
|
if (value.substr(value.length - 1) == "%") {
|
||||||
|
return new ASizeValue(PERCENT(Std.parseFloat(value)));
|
||||||
|
} else {
|
||||||
|
return new ASizeValue(FIXED(Std.parseFloat(value)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@:from static public inline function fromFloat(value:Float):SValue {
|
@:to public inline function toSizeValue():SizeValue {
|
||||||
return new SValue('$value');
|
return this;
|
||||||
}
|
|
||||||
|
|
||||||
@:from static public inline function fromString(value:String):SValue {
|
|
||||||
return new SValue(value);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,8 +34,8 @@ class SizeSet {
|
|||||||
public var percent(default, default):Size;
|
public var percent(default, default):Size;
|
||||||
public var stretch(null, set):Bool;
|
public var stretch(null, set):Bool;
|
||||||
|
|
||||||
public var width(null, set):SValue;
|
public var width(null, set):ASizeValue;
|
||||||
public var height(null, set):SValue;
|
public var height(null, set):ASizeValue;
|
||||||
|
|
||||||
public function new() {
|
public function new() {
|
||||||
this.content = [];
|
this.content = [];
|
||||||
@@ -50,20 +48,18 @@ class SizeSet {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline private function set_width(value:SValue):SValue {
|
inline private function set_width(value:ASizeValue):ASizeValue {
|
||||||
if (value.percent) {
|
switch cast(value, SizeValue) {
|
||||||
percent.width = value.value;
|
case PERCENT(v): percent.width = v;
|
||||||
} else {
|
case FIXED(v): fixed.width = v;
|
||||||
fixed.width = value.value;
|
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline private function set_height(value:SValue):SValue {
|
inline private function set_height(value:ASizeValue):ASizeValue {
|
||||||
if (value.percent) {
|
switch cast(value, SizeValue) {
|
||||||
percent.height = value.value;
|
case PERCENT(v): percent.height = v;
|
||||||
} else {
|
case FIXED(v): fixed.height = v;
|
||||||
fixed.height = value.value;
|
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user