Added fields to view
This commit is contained in:
@@ -1,13 +1,26 @@
|
|||||||
package com.abit.haxework.gui;
|
package com.abit.haxework.gui;
|
||||||
|
|
||||||
|
import com.abit.haxework.gui.core.VAlign;
|
||||||
|
import com.abit.haxework.gui.core.HAlign;
|
||||||
import com.abit.haxework.gui.layout.DefaultLayout;
|
import com.abit.haxework.gui.layout.DefaultLayout;
|
||||||
import com.abit.haxework.gui.layout.ILayout;
|
import com.abit.haxework.gui.layout.ILayout;
|
||||||
import flash.display.Sprite;
|
import flash.display.Sprite;
|
||||||
|
|
||||||
class GroupView extends View implements IGroupView<Sprite> {
|
class GroupView extends View implements IGroupView<Sprite> {
|
||||||
|
|
||||||
public var layout(default, default):ILayout;
|
|
||||||
public var views(default, null):Array<IView<Sprite>>;
|
public var views(default, null):Array<IView<Sprite>>;
|
||||||
|
public var layout(default, default):ILayout;
|
||||||
|
|
||||||
|
public var layoutVAlign(default, set):VAlign;
|
||||||
|
public var layoutHAlign(default, set):HAlign;
|
||||||
|
public var layoutMargin(default, set):Float;
|
||||||
|
|
||||||
|
public var leftPadding(default, set):Float;
|
||||||
|
public var rightPadding(default, set):Float;
|
||||||
|
public var topPadding(default, set):Float;
|
||||||
|
public var bottomPadding(default, set):Float;
|
||||||
|
public var paddings(null, set):Float;
|
||||||
|
|
||||||
private var viewsById:Map<String, IView<Sprite>>;
|
private var viewsById:Map<String, IView<Sprite>>;
|
||||||
|
|
||||||
public function new(?layout:ILayout) {
|
public function new(?layout:ILayout) {
|
||||||
@@ -46,4 +59,66 @@ class GroupView extends View implements IGroupView<Sprite> {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function set_layoutVAlign(value:VAlign):VAlign {
|
||||||
|
if (layoutVAlign != value) {
|
||||||
|
layoutVAlign = value;
|
||||||
|
invalidate();
|
||||||
|
}
|
||||||
|
return layoutVAlign;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function set_layoutHAlign(value:HAlign):HAlign {
|
||||||
|
if (layoutHAlign != value) {
|
||||||
|
layoutHAlign = value;
|
||||||
|
invalidate();
|
||||||
|
}
|
||||||
|
return layoutHAlign;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function set_layoutMargin(value:Float):Float {
|
||||||
|
if (layoutMargin != value) {
|
||||||
|
layoutMargin = value;
|
||||||
|
invalidate();
|
||||||
|
}
|
||||||
|
return layoutMargin;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function set_leftPadding(value:Float):Float {
|
||||||
|
if (leftPadding != value) {
|
||||||
|
leftPadding = value;
|
||||||
|
invalidate();
|
||||||
|
}
|
||||||
|
return leftPadding;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function set_rightPadding(value:Float):Float {
|
||||||
|
if (rightPadding != value) {
|
||||||
|
rightPadding = value;
|
||||||
|
invalidate();
|
||||||
|
}
|
||||||
|
return rightPadding;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function set_topPadding(value:Float):Float {
|
||||||
|
if (topPadding != value) {
|
||||||
|
topPadding = value;
|
||||||
|
invalidate();
|
||||||
|
}
|
||||||
|
return topPadding;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function set_bottomPadding(value:Float):Float {
|
||||||
|
if (bottomPadding != value) {
|
||||||
|
bottomPadding = value;
|
||||||
|
invalidate();
|
||||||
|
}
|
||||||
|
return bottomPadding;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function set_paddings(value:Float):Float {
|
||||||
|
leftPadding = rightPadding = topPadding = bottomPadding = value;
|
||||||
|
invalidate();
|
||||||
|
return value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.abit.haxework.gui;
|
package com.abit.haxework.gui;
|
||||||
|
|
||||||
|
import com.abit.haxework.gui.core.HAlign;
|
||||||
|
import com.abit.haxework.gui.core.VAlign;
|
||||||
import com.abit.haxework.gui.layout.ILayout;
|
import com.abit.haxework.gui.layout.ILayout;
|
||||||
|
|
||||||
interface IGroupView<C> extends IView<C> {
|
interface IGroupView<C> extends IView<C> {
|
||||||
@@ -7,6 +9,16 @@ interface IGroupView<C> extends IView<C> {
|
|||||||
public var views(default, null):Array<IView<C>>;
|
public var views(default, null):Array<IView<C>>;
|
||||||
public var layout(default, default):ILayout;
|
public var layout(default, default):ILayout;
|
||||||
|
|
||||||
|
public var layoutVAlign(default, set):VAlign;
|
||||||
|
public var layoutHAlign(default, set):HAlign;
|
||||||
|
public var layoutMargin(default, set):Float;
|
||||||
|
|
||||||
|
public var leftPadding(default, set):Float;
|
||||||
|
public var rightPadding(default, set):Float;
|
||||||
|
public var topPadding(default, set):Float;
|
||||||
|
public var bottomPadding(default, set):Float;
|
||||||
|
public var paddings(null, set):Float;
|
||||||
|
|
||||||
public function addView(view:IView<C>):IView<C>;
|
public function addView(view:IView<C>):IView<C>;
|
||||||
public function removeView(view:IView<C>):IView<C>;
|
public function removeView(view:IView<C>):IView<C>;
|
||||||
public function removeViewById(id:String):IView<C>;
|
public function removeViewById(id:String):IView<C>;
|
||||||
|
|||||||
@@ -1,17 +1,34 @@
|
|||||||
package com.abit.haxework.gui;
|
package com.abit.haxework.gui;
|
||||||
|
|
||||||
|
import com.abit.haxework.gui.core.VAlign;
|
||||||
|
import com.abit.haxework.gui.core.HAlign;
|
||||||
import com.abit.haxework.gui.skin.ISkin;
|
import com.abit.haxework.gui.skin.ISkin;
|
||||||
|
import com.abit.haxework.gui.core.SizeType;
|
||||||
|
|
||||||
interface IView<C> {
|
interface IView<C> {
|
||||||
public var id(default, null):String;
|
public var id(default, null):String;
|
||||||
|
|
||||||
public var x(default, set):Float;
|
public var x(default, set):Float;
|
||||||
public var y(default, set):Float;
|
public var y(default, set):Float;
|
||||||
|
|
||||||
|
public var widthType(default, null):SizeType;
|
||||||
|
public var heightType(default, null):SizeType;
|
||||||
|
|
||||||
public var width(default, set):Float;
|
public var width(default, set):Float;
|
||||||
public var height(default, set):Float;
|
public var height(default, set):Float;
|
||||||
|
|
||||||
public var pWidth(default, set):Float;
|
public var pWidth(default, set):Float;
|
||||||
public var pHeight(default, set):Float;
|
public var pHeight(default, set):Float;
|
||||||
|
|
||||||
|
public var hAlign(default, set):HAlign;
|
||||||
|
public var vAlign(default, set):VAlign;
|
||||||
|
|
||||||
|
public var leftMargin(default, set):Float;
|
||||||
|
public var rightMargin(default, set):Float;
|
||||||
|
public var topMargin(default, set):Float;
|
||||||
|
public var bottomMargin(default, set):Float;
|
||||||
|
public var margins(null, set):Float;
|
||||||
|
|
||||||
public var content(default, null):C;
|
public var content(default, null):C;
|
||||||
public var skin(default, set):ISkin<C, IView<C>>;
|
public var skin(default, set):ISkin<C, IView<C>>;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
package com.abit.haxework.gui;
|
package com.abit.haxework.gui;
|
||||||
|
|
||||||
|
import com.abit.haxework.gui.core.SizeType;
|
||||||
|
import com.abit.haxework.gui.core.HAlign;
|
||||||
|
import com.abit.haxework.gui.core.VAlign;
|
||||||
import flash.events.Event;
|
import flash.events.Event;
|
||||||
import flash.display.Stage;
|
import flash.display.Stage;
|
||||||
import com.abit.haxework.gui.skin.FakeSkin;
|
import com.abit.haxework.gui.skin.FakeSkin;
|
||||||
@@ -16,11 +19,25 @@ class View implements IView<Sprite> {
|
|||||||
|
|
||||||
public var x(default, set):Float;
|
public var x(default, set):Float;
|
||||||
public var y(default, set):Float;
|
public var y(default, set):Float;
|
||||||
|
|
||||||
|
public var widthType(default, null):SizeType;
|
||||||
|
public var heightType(default, null):SizeType;
|
||||||
|
|
||||||
public var width(default, set):Float;
|
public var width(default, set):Float;
|
||||||
public var height(default, set):Float;
|
public var height(default, set):Float;
|
||||||
|
|
||||||
public var pWidth(default, set):Float;
|
public var pWidth(default, set):Float;
|
||||||
public var pHeight(default, set):Float;
|
public var pHeight(default, set):Float;
|
||||||
|
|
||||||
|
public var hAlign(default, set):HAlign;
|
||||||
|
public var vAlign(default, set):VAlign;
|
||||||
|
|
||||||
|
public var leftMargin(default, set):Float;
|
||||||
|
public var rightMargin(default, set):Float;
|
||||||
|
public var topMargin(default, set):Float;
|
||||||
|
public var bottomMargin(default, set):Float;
|
||||||
|
public var margins(null, set):Float;
|
||||||
|
|
||||||
public var content(default, null):Sprite;
|
public var content(default, null):Sprite;
|
||||||
public var skin(default, set):ISkin<Sprite, IView<Sprite>>;
|
public var skin(default, set):ISkin<Sprite, IView<Sprite>>;
|
||||||
|
|
||||||
@@ -32,12 +49,22 @@ class View implements IView<Sprite> {
|
|||||||
skin = new FakeSkin();
|
skin = new FakeSkin();
|
||||||
x = 0;
|
x = 0;
|
||||||
y = 0;
|
y = 0;
|
||||||
|
width = 100;
|
||||||
|
height = 100;
|
||||||
|
margins = 0;
|
||||||
|
vAlign = VAlign.CENTER;
|
||||||
|
hAlign = HAlign.MIDDLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function invalidate():Void {
|
private function invalidate():Void {
|
||||||
updater.invalidate(this);
|
updater.invalidate(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function invalidateParent():Void {
|
||||||
|
if (parent != null)
|
||||||
|
updater.invalidate(parent);
|
||||||
|
}
|
||||||
|
|
||||||
public function update():Void {
|
public function update():Void {
|
||||||
content.x = x;
|
content.x = x;
|
||||||
content.y = y;
|
content.y = y;
|
||||||
@@ -45,40 +72,121 @@ class View implements IView<Sprite> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function set_x(value:Float):Float {
|
private function set_x(value:Float):Float {
|
||||||
x = value;
|
if (x != value) {
|
||||||
invalidate();
|
x = value;
|
||||||
|
invalidate();
|
||||||
|
}
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
private function set_y(value:Float):Float {
|
private function set_y(value:Float):Float {
|
||||||
y = value;
|
if (y != value) {
|
||||||
invalidate();
|
y = value;
|
||||||
|
invalidate();
|
||||||
|
}
|
||||||
return y;
|
return y;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function set_width(value:Float):Float {
|
private function set_width(value:Float):Float {
|
||||||
width = value;
|
if (width != value || widthType != SizeType.NORMAL) {
|
||||||
invalidate();
|
width = value;
|
||||||
|
widthType = SizeType.NORMAL;
|
||||||
|
invalidate();
|
||||||
|
invalidateParent();
|
||||||
|
}
|
||||||
return width;
|
return width;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function set_height(value:Float):Float {
|
private function set_height(value:Float):Float {
|
||||||
height = value;
|
if (height != value || heightType != SizeType.NORMAL) {
|
||||||
invalidate();
|
height = value;
|
||||||
|
heightType = SizeType.NORMAL;
|
||||||
|
invalidate();
|
||||||
|
invalidateParent();
|
||||||
|
}
|
||||||
return height;
|
return height;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function set_pWidth(value:Float):Float {
|
private function set_pWidth(value:Float):Float {
|
||||||
pWidth = value;
|
if (pWidth != value || widthType != SizeType.PERCENT) {
|
||||||
invalidate();
|
pWidth = value;
|
||||||
|
widthType = SizeType.PERCENT;
|
||||||
|
invalidate();
|
||||||
|
invalidateParent();
|
||||||
|
}
|
||||||
return pWidth;
|
return pWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function set_pHeight(value:Float):Float {
|
private function set_pHeight(value:Float):Float {
|
||||||
pHeight = value;
|
if (pHeight != value || heightType != SizeType.PERCENT) {
|
||||||
invalidate();
|
pHeight = value;
|
||||||
|
heightType = SizeType.PERCENT;
|
||||||
|
invalidate();
|
||||||
|
invalidateParent();
|
||||||
|
}
|
||||||
return pHeight;
|
return pHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function set_hAlign(value:HAlign):HAlign {
|
||||||
|
if (hAlign != value) {
|
||||||
|
hAlign = value;
|
||||||
|
invalidate();
|
||||||
|
invalidateParent();
|
||||||
|
}
|
||||||
|
return hAlign;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function set_vAlign(value:VAlign):VAlign {
|
||||||
|
if (vAlign != value) {
|
||||||
|
vAlign = value;
|
||||||
|
invalidate();
|
||||||
|
invalidateParent();
|
||||||
|
}
|
||||||
|
return vAlign;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function set_leftMargin(value:Float):Float {
|
||||||
|
if (leftMargin != value) {
|
||||||
|
leftMargin = value;
|
||||||
|
invalidate();
|
||||||
|
invalidateParent();
|
||||||
|
}
|
||||||
|
return leftMargin;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function set_rightMargin(value:Float):Float {
|
||||||
|
if (rightMargin != value) {
|
||||||
|
rightMargin = value;
|
||||||
|
invalidate();
|
||||||
|
invalidateParent();
|
||||||
|
}
|
||||||
|
return rightMargin;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function set_topMargin(value:Float):Float {
|
||||||
|
if (topMargin != value) {
|
||||||
|
topMargin = value;
|
||||||
|
invalidate();
|
||||||
|
invalidateParent();
|
||||||
|
}
|
||||||
|
return topMargin;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function set_bottomMargin(value:Float):Float {
|
||||||
|
if (bottomMargin != value) {
|
||||||
|
bottomMargin = value;
|
||||||
|
invalidate();
|
||||||
|
invalidateParent();
|
||||||
|
}
|
||||||
|
return bottomMargin;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function set_margins(value:Float):Float {
|
||||||
|
leftMargin = rightMargin = topMargin = bottomMargin = value;
|
||||||
|
invalidate();
|
||||||
|
invalidateParent();
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
private function set_skin(value:ISkin<Sprite, IView<Sprite>>):ISkin<Sprite, IView<Sprite>> {
|
private function set_skin(value:ISkin<Sprite, IView<Sprite>>):ISkin<Sprite, IView<Sprite>> {
|
||||||
skin = value;
|
skin = value;
|
||||||
invalidate();
|
invalidate();
|
||||||
|
|||||||
7
com/abit/haxework/gui/core/HAlign.hx
Executable file
7
com/abit/haxework/gui/core/HAlign.hx
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
package com.abit.haxework.gui.core;
|
||||||
|
|
||||||
|
enum HAlign {
|
||||||
|
TOP;
|
||||||
|
MIDDLE;
|
||||||
|
BOTTOM;
|
||||||
|
}
|
||||||
6
com/abit/haxework/gui/core/SizeType.hx
Executable file
6
com/abit/haxework/gui/core/SizeType.hx
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
package com.abit.haxework.gui.core;
|
||||||
|
|
||||||
|
enum SizeType {
|
||||||
|
NORMAL;
|
||||||
|
PERCENT;
|
||||||
|
}
|
||||||
7
com/abit/haxework/gui/core/VAlign.hx
Executable file
7
com/abit/haxework/gui/core/VAlign.hx
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
package com.abit.haxework.gui.core;
|
||||||
|
|
||||||
|
enum VAlign {
|
||||||
|
LEFT;
|
||||||
|
CENTER;
|
||||||
|
RIGHT;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user