[update] background choiser update
This commit is contained in:
23
src/haxe/ru/m/puzzlez/view/BackgroundPopup.hx
Normal file
23
src/haxe/ru/m/puzzlez/view/BackgroundPopup.hx
Normal file
@@ -0,0 +1,23 @@
|
||||
package ru.m.puzzlez.view;
|
||||
|
||||
import haxework.view.skin.ButtonColorSkin;
|
||||
import haxework.view.form.ButtonView;
|
||||
import haxework.color.Color;
|
||||
import haxework.view.popup.PopupView;
|
||||
import promhx.Promise;
|
||||
import ru.m.puzzlez.render.Background;
|
||||
|
||||
@:template class BackgroundPopup extends PopupView<Background> {
|
||||
|
||||
private function colorButtonFactory(index:Int, color:Color):ButtonView {
|
||||
var result = new ButtonView();
|
||||
result.text = " ";
|
||||
result.skin = new ButtonColorSkin(color);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static function choise(message:String = null):Promise<Background> {
|
||||
var result = new BackgroundPopup();
|
||||
return result.show();
|
||||
}
|
||||
}
|
||||
61
src/haxe/ru/m/puzzlez/view/BackgroundPopup.yaml
Normal file
61
src/haxe/ru/m/puzzlez/view/BackgroundPopup.yaml
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
view:
|
||||
$type: haxework.view.group.VGroupView
|
||||
geometry.width: 400
|
||||
geometry.height: 200
|
||||
geometry.padding: 10
|
||||
geometry.hAlign: center
|
||||
geometry.vAlign: middle
|
||||
layout.margin: 10
|
||||
style: frame
|
||||
views:
|
||||
- $type: haxework.view.group.HGroupView
|
||||
geometry.width: 100%
|
||||
layout.margin: 10
|
||||
views:
|
||||
- id: header
|
||||
text: Choise background
|
||||
$type: haxework.view.form.LabelView
|
||||
- $type: haxework.view.group.HGroupView
|
||||
geometry.width: 100%
|
||||
views:
|
||||
- $type: haxework.view.form.ButtonView
|
||||
text: Default
|
||||
+onPress: ~close(NONE)
|
||||
- $type: haxework.view.data.DataView
|
||||
factory: ~colorButtonFactory
|
||||
geometry.width: 100%
|
||||
layout:
|
||||
$type: haxework.view.layout.TailLayout
|
||||
margin: 5
|
||||
data:
|
||||
- '#FFFFFF'
|
||||
- '#001f3f'
|
||||
- '#0074D9'
|
||||
- '#7FDBFF'
|
||||
- '#39CCCC'
|
||||
- '#3D9970'
|
||||
- '#2ECC40'
|
||||
- '#01FF70'
|
||||
- '#FFDC00'
|
||||
- '#FF851B'
|
||||
- '#FF4136'
|
||||
- '#85144b'
|
||||
- '#F012BE'
|
||||
- '#B10DC9'
|
||||
- '#111111'
|
||||
- '#AAAAAA'
|
||||
- '#DDDDDD'
|
||||
+onDataSelect: ~(color) -> close(COLOR(color))
|
||||
- id: image
|
||||
$type: ru.m.view.ColorView
|
||||
+onSelect: ~function(color) close(COLOR(color))
|
||||
- $type: haxework.view.group.HGroupView
|
||||
geometry.width: 100%
|
||||
layout.hAlign: center
|
||||
layout.margin: 10
|
||||
views:
|
||||
- $type: haxework.view.form.ButtonView
|
||||
text: OK
|
||||
+onPress: ~reject('ok')
|
||||
visible: false
|
||||
@@ -1,7 +1,6 @@
|
||||
package ru.m.puzzlez.view;
|
||||
|
||||
import haxe.Timer;
|
||||
import haxework.color.Color;
|
||||
import haxework.view.frame.FrameSwitcher;
|
||||
import haxework.view.frame.FrameView;
|
||||
import ru.m.puzzlez.core.Game;
|
||||
@@ -12,7 +11,6 @@ import ru.m.puzzlez.render.Background;
|
||||
import ru.m.puzzlez.render.IRender;
|
||||
import ru.m.puzzlez.storage.GameStorage;
|
||||
import ru.m.puzzlez.storage.SettingsStorage;
|
||||
import ru.m.view.ColorPopup;
|
||||
|
||||
@:template class GameFrame extends FrameView<GameState> {
|
||||
public static var ID = "game";
|
||||
@@ -75,9 +73,9 @@ import ru.m.view.ColorPopup;
|
||||
}
|
||||
|
||||
private function choiseBackground():Void {
|
||||
ColorPopup.choise().then((color:Null<Color>) -> {
|
||||
if (color != null) {
|
||||
settings.background = COLOR(color);
|
||||
BackgroundPopup.choise().then((background:Null<Background>) -> {
|
||||
if (background != null) {
|
||||
settings.background = background;
|
||||
render.toRedraw();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
package ru.m.view;
|
||||
|
||||
import promhx.Promise;
|
||||
import haxework.color.Color;
|
||||
import haxework.view.popup.PopupView;
|
||||
|
||||
@:template class ColorPopup extends PopupView<Color> {
|
||||
|
||||
public static function choise(message:String = null):Promise<Color> {
|
||||
var result = new ColorPopup();
|
||||
return result.show();
|
||||
}
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
---
|
||||
view:
|
||||
$type: haxework.view.group.VGroupView
|
||||
geometry.width: 400
|
||||
geometry.height: 200
|
||||
geometry.padding: 10
|
||||
geometry.hAlign: center
|
||||
geometry.vAlign: middle
|
||||
style: frame
|
||||
views:
|
||||
- $type: haxework.view.group.HGroupView
|
||||
geometry.width: 100%
|
||||
layout.margin: 10
|
||||
views:
|
||||
- id: header
|
||||
$type: haxework.view.form.LabelView
|
||||
- id: image
|
||||
$type: ru.m.view.ColorView
|
||||
+onSelect: ~close
|
||||
- $type: haxework.view.group.HGroupView
|
||||
geometry.width: 100%
|
||||
layout.hAlign: center
|
||||
layout.margin: 10
|
||||
views:
|
||||
- $type: haxework.view.form.ButtonView
|
||||
text: OK
|
||||
+onPress: ~close('ok')
|
||||
visible: false
|
||||
Reference in New Issue
Block a user