mirror of
https://github.com/aNNiMON/Own-Programming-Language-Tutorial.git
synced 2024-09-20 08:44:20 +03:00
Добавлен конвертор enumOrdinal
This commit is contained in:
parent
a0b6bc168d
commit
33f1057ebd
@ -29,6 +29,10 @@ public final class Converters {
|
|||||||
String apply();
|
String apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface VoidToEnumFunction<E extends Enum<E>> {
|
||||||
|
Enum<E> apply();
|
||||||
|
}
|
||||||
|
|
||||||
public interface BooleanToVoidFunction {
|
public interface BooleanToVoidFunction {
|
||||||
void apply(boolean b);
|
void apply(boolean b);
|
||||||
}
|
}
|
||||||
@ -89,6 +93,10 @@ public final class Converters {
|
|||||||
return new FunctionValue(args -> new StringValue(f.apply()));
|
return new FunctionValue(args -> new StringValue(f.apply()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static <E extends Enum<E>> FunctionValue enumOrdinal(VoidToEnumFunction<E> f) {
|
||||||
|
return new FunctionValue(args -> NumberValue.of(f.apply().ordinal()));
|
||||||
|
}
|
||||||
|
|
||||||
public static FunctionValue booleanToVoid(BooleanToVoidFunction f) {
|
public static FunctionValue booleanToVoid(BooleanToVoidFunction f) {
|
||||||
return new FunctionValue(args -> {
|
return new FunctionValue(args -> {
|
||||||
Arguments.check(1, args.length);
|
Arguments.check(1, args.length);
|
||||||
|
@ -689,17 +689,17 @@ public final class canvasfx implements Module {
|
|||||||
set("fillRoundRect", this::fillRoundRect);
|
set("fillRoundRect", this::fillRoundRect);
|
||||||
set("fillText", this::fillText);
|
set("fillText", this::fillText);
|
||||||
set("getFill", this::getFill);
|
set("getFill", this::getFill);
|
||||||
set("getFillRule", this::getFillRule);
|
set("getFillRule", enumOrdinal(graphics::getFillRule));
|
||||||
set("getGlobalAlpha", voidToDouble(graphics::getGlobalAlpha));
|
set("getGlobalAlpha", voidToDouble(graphics::getGlobalAlpha));
|
||||||
set("getGlobalBlendMode", this::getGlobalBlendMode);
|
set("getGlobalBlendMode", enumOrdinal(graphics::getGlobalBlendMode));
|
||||||
set("getLineCap", this::getLineCap);
|
set("getLineCap", enumOrdinal(graphics::getLineCap));
|
||||||
set("getLineDashOffset", voidToDouble(graphics::getLineDashOffset));
|
set("getLineDashOffset", voidToDouble(graphics::getLineDashOffset));
|
||||||
set("getLineJoin", this::getLineJoin);
|
set("getLineJoin", enumOrdinal(graphics::getLineJoin));
|
||||||
set("getLineWidth", voidToDouble(graphics::getLineWidth));
|
set("getLineWidth", voidToDouble(graphics::getLineWidth));
|
||||||
set("getMiterLimit", voidToDouble(graphics::getMiterLimit));
|
set("getMiterLimit", voidToDouble(graphics::getMiterLimit));
|
||||||
set("getStroke", this::getStroke);
|
set("getStroke", this::getStroke);
|
||||||
set("getTextAlign", this::getTextAlign);
|
set("getTextAlign", enumOrdinal(graphics::getTextAlign));
|
||||||
set("getTextBaseline", this::getTextBaseline);
|
set("getTextBaseline", enumOrdinal(graphics::getTextBaseline));
|
||||||
set("isPointInPath", this::isPointInPath);
|
set("isPointInPath", this::isPointInPath);
|
||||||
set("lineTo", double2ToVoid(graphics::lineTo));
|
set("lineTo", double2ToVoid(graphics::lineTo));
|
||||||
set("moveTo", double2ToVoid(graphics::moveTo));
|
set("moveTo", double2ToVoid(graphics::moveTo));
|
||||||
@ -846,34 +846,10 @@ public final class canvasfx implements Module {
|
|||||||
return new ColorValue((Color)graphics.getFill());
|
return new ColorValue((Color)graphics.getFill());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Value getFillRule(Value... args) {
|
|
||||||
return NumberValue.of(graphics.getFillRule().ordinal());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Value getGlobalBlendMode(Value... args) {
|
|
||||||
return NumberValue.of(graphics.getGlobalBlendMode().ordinal());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Value getLineCap(Value... args) {
|
|
||||||
return NumberValue.of(graphics.getLineCap().ordinal());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Value getLineJoin(Value... args) {
|
|
||||||
return NumberValue.of(graphics.getLineJoin().ordinal());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Value getStroke(Value... args) {
|
private Value getStroke(Value... args) {
|
||||||
return new ColorValue((Color)graphics.getStroke());
|
return new ColorValue((Color)graphics.getStroke());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Value getTextAlign(Value... args) {
|
|
||||||
return NumberValue.of(graphics.getTextAlign().ordinal());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Value getTextBaseline(Value... args) {
|
|
||||||
return NumberValue.of(graphics.getTextBaseline().ordinal());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Value isPointInPath(Value... args) {
|
private Value isPointInPath(Value... args) {
|
||||||
return NumberValue.fromBoolean(graphics.isPointInPath(args[0].asNumber(), args[1].asNumber()));
|
return NumberValue.fromBoolean(graphics.isPointInPath(args[0].asNumber(), args[1].asNumber()));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user