Added fields to view
This commit is contained in:
@@ -1,13 +1,26 @@
|
||||
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.ILayout;
|
||||
import flash.display.Sprite;
|
||||
|
||||
class GroupView extends View implements IGroupView<Sprite> {
|
||||
|
||||
public var layout(default, default):ILayout;
|
||||
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>>;
|
||||
|
||||
public function new(?layout:ILayout) {
|
||||
@@ -46,4 +59,66 @@ class GroupView extends View implements IGroupView<Sprite> {
|
||||
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;
|
||||
|
||||
import com.abit.haxework.gui.core.HAlign;
|
||||
import com.abit.haxework.gui.core.VAlign;
|
||||
import com.abit.haxework.gui.layout.ILayout;
|
||||
|
||||
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 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 removeView(view:IView<C>):IView<C>;
|
||||
public function removeViewById(id:String):IView<C>;
|
||||
|
||||
@@ -1,17 +1,34 @@
|
||||
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.core.SizeType;
|
||||
|
||||
interface IView<C> {
|
||||
public var id(default, null):String;
|
||||
|
||||
public var x(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 height(default, set):Float;
|
||||
|
||||
public var pWidth(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 skin(default, set):ISkin<C, IView<C>>;
|
||||
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
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.display.Stage;
|
||||
import com.abit.haxework.gui.skin.FakeSkin;
|
||||
@@ -16,11 +19,25 @@ class View implements IView<Sprite> {
|
||||
|
||||
public var x(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 height(default, set):Float;
|
||||
|
||||
public var pWidth(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 skin(default, set):ISkin<Sprite, IView<Sprite>>;
|
||||
|
||||
@@ -32,12 +49,22 @@ class View implements IView<Sprite> {
|
||||
skin = new FakeSkin();
|
||||
x = 0;
|
||||
y = 0;
|
||||
width = 100;
|
||||
height = 100;
|
||||
margins = 0;
|
||||
vAlign = VAlign.CENTER;
|
||||
hAlign = HAlign.MIDDLE;
|
||||
}
|
||||
|
||||
private function invalidate():Void {
|
||||
updater.invalidate(this);
|
||||
}
|
||||
|
||||
private function invalidateParent():Void {
|
||||
if (parent != null)
|
||||
updater.invalidate(parent);
|
||||
}
|
||||
|
||||
public function update():Void {
|
||||
content.x = x;
|
||||
content.y = y;
|
||||
@@ -45,40 +72,121 @@ class View implements IView<Sprite> {
|
||||
}
|
||||
|
||||
private function set_x(value:Float):Float {
|
||||
x = value;
|
||||
invalidate();
|
||||
if (x != value) {
|
||||
x = value;
|
||||
invalidate();
|
||||
}
|
||||
return x;
|
||||
}
|
||||
private function set_y(value:Float):Float {
|
||||
y = value;
|
||||
invalidate();
|
||||
if (y != value) {
|
||||
y = value;
|
||||
invalidate();
|
||||
}
|
||||
return y;
|
||||
}
|
||||
|
||||
private function set_width(value:Float):Float {
|
||||
width = value;
|
||||
invalidate();
|
||||
if (width != value || widthType != SizeType.NORMAL) {
|
||||
width = value;
|
||||
widthType = SizeType.NORMAL;
|
||||
invalidate();
|
||||
invalidateParent();
|
||||
}
|
||||
return width;
|
||||
}
|
||||
|
||||
private function set_height(value:Float):Float {
|
||||
height = value;
|
||||
invalidate();
|
||||
if (height != value || heightType != SizeType.NORMAL) {
|
||||
height = value;
|
||||
heightType = SizeType.NORMAL;
|
||||
invalidate();
|
||||
invalidateParent();
|
||||
}
|
||||
return height;
|
||||
}
|
||||
|
||||
private function set_pWidth(value:Float):Float {
|
||||
pWidth = value;
|
||||
invalidate();
|
||||
if (pWidth != value || widthType != SizeType.PERCENT) {
|
||||
pWidth = value;
|
||||
widthType = SizeType.PERCENT;
|
||||
invalidate();
|
||||
invalidateParent();
|
||||
}
|
||||
return pWidth;
|
||||
}
|
||||
|
||||
private function set_pHeight(value:Float):Float {
|
||||
pHeight = value;
|
||||
invalidate();
|
||||
if (pHeight != value || heightType != SizeType.PERCENT) {
|
||||
pHeight = value;
|
||||
heightType = SizeType.PERCENT;
|
||||
invalidate();
|
||||
invalidateParent();
|
||||
}
|
||||
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>> {
|
||||
skin = value;
|
||||
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