From 2a5bd24cd5650271152de0b7d53efe6533babc76 Mon Sep 17 00:00:00 2001 From: Daniil-SV Date: Mon, 3 Apr 2023 12:28:46 +0300 Subject: [PATCH] new TextField align. Some changes in Matrix2x3 and ColorTransform. --- .../SupercellFlashNapi/objects/TextField.cpp | 126 ++++++++++++------ .../SupercellFlashNapi/objects/TextField.h | 2 +- .../transformation/ColorTransform.cpp | 14 +- .../transformation/Matrix2x3.cpp | 11 +- deps/SC | 2 +- src/index.ts | 1 + .../SupercellFlash/objects/TextField.ts | 11 +- src/node/SupercellFlash/index.ts | 1 + 8 files changed, 100 insertions(+), 68 deletions(-) diff --git a/bindings/SupercellFlashNapi/objects/TextField.cpp b/bindings/SupercellFlashNapi/objects/TextField.cpp index a2ee359..f0b9464 100644 --- a/bindings/SupercellFlashNapi/objects/TextField.cpp +++ b/bindings/SupercellFlashNapi/objects/TextField.cpp @@ -49,7 +49,7 @@ namespace scNapi Utils::initializeClass(this, info); }; - /* + /* & Id */ @@ -66,10 +66,12 @@ namespace scNapi & Text */ - void TextField::set_Text(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_Text(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->text(ToNativeValue(value)); } - Napi::Value TextField::get_Text(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_Text(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->text()); } @@ -77,10 +79,12 @@ namespace scNapi & Font name */ - void TextField::set_FontName(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_FontName(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->fontName(ToNativeValue(value)); } - Napi::Value TextField::get_FontName(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_FontName(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->fontName()); } @@ -88,10 +92,12 @@ namespace scNapi & Font color */ - void TextField::set_FontColor(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_FontColor(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->fontColor(ToNativeValue(value)); } - Napi::Value TextField::get_FontColor(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_FontColor(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->fontColor()); } @@ -99,10 +105,12 @@ namespace scNapi & Font size */ - void TextField::set_FontSize(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_FontSize(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->fontSize(ToNativeValue(value)); } - Napi::Value TextField::get_FontSize(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_FontSize(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->fontSize()); } @@ -110,21 +118,25 @@ namespace scNapi & Font align */ - void TextField::set_FontAlign(const Napi::CallbackInfo& info, const Napi::Value& value) { - parent->fontAlign(ToNativeValue(value)); + void TextField::set_FontAlign(const Napi::CallbackInfo& info, const Napi::Value& value) + { + parent->fontAlign((sc::TextField::Align)ToNativeValue(value)); } - Napi::Value TextField::get_FontAlign(const Napi::CallbackInfo& info) { - return ToJSValue(info, parent->fontAlign()); + Napi::Value TextField::get_FontAlign(const Napi::CallbackInfo& info) + { + return ToJSValue(info, (uint8_t)parent->fontAlign()); } /* & Left */ - void TextField::set_Left(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_Left(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->left(ToNativeValue(value)); } - Napi::Value TextField::get_Left(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_Left(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->left()); } @@ -132,10 +144,12 @@ namespace scNapi & Top */ - void TextField::set_Top(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_Top(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->top(ToNativeValue(value)); } - Napi::Value TextField::get_Top(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_Top(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->top()); } @@ -143,10 +157,12 @@ namespace scNapi & Right */ - void TextField::set_Right(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_Right(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->right(ToNativeValue(value)); } - Napi::Value TextField::get_Right(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_Right(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->right()); } @@ -154,10 +170,12 @@ namespace scNapi & Bottom */ - void TextField::set_Bottom(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_Bottom(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->bottom(ToNativeValue(value)); } - Napi::Value TextField::get_Bottom(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_Bottom(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->bottom()); } @@ -165,10 +183,12 @@ namespace scNapi & IsBold */ - void TextField::set_IsBold(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_IsBold(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->isBold(ToNativeValue(value)); } - Napi::Value TextField::get_IsBold(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_IsBold(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->isBold()); } @@ -176,10 +196,12 @@ namespace scNapi & IsItalic */ - void TextField::set_IsItalic(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_IsItalic(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->isItalic(ToNativeValue(value)); } - Napi::Value TextField::get_IsItalic(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_IsItalic(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->isItalic()); } @@ -187,10 +209,12 @@ namespace scNapi & IsMultiline */ - void TextField::set_IsMultiline(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_IsMultiline(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->isMultiline(ToNativeValue(value)); } - Napi::Value TextField::get_IsMultiline(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_IsMultiline(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->isMultiline()); } @@ -198,10 +222,12 @@ namespace scNapi & IsOutlined */ - void TextField::set_IsOutlined(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_IsOutlined(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->isOutlined(ToNativeValue(value)); } - Napi::Value TextField::get_IsOutlined(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_IsOutlined(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->isOutlined()); } @@ -209,10 +235,12 @@ namespace scNapi & IsDynamic */ - void TextField::set_IsDynamic(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_IsDynamic(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->isDynamic(ToNativeValue(value)); } - Napi::Value TextField::get_IsDynamic(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_IsDynamic(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->isDynamic()); } @@ -220,10 +248,12 @@ namespace scNapi & UseDeviceFont */ - void TextField::set_OutlineColor(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_OutlineColor(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->outlineColor(ToNativeValue(value)); } - Napi::Value TextField::get_OutlineColor(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_OutlineColor(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->outlineColor()); } @@ -231,10 +261,12 @@ namespace scNapi & UseDeviceFont */ - void TextField::set_UseDeviceFont(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_UseDeviceFont(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->useDeviceFont(ToNativeValue(value)); } - Napi::Value TextField::get_UseDeviceFont(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_UseDeviceFont(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->useDeviceFont()); } @@ -242,10 +274,12 @@ namespace scNapi & AdjustFontBounds */ - void TextField::set_AutoAdjustFontSize(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_AutoAdjustFontSize(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->autoAdjustFontSize(ToNativeValue(value)); } - Napi::Value TextField::get_AutoAdjustFontSize(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_AutoAdjustFontSize(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->autoAdjustFontSize()); } @@ -253,10 +287,12 @@ namespace scNapi & unknownFlag */ - void TextField::set_UnknownFlag(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_UnknownFlag(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->unknownFlag(ToNativeValue(value)); } - Napi::Value TextField::get_UnknownFlag(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_UnknownFlag(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->unknownFlag()); } @@ -264,10 +300,12 @@ namespace scNapi & unknownShort */ - void TextField::set_UnknownShort(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_UnknownShort(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->unknownShort(ToNativeValue(value)); } - Napi::Value TextField::get_UnknownShort(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_UnknownShort(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->unknownShort()); } @@ -275,10 +313,12 @@ namespace scNapi & unknownShort2 */ - void TextField::set_UnknownShort2(const Napi::CallbackInfo& info, const Napi::Value& value) { + void TextField::set_UnknownShort2(const Napi::CallbackInfo& info, const Napi::Value& value) + { parent->unknownShort2(ToNativeValue(value)); } - Napi::Value TextField::get_UnknownShort2(const Napi::CallbackInfo& info) { + Napi::Value TextField::get_UnknownShort2(const Napi::CallbackInfo& info) + { return ToJSValue(info, parent->unknownShort2()); } diff --git a/bindings/SupercellFlashNapi/objects/TextField.h b/bindings/SupercellFlashNapi/objects/TextField.h index b84ed43..6b143b4 100644 --- a/bindings/SupercellFlashNapi/objects/TextField.h +++ b/bindings/SupercellFlashNapi/objects/TextField.h @@ -43,7 +43,7 @@ namespace scNapi } if (object.Has("fontAlign")){ - parent->fontAlign(ToNativeValue(object.Get("fontAlign"))); + parent->fontAlign((sc::TextField::Align)ToNativeValue(object.Get("fontAlign"))); } if (object.Has("left")){ diff --git a/bindings/SupercellFlashNapi/transformation/ColorTransform.cpp b/bindings/SupercellFlashNapi/transformation/ColorTransform.cpp index 8b477e9..d46db5f 100644 --- a/bindings/SupercellFlashNapi/transformation/ColorTransform.cpp +++ b/bindings/SupercellFlashNapi/transformation/ColorTransform.cpp @@ -34,18 +34,8 @@ namespace scNapi Napi::Value ColorTransform::equal(const Napi::CallbackInfo& info) { sc::ColorTransform* color = ColorTransform::Unwrap(info[0].ToObject())->get_parent(); - - if (floatEqual(color->alpha, parent->alpha) && - floatEqual(color->blueAdd, parent->blueAdd) && - floatEqual(color->blueMul, parent->blueMul) && - floatEqual(color->greenAdd, parent->greenAdd) && - floatEqual(color->greenMul, parent->greenMul) && - floatEqual(color->redAdd, parent->redAdd) && - floatEqual(color->redMul, parent->redMul)) { - return ToJSValue(info, true); - } - - return ToJSValue(info, false); + bool res = parent->equal(*color); + return ToJSValue(info, res); } /* Red add */ diff --git a/bindings/SupercellFlashNapi/transformation/Matrix2x3.cpp b/bindings/SupercellFlashNapi/transformation/Matrix2x3.cpp index 5cff92d..d3da932 100644 --- a/bindings/SupercellFlashNapi/transformation/Matrix2x3.cpp +++ b/bindings/SupercellFlashNapi/transformation/Matrix2x3.cpp @@ -32,16 +32,9 @@ namespace scNapi Napi::Value Matrix2x3::equal(const Napi::CallbackInfo& info) { sc::Matrix2x3* matrix = Matrix2x3::Unwrap(info[0].ToObject())->get_parent(); - if (floatEqual(parent->a, matrix->a) && - floatEqual(parent->b, matrix->b) && - floatEqual(parent->c, matrix->c) && - floatEqual(parent->d, matrix->d) && - floatEqual(parent->tx, matrix->tx) && - floatEqual(parent->ty, matrix->ty)) { - return ToJSValue(info, true); - } + bool res = parent->equal(*matrix); - return ToJSValue(info, false); + return ToJSValue(info, res); } /* diff --git a/deps/SC b/deps/SC index 075e020..7721b1e 160000 --- a/deps/SC +++ b/deps/SC @@ -1 +1 @@ -Subproject commit 075e02061eadd4f856a2ad8fe4e9f53c339c8155 +Subproject commit 7721b1eed5b3a5ee9abbd94283fea6eebe3dfbb8 diff --git a/src/index.ts b/src/index.ts index ecb2188..7c8fd47 100644 --- a/src/index.ts +++ b/src/index.ts @@ -11,6 +11,7 @@ export { ShapeDrawBitmapCommand, ShapeDrawCommandVertex, TextField, + TextFieldAlign, MatrixBank, Matrix2x3, ColorTransform, diff --git a/src/native/declares/SupercellFlash/objects/TextField.ts b/src/native/declares/SupercellFlash/objects/TextField.ts index 80df7f5..d8dcd70 100644 --- a/src/native/declares/SupercellFlash/objects/TextField.ts +++ b/src/native/declares/SupercellFlash/objects/TextField.ts @@ -1,5 +1,12 @@ import { DisplayObject } from "./DisplayObject"; +export enum TextFieldAlign { + Left, + Center, + Right, + Justify, +} + export declare class TextField extends DisplayObject { constructor(obj?: { id?: number; @@ -7,7 +14,7 @@ export declare class TextField extends DisplayObject { fontName?: string; fontColor?: number; fontSize?: number; - fontAlign?: number; + fontAlign?: TextFieldAlign; left?: number; top?: number; right?: number; @@ -32,7 +39,7 @@ export declare class TextField extends DisplayObject { fontSize: number; - fontAlign: number; + fontAlign: TextFieldAlign; left: number; diff --git a/src/node/SupercellFlash/index.ts b/src/node/SupercellFlash/index.ts index a45690d..95dbea0 100644 --- a/src/node/SupercellFlash/index.ts +++ b/src/node/SupercellFlash/index.ts @@ -17,5 +17,6 @@ export * from "./transformation/ColorTransform"; export * from "./objects/MovieClip"; +export { TextFieldAlign } from "../../native/declares"; export { ModifierType, Filters, PixelFormat } from "../../native/declares"; export type { ScalingGrid } from "../../native/declares";