feat(app): use display size types

This commit is contained in:
2024-01-09 00:40:30 +03:00
parent ac1b9b63a2
commit 2370c9c2b4
5 changed files with 24 additions and 20 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "puzzlez", "name": "puzzlez",
"version": "0.4.4", "version": "0.5.0",
"private": true, "private": true,
"devDependencies": { "devDependencies": {
"dateformat": "^3.0.3", "dateformat": "^3.0.3",
@@ -13,7 +13,7 @@
"yargs": "^13.2.4" "yargs": "^13.2.4"
}, },
"haxeDependencies": { "haxeDependencies": {
"haxework": "2.0.0", "haxework": "2.1.0",
"lime": "8.0.0", "lime": "8.0.0",
"openfl": "9.2.0", "openfl": "9.2.0",
"hxcpp": "4.2.1", "hxcpp": "4.2.1",

View File

@@ -22,7 +22,7 @@ class PuzzlezTheme extends Theme {
]; ];
public function new() { public function new() {
super({embed: true}, {light: "gray"}, {base: Device.isMobile() ? 32 : 22}); super({embed: true}, {light: "gray"}, {base: "4h"});
register(new Style("frame", [ register(new Style("frame", [
"geometry.padding" => Box.fromFloat(8), "geometry.padding" => Box.fromFloat(8),
])); ]));
@@ -30,18 +30,15 @@ class PuzzlezTheme extends Theme {
"skin.background.color" => colors.light, "skin.background.color" => colors.light,
"skin.border.color" => colors.border, "skin.border.color" => colors.border,
"geometry.padding" => Box.fromFloat(3), "geometry.padding" => Box.fromFloat(3),
"geometry.width" => SizeValue.fromInt(320), "geometry.width" => SizeValue.fromString("50h"),
"geometry.height" => SizeValue.fromInt(240), "geometry.height" => SizeValue.fromString("40h"),
])); ]));
register(new Style("text.error", [ register(new Style("text.error", [
"font.color" => Color.fromString("red"), "font.color" => Color.fromString("red"),
], "text")); ], "text"));
var size = Device.isMobile() ? 72 : 42;
var smallSize = Device.isMobile() ? 64 : 32;
register(new Style("icon", [ register(new Style("icon", [
"geometry.width" => SizeValue.fromInt(size), "geometry.width" => SizeValue.fromString("8h"),
"geometry.height" => SizeValue.fromInt(size), "geometry.height" => SizeValue.fromString("8h"),
"skin" => function() return new ButtonSVGSkin(), "skin" => function() return new ButtonSVGSkin(),
"skin.color" => colors.light, "skin.color" => colors.light,
])); ]));
@@ -51,8 +48,8 @@ class PuzzlezTheme extends Theme {
])); ]));
} }
register(new Style("icon.small", [ register(new Style("icon.small", [
"geometry.width" => SizeValue.fromInt(smallSize), "geometry.width" => SizeValue.fromString("6h"),
"geometry.height" => SizeValue.fromInt(smallSize), "geometry.height" => SizeValue.fromString("6h"),
])); ]));
register(new Style("icon.red", [ register(new Style("icon.red", [
"skin.color" => 0xcc0000, "skin.color" => 0xcc0000,
@@ -74,10 +71,14 @@ class PuzzlezTheme extends Theme {
], "button")); ], "button"));
register(new Style("label.header", [ register(new Style("label.header", [
"font.size" => 36, "font.size" => SizeValue.fromString("5h"),
"geometry.hAlign" => HAlign.CENTER, "geometry.hAlign" => HAlign.CENTER,
"geometry.margin.top" => 10, "geometry.margin.top" => 10,
"geometry.margin.bottom" => 10, "geometry.margin.bottom" => 10,
], "label")); ], "label"));
register(new Style("button.background", [
"geometry.width" => SizeValue.fromString("10h"),
"geometry.height" => SizeValue.fromString("10h"),
]));
} }
} }

View File

@@ -29,6 +29,7 @@ views:
geometry.margin.left: 15 geometry.margin.left: 15
text: Network text: Network
+onPress: ~start(true) +onPress: ~start(true)
visible: false
- id: image - id: image
$type: ru.m.puzzlez.view.common.PresetView $type: ru.m.puzzlez.view.common.PresetView
geometry.stretch: true geometry.stretch: true

View File

@@ -1,18 +1,18 @@
package ru.m.puzzlez.view.popup; package ru.m.puzzlez.view.popup;
import hw.color.Color; import hw.color.Color;
import hw.view.SpriteView;
import hw.view.data.DataView; import hw.view.data.DataView;
import hw.view.form.ButtonView; import hw.view.form.ButtonView;
import hw.view.popup.PopupView; import hw.view.popup.PopupView;
import hw.view.skin.Skin; import hw.view.skin.Skin;
import hw.view.SpriteView;
import hw.view.utils.DrawUtil; import hw.view.utils.DrawUtil;
import openfl.Assets; import openfl.Assets;
import openfl.utils.AssetType; import openfl.utils.AssetType;
import promhx.Promise; import promhx.Promise;
import ru.m.puzzlez.image.ImageData;
import ru.m.puzzlez.proto.game.ImageId; import ru.m.puzzlez.proto.game.ImageId;
import ru.m.puzzlez.render.Background; import ru.m.puzzlez.render.Background;
// import ru.m.puzzlez.settings.ImageStorage;
@:singleton @:template class BackgroundPopup extends PopupView<Background> { @:singleton @:template class BackgroundPopup extends PopupView<Background> {
@@ -64,10 +64,10 @@ import ru.m.puzzlez.render.Background;
case COLOR(color): case COLOR(color):
selectedView.skin = Skin.color(color); selectedView.skin = Skin.color(color);
case IMAGE(id): case IMAGE(id):
/*imageStorage.resolve(id).then(result -> { ImageData.fromImageId(id).resolve().then(result -> {
selectedView.skin = Skin.bitmap(result, REPEAT); selectedView.skin = Skin.bitmap(result, REPEAT);
selectedView.toRedraw(); selectedView.toRedraw();
});*/ });
} }
selectedView.toRedraw(); selectedView.toRedraw();
return selected; return selected;
@@ -75,6 +75,7 @@ import ru.m.puzzlez.render.Background;
private function colorButtonFactory(index:Int, color:Color):ButtonView { private function colorButtonFactory(index:Int, color:Color):ButtonView {
var result = new ButtonView(); var result = new ButtonView();
result.style = "button.background";
result.text = " "; result.text = " ";
result.skin = Skin.buttonColor(color); result.skin = Skin.buttonColor(color);
return result; return result;
@@ -82,6 +83,7 @@ import ru.m.puzzlez.render.Background;
private function textureButtonFactory(index:Int, imageId:ImageId):ButtonView { private function textureButtonFactory(index:Int, imageId:ImageId):ButtonView {
var result = new ButtonView(); var result = new ButtonView();
result.style = "button.background";
result.text = " "; result.text = " ";
result.skin = Skin.buttonBitmap(Assets.getBitmapData(imageId.id), REPEAT); result.skin = Skin.buttonBitmap(Assets.getBitmapData(imageId.id), REPEAT);
return result; return result;

View File

@@ -1,8 +1,8 @@
--- ---
view: view:
$type: hw.view.group.VGroupView $type: hw.view.group.VGroupView
geometry.width: 660 geometry.width: "100h"
geometry.height: 200 geometry.height: "90h"
geometry.padding: 10 geometry.padding: 10
geometry.hAlign: center geometry.hAlign: center
geometry.vAlign: middle geometry.vAlign: middle
@@ -19,7 +19,7 @@ view:
- id: selected - id: selected
$type: hw.view.SpriteView $type: hw.view.SpriteView
geometry.width: 100% geometry.width: 100%
geometry.height: 200 geometry.height: "40h"
- id: colors - id: colors
$type: hw.view.data.DataView $type: hw.view.data.DataView
factory: ~colorButtonFactory factory: ~colorButtonFactory