[client] update to haxework

This commit is contained in:
2019-07-13 16:14:54 +03:00
parent 670a11d6ba
commit 5fe307a218
34 changed files with 235 additions and 259 deletions

View File

@@ -1,11 +1,15 @@
package ru.m.tankz; package ru.m.tankz;
import haxework.view.core.Geometry; import haxework.view.geometry.Geometry;
import haxework.view.core.HAlign; import haxework.view.geometry.HAlign;
import haxework.view.core.VAlign; import haxework.view.geometry.VAlign;
import haxework.view.layout.Layout; import haxework.view.layout.Layout;
import haxework.view.skin.Skin; import haxework.view.skin.Skin;
import haxework.view.skin.SpriteSkin;
import haxework.view.theme.GeometryStyle;
import haxework.view.theme.ITheme; import haxework.view.theme.ITheme;
import haxework.view.theme.LayoutStyle;
import haxework.view.theme.SkinStyle;
import haxework.view.theme.Theme; import haxework.view.theme.Theme;
import openfl.Assets; import openfl.Assets;
import ru.m.skin.ButtonSVGSkin; import ru.m.skin.ButtonSVGSkin;
@@ -27,85 +31,52 @@ class AppTheme extends Theme {
override private function reload():Void { override private function reload():Void {
super.reload(); super.reload();
data.put("light", [ styles.put("light", [
Skin.color(colors.light), new SkinStyle(Skin.color(colors.light)),
]); ]);
data.put("dark", [ styles.put("dark", [
Skin.color(colors.dark), new SkinStyle(Skin.color(colors.dark)),
]);
data.put("font", [
Skin.text(colors.text, 0, font.name, font.embed),
]);
data.put("text", [
Skin.text(colors.text, baseFontSize, font.name, font.embed),
]);
data.put("scroll.vertical", [
Skin.scrollVertical(colors.light, colors.dark),
]);
data.put("text.header", [
Skin.color(0x000000, 0.1),
Skin.border(colors.light, 1, 2),
Skin.text(colors.text, bigFontSize, font.name, font.embed),
Skin.geometry(new Geometry().setPadding([50, 8]).setMargin([0, 0, 0, 30])),
]);
data.put("button.menu", [
Skin.buttonColor(colors.light),
Skin.text(colors.text, bigFontSize, font.name, font.embed),
Skin.size(250, 50),
]);
data.put("text.box", [
Skin.color(0x000000, 0.1),
Skin.border(colors.light, 1, 2),
Skin.text(colors.text, baseFontSize, font.name, font.embed),
]);
data.put("text.box.active", [
Skin.color(0x55aa55),
Skin.border(0x88dd88, 1, 2),
Skin.text(colors.text, baseFontSize, font.name, font.embed),
]);
data.put("button.active", [
Skin.buttonColor(colors.light, colors.active),
Skin.text(colors.active, baseFontSize, font.name, font.embed),
Skin.geometry(new Geometry().setPadding([25, 8])),
]);
data.put("button.tab", [
Skin.tabColor(colors.light),
Skin.text(colors.text, baseFontSize, font.name, font.embed),
Skin.geometry(new Geometry().setPadding([25, 8])),
]);
data.put("border", [
Skin.border(colors.border, 1, 2),
]);
data.put("scroll", [
Skin.scrollVertical(colors.light, colors.light.diff(128)),
]);
data.put("button.level", [
Skin.buttonColor(colors.light),
Skin.text(colors.text, veryBigFontSize, font.name, font.embed),
Skin.size(64, 64),
]); ]);
styles.put("font", text());
styles.put("text.header", text(null, bigFontSize).concat([
new SkinStyle(new SpriteSkin({color: 0x000000, alpha: 0.1}, {color: colors.light})),
new GeometryStyle(new Geometry().setPadding([50, 8]).setMargin([0, 0, 0, 30]))
]));
styles.put("button.menu", text(null, bigFontSize).concat([
new SkinStyle(Skin.buttonColor(colors.light)),
new GeometryStyle(new Geometry().setSize(250, 50)),
]));
styles.put("text.box", text().concat([
new SkinStyle(new SpriteSkin({color: 0x000000, alpha: 0.1}, {color: colors.light})),
]));
styles.put("text.box.active", text().concat([
new SkinStyle(new SpriteSkin({color: 0x55aa55}, {color: 0x88dd88})),
]));
styles.put("button.level", text(null, veryBigFontSize).concat([
new SkinStyle(Skin.buttonColor(colors.light)),
new GeometryStyle(new Geometry().setSize(64, 64)),
]));
data.put("container", [ styles.put("container", [
Skin.geometry(new Geometry().setSize("100%", "100%")), new GeometryStyle(new Geometry().setSize("100%", "100%")),
Skin.layout(new Layout().setAlign(CENTER, MIDDLE)), new LayoutStyle(new Layout().setAlign(CENTER, MIDDLE)),
Skin.color(colors.dark), new SkinStyle(Skin.color(colors.dark)),
]); ]);
data.put("panel", [ styles.put("panel", [
Skin.geometry(new Geometry().setSize("100%", -1).setPadding([10, 5])), new GeometryStyle(new Geometry().setSize("100%", -1).setPadding([10, 5])),
Skin.layout(new Layout().setAlign(NONE, MIDDLE)), new LayoutStyle(new Layout().setAlign(NONE, MIDDLE)),
Skin.color(colors.light), new SkinStyle(Skin.color(colors.light)),
]); ]);
data.put("window", [ styles.put("window", [
Skin.color(colors.dark), new SkinStyle(new SpriteSkin({color: colors.dark}, {color: colors.border})),
Skin.border(colors.border, 1, 2), new GeometryStyle(new Geometry().setPadding(2)),
Skin.geometry(new Geometry().setPadding(2)),
]); ]);
data.put("line", [ styles.put("line", [
Skin.color(colors.border), new SkinStyle(Skin.color(colors.border)),
]); ]);
data.put("window.close", [ styles.put("window.close", [
Skin.size(36, 36), new GeometryStyle(new Geometry().setSize(36, 36)),
new ButtonSVGSkin(Assets.getText("resources/image/icon/window-close-solid.svg"), colors.light), new SkinStyle(new ButtonSVGSkin(Assets.getText("resources/image/icon/window-close-solid.svg"), colors.light)),
]); ]);
registerButton("settings", "cog-solid.svg"); registerButton("settings", "cog-solid.svg");
registerButton("close", "times-circle-solid.svg"); registerButton("close", "times-circle-solid.svg");
@@ -116,13 +87,13 @@ class AppTheme extends Theme {
} }
private function registerButton(name:String, resource:String):Void { private function registerButton(name:String, resource:String):Void {
data.put('button.$name', [ styles.put('button.$name', [
Skin.size(42, 42), new GeometryStyle(new Geometry().setSize(42, 42)),
new ButtonSVGSkin(Assets.getText('resources/image/icon/$resource'), colors.light), new SkinStyle(new ButtonSVGSkin(Assets.getText('resources/image/icon/$resource'), colors.light)),
]); ]);
data.put('button.$name.small', [ styles.put('button.$name.small', [
Skin.size(32, 32), new GeometryStyle(new Geometry().setSize(32, 32)),
new ButtonSVGSkin(Assets.getText('resources/image/icon/$resource'), colors.light), new SkinStyle(new ButtonSVGSkin(Assets.getText('resources/image/icon/$resource'), colors.light)),
]); ]);
} }

View File

@@ -5,7 +5,7 @@ import flash.display.Sprite;
import flash.events.Event; import flash.events.Event;
import flash.events.ProgressEvent; import flash.events.ProgressEvent;
import flash.Lib; import flash.Lib;
import haxework.view.core.Size; import haxework.view.geometry.Size;
import ru.m.tankz.AppTheme; import ru.m.tankz.AppTheme;
class Progress extends Sprite { class Progress extends Sprite {

View File

@@ -65,14 +65,14 @@ class Render extends SpriteView implements IRender {
private function set_config(value:Config):Config { private function set_config(value:Config):Config {
config = value; config = value;
setContentSize(mapWidth, mapHeight, "render"); setSize(mapWidth, mapHeight, "render");
drawBackground(); drawBackground();
return config; return config;
} }
private function set_gridSize(value:GridSize):GridSize { private function set_gridSize(value:GridSize):GridSize {
gridSize = value; gridSize = value;
setContentSize(mapWidth, mapHeight, "render"); setSize(mapWidth, mapHeight, "render");
drawBackground(); drawBackground();
return gridSize; return gridSize;
} }
@@ -263,7 +263,7 @@ class Render extends SpriteView implements IRender {
private function showScore(point:Point, score:Null<Int>):Void { private function showScore(point:Point, score:Null<Int>):Void {
if (score != null && score != 0) { if (score != null && score != 0) {
var view:LabelView = new LabelView(); var view:LabelView = new LabelView();
view.skinId = "text"; view.style = "text";
view.text = Std.string(score); view.text = Std.string(score);
view.update(); view.update();
view.redraw(); view.redraw();

View File

@@ -2,8 +2,8 @@
views: views:
- $type: haxework.view.frame.FrameSwitcher - $type: haxework.view.frame.FrameSwitcher
id: switcher id: switcher
geometry.size.stretch: true geometry.stretch: true
skinId: dark style: dark
factory: factory:
_start_: {$class: ru.m.tankz.view.StartFrame} _start_: {$class: ru.m.tankz.view.StartFrame}
_level_: {$class: ru.m.tankz.view.LevelFrame} _level_: {$class: ru.m.tankz.view.LevelFrame}
@@ -14,30 +14,30 @@ views:
_room_list_: {$class: ru.m.tankz.view.network.RoomListFrame} _room_list_: {$class: ru.m.tankz.view.network.RoomListFrame}
_room_: {$class: ru.m.tankz.view.network.RoomFrame} _room_: {$class: ru.m.tankz.view.network.RoomFrame}
- $type: haxework.view.group.HGroupView - $type: haxework.view.group.HGroupView
skinId: panel style: panel
layout.margin: 10 layout.margin: 10
views: views:
- id: settings - id: settings
$type: haxework.view.form.ButtonView $type: haxework.view.form.ButtonView
skinId: button.settings style: button.settings
+onPress: ~switcher.change('settings') +onPress: ~switcher.change('settings')
- $type: haxework.view.SpriteView - $type: haxework.view.SpriteView
geometry.size.width: 50% geometry.width: 50%
- id: username - id: username
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
skinId: text style: text
- id: login - id: login
$type: haxework.view.form.ButtonView $type: haxework.view.form.ButtonView
skinId: button.login style: button.login
+onPress: ~login() +onPress: ~login()
- id: logout - id: logout
$type: haxework.view.form.ButtonView $type: haxework.view.form.ButtonView
skinId: button.logout style: button.logout
+onPress: ~logout() +onPress: ~logout()
visible: false visible: false
- $type: haxework.view.SpriteView - $type: haxework.view.SpriteView
geometry.size.width: 50% geometry.width: 50%
- id: close - id: close
$type: haxework.view.form.ButtonView $type: haxework.view.form.ButtonView
skinId: button.close style: button.close
+onPress: ~close() +onPress: ~close()

View File

@@ -1,10 +1,10 @@
--- ---
geometry.size.stretch: true geometry.stretch: true
layout: layout:
$type: haxework.view.layout.VerticalLayout $type: haxework.view.layout.VerticalLayout
views: views:
- $type: haxework.view.group.VGroupView - $type: haxework.view.group.VGroupView
skinId: container style: container
layout.overflow: true layout.overflow: true
views: views:
- id: game - id: game
@@ -12,5 +12,5 @@ views:
- id: gamepad - id: gamepad
$type: ru.m.tankz.view.GamepadView $type: ru.m.tankz.view.GamepadView
geometry.position: absolute geometry.position: absolute
geometry.size.stretch: true geometry.stretch: true
visible: false visible: false

View File

@@ -59,7 +59,7 @@ class GamepadView extends SpriteView implements IControlDevice {
signal = new Signal2(); signal = new Signal2();
areas = []; areas = [];
currentAreas = new Map(); currentAreas = new Map();
skin = [new GamepadSkin(0x00ff00)]; skin = new GamepadSkin(0x00ff00);
content.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); content.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
content.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); content.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
} }

View File

@@ -54,7 +54,7 @@ import ru.m.tankz.view.popup.LevelPopup;
private function levelViewFactory(index:Int, level:LevelConfig):ButtonView { private function levelViewFactory(index:Int, level:LevelConfig):ButtonView {
var progress = storage.get(pack.id); var progress = storage.get(pack.id);
var result = new ButtonView(); var result = new ButtonView();
result.skinId = "button.level"; result.style = "button.level";
var presetsLine = [for (p in config.presets) progress.isPresetCompleted(level.id, p.id) ? '*' : '_'].join(''); var presetsLine = [for (p in config.presets) progress.isPresetCompleted(level.id, p.id) ? '*' : '_'].join('');
result.text = '${level.id}\n${presetsLine}'; result.text = '${level.id}\n${presetsLine}';
result.disabled = !progress.isLevelAvailable(level.id); result.disabled = !progress.isLevelAvailable(level.id);

View File

@@ -1,19 +1,18 @@
--- ---
views: views:
- $type: haxework.view.group.VGroupView - $type: haxework.view.group.VGroupView
skinId: container style: container
geometry.padding: 20 geometry.padding: 20
views: views:
- id: header - id: header
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
skinId: text.header style: text.header
- $type: haxework.view.ScrollView - $type: haxework.view.ScrollView
geometry.size.stretch: true geometry.stretch: true
scroll.skinId: scroll.vertical
view: view:
id: levels id: levels
$type: haxework.view.data.DataView $type: haxework.view.data.DataView
geometry.size.width: 100% geometry.width: 100%
layout: layout:
$type: haxework.view.layout.TailLayout $type: haxework.view.layout.TailLayout
rowSize: 10 rowSize: 10

View File

@@ -1,17 +1,16 @@
--- ---
views: views:
- $type: haxework.view.group.VGroupView - $type: haxework.view.group.VGroupView
skinId: container style: container
geometry.padding: 20 geometry.padding: 20
views: views:
- $type: haxework.view.form.LabelView - $type: haxework.view.form.LabelView
skinId: text.header style: text.header
text: Records text: Records
- id: data - id: data
$type: haxework.view.list.VListView $type: haxework.view.list.VListView
factory: ~function() return new ru.m.tankz.view.common.RecordView() factory: ~function() return new ru.m.tankz.view.common.RecordView()
geometry.margin.top: 20 geometry.margin.top: 20
geometry.size.stretch: true geometry.stretch: true
scroll: scroll:
$type: haxework.view.list.VScrollBarView $type: haxework.view.list.VScrollBarView
skinId: scroll

View File

@@ -1,12 +1,12 @@
--- ---
views: views:
- $type: haxework.view.group.VGroupView - $type: haxework.view.group.VGroupView
skinId: container style: container
views: views:
- id: level - id: level
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
skinId: text.header style: text.header
align: center font.align: center
- id: result - id: result
$type: haxework.view.data.DataView $type: haxework.view.data.DataView
factory: ~playerViewFactory factory: ~playerViewFactory

View File

@@ -1,18 +1,17 @@
--- ---
views: views:
- $type: haxework.view.group.VGroupView - $type: haxework.view.group.VGroupView
skinId: container style: container
geometry.padding: 20 geometry.padding: 20
views: views:
- $type: haxework.view.form.LabelView - $type: haxework.view.form.LabelView
skinId: text.header style: text.header
text: Settings text: Settings
- $type: haxework.view.ScrollView - $type: haxework.view.ScrollView
geometry.size.stretch: true geometry.stretch: true
scroll.skinId: scroll.vertical
view: view:
$type: haxework.view.group.GroupView $type: haxework.view.group.GroupView
geometry.size.stretch: true geometry.stretch: true
layout: layout:
$type: haxework.view.layout.TailLayout $type: haxework.view.layout.TailLayout
vAlign: top vAlign: top

View File

@@ -1,33 +1,33 @@
--- ---
views: views:
- $type: haxework.view.group.VGroupView - $type: haxework.view.group.VGroupView
skinId: container style: container
layout.margin: 10 layout.margin: 10
views: views:
- $type: haxework.view.form.LabelView - $type: haxework.view.form.LabelView
text: Tank'z text: Tank'z
skinId: font style: font
fontSize: 100 font.size: 100
geometry.margin.bottom: 30 geometry.margin.bottom: 30
- $type: haxework.view.form.ButtonView - $type: haxework.view.form.ButtonView
skinId: button.menu style: button.menu
+onPress: ~startGame('classic') +onPress: ~startGame('classic')
text: Classic text: Classic
- $type: haxework.view.form.ButtonView - $type: haxework.view.form.ButtonView
skinId: button.menu style: button.menu
+onPress: ~startGame('dota') +onPress: ~startGame('dota')
text: DotA text: DotA
- $type: haxework.view.form.ButtonView - $type: haxework.view.form.ButtonView
skinId: button.menu style: button.menu
+onPress: ~startGame('death') +onPress: ~startGame('death')
text: DeathMatch text: DeathMatch
- $type: haxework.view.form.ButtonView - $type: haxework.view.form.ButtonView
skinId: button.menu style: button.menu
+onPress: ~switcher.change('record') +onPress: ~switcher.change('record')
text: Records text: Records
- id: network - id: network
$type: haxework.view.form.ButtonView $type: haxework.view.form.ButtonView
skinId: button.menu style: button.menu
+onPress: ~startNetwork() +onPress: ~startNetwork()
text: Network text: Network
- $type: haxework.view.form.LabelView - $type: haxework.view.form.LabelView
@@ -36,5 +36,5 @@ views:
geometry.padding: [20, 5] geometry.padding: [20, 5]
geometry.position: absolute geometry.position: absolute
geometry.margin: [0, 20, 20, 0] geometry.margin: [0, 20, 20, 0]
skinId: text.box style: text.box
text: $r:text:version text: $r:text:version

View File

@@ -5,9 +5,11 @@ views:
$type: haxework.view.ImageView $type: haxework.view.ImageView
- id: life - id: life
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
skinId: text.box style: text.box
geometry.size.fixed: [50, 38] geometry.width: 50
geometry.height: 38
- id: score - id: score
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
skinId: text.box style: text.box
geometry.size.fixed: [100, 38] geometry.width: 100
geometry.height: 38

View File

@@ -1,29 +1,33 @@
--- ---
geometry.size.height: 38 geometry.height: 38
layout.margin: 5 layout.margin: 5
layout.vAlign: middle layout.vAlign: middle
views: views:
- id: play - id: play
$type: haxework.view.form.ButtonView $type: haxework.view.form.ButtonView
skinId: button.start.small style: button.start.small
+onPress: ~play() +onPress: ~play()
- id: date - id: date
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
skinId: text.box style: text.box
geometry.size.fixed: [250, 38] geometry.width: 250
geometry.height: 38
- id: type - id: type
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
skinId: text.box style: text.box
geometry.size.fixed: [250, 38] geometry.width: 250
geometry.height: 38
- id: level - id: level
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
skinId: text.box style: text.box
geometry.size.fixed: [50, 38] geometry.width: 250
geometry.height: 38
- id: preset - id: preset
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
skinId: text.box style: text.box
geometry.size.fixed: [50, 38] geometry.width: 250
geometry.height: 38
- id: delete - id: delete
$type: haxework.view.form.ButtonView $type: haxework.view.form.ButtonView
skinId: button.close.small style: button.close.small
+onPress: ~delete() +onPress: ~delete()

View File

@@ -16,7 +16,8 @@ import ru.m.tankz.control.PlayerControl;
private function set_control(value:PlayerControl):PlayerControl { private function set_control(value:PlayerControl):PlayerControl {
control = value; control = value;
slotLabel.text = '${control.playerId.team}(${control.playerId.index})'; slotLabel.text = '${control.playerId.team}(${control.playerId.index})';
slotLabel.skin = theme.textBox(value.color != null ? value.color : theme.colors.text); // ToDo: style
//slotLabel.skin = theme.textBox(value.color != null ? value.color : theme.colors.text);
select.selected = control.controller; select.selected = control.controller;
return control; return control;
} }

View File

@@ -1,13 +1,13 @@
--- ---
geometry.size.height: 48 geometry.height: 48
geometry.padding: 2 geometry.padding: 2
layout.margin: 10 layout.margin: 10
views: views:
- id: slot - id: slot
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
skinId: text.box style: text.box
geometry.size.height: 100% geometry.height: 100%
geometry.size.width: 150 geometry.width: 150
- id: select - id: select
$type: haxework.view.form.SelectView<ru.m.tankz.control.Controller> $type: haxework.view.form.SelectView<ru.m.tankz.control.Controller>
labelBuilder: | labelBuilder: |

View File

@@ -1,16 +1,16 @@
--- ---
geometry.padding: 5 geometry.padding: 5
geometry.size.height: 100% geometry.height: 100%
layout.margin: 5 layout.margin: 5
layout.hAlign: left layout.hAlign: left
views: views:
- id: level - id: level
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
skinId: text.box style: text.box
geometry.size.height: 38 geometry.height: 38
geometry.size.width: 100% geometry.width: 100%
- $type: haxework.view.SpriteView - $type: haxework.view.SpriteView
geometry.size.height: 50% geometry.height: 50%
- id: bot - id: bot
$type: ru.m.tankz.view.common.LifeView $type: ru.m.tankz.view.common.LifeView
tank: ba tank: ba

View File

@@ -1,16 +1,16 @@
--- ---
geometry.padding: 5 geometry.padding: 5
geometry.size.height: 100% geometry.height: 100%
layout.margin: 5 layout.margin: 5
layout.hAlign: right layout.hAlign: right
views: views:
- id: level - id: level
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
skinId: text.box style: text.box
geometry.size.height: 38 geometry.height: 38
geometry.size.width: 100% geometry.width: 100%
- $type: haxework.view.SpriteView - $type: haxework.view.SpriteView
geometry.size.height: 50% geometry.height: 50%
- id: players - id: players
$type: haxework.view.data.DataView $type: haxework.view.data.DataView
layout: layout:

View File

@@ -1,5 +1,5 @@
--- ---
geometry.size.width: 100% geometry.width: 100%
layout.margin: 20 layout.margin: 20
views: views:
- id: radiant - id: radiant
@@ -7,14 +7,14 @@ views:
tank: bc tank: bc
color: 0xff4422 color: 0xff4422
- $type: haxework.view.SpriteView - $type: haxework.view.SpriteView
geometry.size.width: 25% geometry.width: 25%
- id: level - id: level
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
skinId: text.box style: text.box
geometry.size.height: 38 geometry.height: 38
geometry.size.width: 50% geometry.width: 50%
- $type: haxework.view.SpriteView - $type: haxework.view.SpriteView
geometry.size.width: 25% geometry.width: 25%
- id: dire - id: dire
$type: ru.m.tankz.view.common.LifeView $type: ru.m.tankz.view.common.LifeView
tank: bc tank: bc

View File

@@ -3,20 +3,20 @@ views:
- id: top - id: top
$type: haxework.view.group.GroupView $type: haxework.view.group.GroupView
layout.hAlign: center layout.hAlign: center
geometry.size.width: 100% geometry.width: 100%
- $type: haxework.view.group.HGroupView - $type: haxework.view.group.HGroupView
views: views:
- id: left - id: left
$type: haxework.view.group.GroupView $type: haxework.view.group.GroupView
layout.vAlign: middle layout.vAlign: middle
geometry.size.height: 100% geometry.height: 100%
- id: render - id: render
$type: ru.m.tankz.render.Render $type: ru.m.tankz.render.Render
- id: right - id: right
$type: haxework.view.group.GroupView $type: haxework.view.group.GroupView
layout.vAlign: middle layout.vAlign: middle
geometry.size.height: 100% geometry.height: 100%
- id: bottom - id: bottom
$type: haxework.view.group.GroupView $type: haxework.view.group.GroupView
layout.hAlign: center layout.hAlign: center
geometry.size.width: 100% geometry.width: 100%

View File

@@ -1,17 +1,17 @@
--- ---
geometry.size.stretch: true geometry.stretch: true
layout: layout:
$type: haxework.view.layout.VerticalLayout $type: haxework.view.layout.VerticalLayout
views: views:
- $type: haxework.view.group.VGroupView - $type: haxework.view.group.VGroupView
skinId: container style: container
geometry.padding: 20 geometry.padding: 20
layout.margin: 10 layout.margin: 10
views: views:
- id: header - id: header
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
geometry.margin.bottom: 20 geometry.margin.bottom: 20
skinId: text.header style: text.header
text: Game Room text: Game Room
- $type: haxework.view.group.HGroupView - $type: haxework.view.group.HGroupView
layout.margin: 10 layout.margin: 10
@@ -19,7 +19,7 @@ views:
- id: info - id: info
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
geometry.padding: [30, 10] geometry.padding: [30, 10]
skinId: text.box style: text.box
- id: start - id: start
$type: haxework.view.form.ButtonView $type: haxework.view.form.ButtonView
text: Start text: Start
@@ -30,10 +30,10 @@ views:
text: Leave text: Leave
+onPress: ~network.leaveGame() +onPress: ~network.leaveGame()
- $type: haxework.view.SpriteView - $type: haxework.view.SpriteView
geometry.size.width: 100% geometry.width: 100%
geometry.size.height: 3 geometry.height: 3
skinId: line style: line
- id: slots - id: slots
$type: haxework.view.list.VListView $type: haxework.view.list.VListView
geometry.size.stretch: true geometry.stretch: true
factory: ~ru.m.tankz.view.network.SlotItemView.factory factory: ~ru.m.tankz.view.network.SlotItemView.factory

View File

@@ -22,7 +22,7 @@ import ru.m.tankz.proto.room.RoomProto;
private function set_data(value:RoomProto):RoomProto { private function set_data(value:RoomProto):RoomProto {
data = value; data = value;
creatorView.skinId = value.creator.uuid == network.user.uuid ? "text.box.active" : "text.box"; creatorView.style = value.creator.uuid == network.user.uuid ? "text.box.active" : "text.box";
creatorView.text = value.creator.name; creatorView.text = value.creator.name;
typeView.text = '${value.game.type} #${value.game.level}'; typeView.text = '${value.game.type} #${value.game.level}';
var used = value.slots.filter(function(slot:RoomSlotProto) return slot.hasUser()).length; var used = value.slots.filter(function(slot:RoomSlotProto) return slot.hasUser()).length;

View File

@@ -1,26 +1,26 @@
--- ---
# geometry.size.width: 100% # geometry.width: 100%
geometry.size.height: 48 geometry.height: 48
layout.margin: 10 layout.margin: 10
layout.hAlign: center layout.hAlign: center
views: views:
- id: creator - id: creator
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
geometry.size.height: 100% geometry.height: 100%
geometry.size.width: 200 geometry.width: 200
skinId: text.box style: text.box
- id: type - id: type
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
geometry.size.height: 100% geometry.height: 100%
geometry.size.width: 200 geometry.width: 200
skinId: text.box style: text.box
- id: users - id: users
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
geometry.size.height: 100% geometry.height: 100%
geometry.size.width: 150 geometry.width: 150
skinId: text.box style: text.box
- id: join - id: join
$type: haxework.view.form.ButtonView $type: haxework.view.form.ButtonView
geometry.size.height: 100% geometry.height: 100%
text: Join text: Join
+onPress: ~join() +onPress: ~join()

View File

@@ -1,22 +1,22 @@
--- ---
geometry.size.stretch: true geometry.stretch: true
layout: layout:
$type: haxework.view.layout.VerticalLayout $type: haxework.view.layout.VerticalLayout
views: views:
- $type: haxework.view.group.VGroupView - $type: haxework.view.group.VGroupView
skinId: container style: container
geometry.padding: 20 geometry.padding: 20
views: views:
- id: header - id: header
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
geometry.margin.bottom: 20 geometry.margin.bottom: 20
skinId: text.header style: text.header
text: Games List text: Games List
- $type: haxework.view.form.ButtonView - $type: haxework.view.form.ButtonView
text: Create text: Create
+onPress: ~create() +onPress: ~create()
- id: games - id: games
$type: haxework.view.list.VListView $type: haxework.view.list.VListView
geometry.size.stretch: true geometry.stretch: true
factory: ~ru.m.tankz.view.network.RoomItemView.factory factory: ~ru.m.tankz.view.network.RoomItemView.factory
geometry.margin: 10 geometry.margin: 10

View File

@@ -26,11 +26,12 @@ import ru.m.tankz.proto.room.RoomSlotProto;
userView.text = value.hasUser() ? value.user.name : "(NONE)"; userView.text = value.hasUser() ? value.user.name : "(NONE)";
userView.visible = value.hasUser(); userView.visible = value.hasUser();
selectButton.visible = !value.hasUser(); selectButton.visible = !value.hasUser();
userView.skinId = (value.hasUser() && value.user.uuid == network.user.uuid) ? "text.box.active" : "text.box"; userView.style = (value.hasUser() && value.user.uuid == network.user.uuid) ? "text.box.active" : "text.box";
var config = configBundle.get(network.room.game.type); var config = configBundle.get(network.room.game.type);
var color = config.getColor([value.slot.team, value.slot.index]); var color = config.getColor([value.slot.team, value.slot.index]);
if (color != null) { if (color != null) {
typeView.skin = theme.textBox(color); // ToDo: style
//typeView.skin = theme.textBox(color);
} }
return data; return data;
} }

View File

@@ -1,23 +1,23 @@
--- ---
geometry.size.height: 48 geometry.height: 48
geometry.padding: 2 geometry.padding: 2
layout.margin: 10 layout.margin: 10
views: views:
- id: type - id: type
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
skinId: text.box style: text.box
geometry.size.height: 100% geometry.height: 100%
geometry.size.width: 150 geometry.width: 150
- $type: haxework.view.group.HGroupView - $type: haxework.view.group.HGroupView
layout.hAlign: center layout.hAlign: center
layout.vAlign: middle layout.vAlign: middle
geometry.size.height: 100% geometry.height: 100%
geometry.size.width: 300 geometry.width: 300
views: views:
- id: user - id: user
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
geometry.size.stretch: true geometry.stretch: true
skinId: text.box style: text.box
- id: select - id: select
$type: haxework.view.form.ButtonView $type: haxework.view.form.ButtonView
text: Select text: Select

View File

@@ -51,7 +51,7 @@ private typedef Result = {
private function levelViewFactory(index:Int, value:LevelConfig):ToggleButtonView { private function levelViewFactory(index:Int, value:LevelConfig):ToggleButtonView {
var result = new ToggleButtonView(); var result = new ToggleButtonView();
result.skinId = "button.level"; result.style = "button.level";
result.text = Std.string(value.id); result.text = Std.string(value.id);
return result; return result;
} }

View File

@@ -4,38 +4,38 @@ layout.vAlign: middle
view: view:
$type: haxework.view.group.VGroupView $type: haxework.view.group.VGroupView
layout.hAlign: center layout.hAlign: center
geometry.size.stretch: true geometry.stretch: true
geometry.margin: 10 geometry.margin: 10
skinId: window style: window
views: views:
- $type: haxework.view.group.HGroupView - $type: haxework.view.group.HGroupView
geometry.size.width: 100% geometry.width: 100%
geometry.padding: 10 geometry.padding: 10
layout.vAlign: middle layout.vAlign: middle
views: views:
- id: name - id: name
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
geometry.size.width: 100% geometry.width: 100%
geometry.margin.left: 10 geometry.margin.left: 10
layout.hAlign: left layout.hAlign: left
skinId: text style: text
text: New game text: New game
- $type: haxework.view.form.ButtonView - $type: haxework.view.form.ButtonView
skinId: window.close style: window.close
+onPress: ~reject('close') +onPress: ~reject('close')
- $type: haxework.view.group.VGroupView - $type: haxework.view.group.VGroupView
geometry.size.stretch: true geometry.stretch: true
geometry.padding: [5, 20] geometry.padding: [5, 20]
layout.margin: 5 layout.margin: 5
layout.hAlign: center layout.hAlign: center
views: views:
- $type: haxework.view.form.LabelView - $type: haxework.view.form.LabelView
geometry.size.width: 100% geometry.width: 100%
skinId: text style: text
text: Type text: Type
- id: type - id: type
$type: haxework.view.data.DataView $type: haxework.view.data.DataView
geometry.size.width: 100% geometry.width: 100%
layout: layout:
$type: haxework.view.layout.TailLayout $type: haxework.view.layout.TailLayout
margin: 10 margin: 10
@@ -46,16 +46,15 @@ view:
- "dota" - "dota"
- "death" - "death"
- $type: haxework.view.form.LabelView - $type: haxework.view.form.LabelView
geometry.size.width: 100% geometry.width: 100%
skinId: text style: text
text: Level text: Level
- $type: haxework.view.ScrollView - $type: haxework.view.ScrollView
geometry.size.stretch: true geometry.stretch: true
scroll.skinId: scroll.vertical
view: view:
id: level id: level
$type: haxework.view.data.DataView $type: haxework.view.data.DataView
geometry.size.width: 100% geometry.width: 100%
layout: layout:
$type: haxework.view.layout.TailLayout $type: haxework.view.layout.TailLayout
rowSize: 10 rowSize: 10
@@ -66,7 +65,7 @@ view:
- $type: haxework.view.group.HGroupView - $type: haxework.view.group.HGroupView
layout.hAlign: center layout.hAlign: center
layout.margin: 5 layout.margin: 5
skinId: panel style: panel
views: views:
- $type: haxework.view.form.ButtonView - $type: haxework.view.form.ButtonView
text: Create text: Create

View File

@@ -62,7 +62,7 @@ private typedef Result = {
private function presetViewFactory(index:Int, value:GamePreset):ButtonView { private function presetViewFactory(index:Int, value:GamePreset):ButtonView {
var result = new ButtonView(); var result = new ButtonView();
result.skinId = 'button${!progress.isPresetCompleted(level.id, value.id) ? ".active" : ""}'; result.style = 'button${!progress.isPresetCompleted(level.id, value.id) ? ".active" : ""}';
result.text = value.name; result.text = value.name;
result.disabled = !progress.isPresetAvailable(level.id, value.id); result.disabled = !progress.isPresetAvailable(level.id, value.id);
return result; return result;

View File

@@ -4,29 +4,28 @@ layout.vAlign: middle
view: view:
$type: haxework.view.group.VGroupView $type: haxework.view.group.VGroupView
layout.hAlign: center layout.hAlign: center
geometry.size.width: 400 geometry.width: 400
geometry.size.height: 400 geometry.height: 400
geometry.margin: 10 geometry.margin: 10
skinId: window style: window
views: views:
- $type: haxework.view.group.HGroupView - $type: haxework.view.group.HGroupView
geometry.size.width: 100% geometry.width: 100%
geometry.padding: 10 geometry.padding: 10
layout.vAlign: middle layout.vAlign: middle
views: views:
- id: name - id: name
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
geometry.size.width: 100% geometry.width: 100%
geometry.margin.left: 10 geometry.margin.left: 10
layout.hAlign: left layout.hAlign: left
skinId: text style: text
- $type: haxework.view.form.ButtonView - $type: haxework.view.form.ButtonView
skinId: window.close style: window.close
+onPress: ~reject('close') +onPress: ~reject('close')
- $type: haxework.view.ScrollView - $type: haxework.view.ScrollView
geometry.size.stretch: true geometry.stretch: true
layout.hAlign: center layout.hAlign: center
scroll.skinId: scroll.vertical
view: view:
id: slots id: slots
$type: haxework.view.data.DataView $type: haxework.view.data.DataView
@@ -44,4 +43,4 @@ view:
$type: haxework.view.layout.HorizontalLayout $type: haxework.view.layout.HorizontalLayout
hAlign: center hAlign: center
margin: 5 margin: 5
skinId: panel style: panel

View File

@@ -4,61 +4,61 @@ layout.vAlign: middle
view: view:
$type: haxework.view.group.VGroupView $type: haxework.view.group.VGroupView
layout.hAlign: center layout.hAlign: center
geometry.size.width: 400 geometry.width: 400
# geometry.size.height: 400 # geometry.height: 400
skinId: window style: window
views: views:
- $type: haxework.view.group.HGroupView - $type: haxework.view.group.HGroupView
geometry.size.width: 100% geometry.width: 100%
geometry.padding: 10 geometry.padding: 10
layout.vAlign: middle layout.vAlign: middle
views: views:
- id: name - id: name
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
geometry.size.width: 100% geometry.width: 100%
geometry.margin.left: 10 geometry.margin.left: 10
layout.hAlign: left layout.hAlign: left
skinId: text style: text
text: Login text: Login
- $type: haxework.view.form.ButtonView - $type: haxework.view.form.ButtonView
skinId: window.close style: window.close
+onPress: ~reject('close') +onPress: ~reject('close')
- $type: haxework.view.group.VGroupView - $type: haxework.view.group.VGroupView
geometry.size.width: 100% geometry.width: 100%
# geometry.size.stretch: true # geometry.stretch: true
geometry.padding: 20 geometry.padding: 20
layout.margin: 5 layout.margin: 5
views: views:
- $type: haxework.view.form.LabelView - $type: haxework.view.form.LabelView
geometry.size.width: 100% geometry.width: 100%
skinId: text style: text
text: Username text: Username
- id: username - id: username
$type: haxework.view.form.InputView $type: haxework.view.form.InputView
geometry.size.width: 100% geometry.width: 100%
geometry.size.height: 28 geometry.height: 28
skinId: text.box style: text.box
- $type: haxework.view.form.LabelView - $type: haxework.view.form.LabelView
geometry.size.width: 100% geometry.width: 100%
skinId: text style: text
text: Password text: Password
visible: false visible: false
- id: password - id: password
$type: haxework.view.form.InputView $type: haxework.view.form.InputView
textField.displayAsPassword: true textField.displayAsPassword: true
geometry.size.width: 100% geometry.width: 100%
geometry.size.height: 28 geometry.height: 28
skinId: text.box style: text.box
visible: false visible: false
- id: error - id: error
$type: haxework.view.text.TextView $type: haxework.view.text.TextView
geometry.size.width: 100% geometry.width: 100%
skinId: text style: text
fill: false fill: false
- $type: haxework.view.group.HGroupView - $type: haxework.view.group.HGroupView
layout.hAlign: center layout.hAlign: center
layout.margin: 5 layout.margin: 5
skinId: panel style: panel
views: views:
- $type: haxework.view.form.ButtonView - $type: haxework.view.form.ButtonView
text: Submit text: Submit

View File

@@ -72,7 +72,7 @@ class KeyboardMap {
private function set_edit(value:Bool):Bool { private function set_edit(value:Bool):Bool {
if (edit != value) { if (edit != value) {
edit = value; edit = value;
action.skinId = key.skinId = edit ? "text.box.active" : "text.box"; action.style = key.style = edit ? "text.box.active" : "text.box";
} }
return edit; return edit;
} }

View File

@@ -4,9 +4,11 @@ layout.margin: 5
views: views:
- id: action - id: action
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
geometry.size.fixed: [180, 38] geometry.width: 180
skinId: text.box geometry.height: 38
style: text.box
- id: key - id: key
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
geometry.size.fixed: [250, 38] geometry.width: 250
skinId: text.box geometry.height: 38
style: text.box

View File

@@ -1,17 +1,17 @@
layout.margin: 10 layout.margin: 10
layout.hAlign: center layout.hAlign: center
geometry.size.width: 400 geometry.width: 400
views: views:
- id: label - id: label
$type: haxework.view.form.LabelView $type: haxework.view.form.LabelView
skinId: text style: text
- id: panel - id: panel
$type: haxework.view.group.GroupView $type: haxework.view.group.GroupView
layout: layout:
$type: haxework.view.layout.TailLayout $type: haxework.view.layout.TailLayout
rowSize: 2 rowSize: 2
margin: 10 margin: 10
geometry.size.width: 100% geometry.width: 100%
views: views:
- $type: haxework.view.form.ButtonView - $type: haxework.view.form.ButtonView
+onPress: ~screen() +onPress: ~screen()