Files
NativeScript/tests/app/ui/layouts/layout-helper.ios.ts
Panayot Cankov e135c20b14 Rename the files
2016-05-26 14:30:25 +03:00

201 lines
5.9 KiB
TypeScript

import {Button} from "ui/button";
import {StackLayout} from "ui/layouts/stack-layout";
import {GridLayout} from "ui/layouts/grid-layout";
import utils = require("utils/utils");
import TKUnit = require("../../TKUnit");
import def = require("./layout-helper");
var DELTA = 0.1;
export class MyGridLayout extends GridLayout implements def.MyGridLayout {
public measureCount: number = 0;
public arrangeCount: number = 0;
public widthMeasureSpec: number = Number.NaN;
public heightMeasureSpec: number = Number.NaN;
public onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
this.widthMeasureSpec = widthMeasureSpec;
this.heightMeasureSpec = heightMeasureSpec;
this.measureCount++;
}
public onLayout(left: number, top: number, right: number, bottom: number): void {
super.onLayout(left, top, right, bottom);
this.arrangeCount++;
}
public get measured(): boolean {
return this.measureCount > 0;
}
public get arranged(): boolean {
return this.arrangeCount > 0;
}
public get measureWidth() {
return utils.layout.getMeasureSpecSize(this.widthMeasureSpec);
}
public get measureHeight() {
return utils.layout.getMeasureSpecSize(this.heightMeasureSpec);
}
get layoutWidth(): number {
let bounds = this._getCurrentLayoutBounds();
return bounds.right - bounds.left;
}
get layoutHeight(): number {
let bounds = this._getCurrentLayoutBounds();
return bounds.bottom - bounds.top;
}
get layoutLeft(): number {
let bounds = this._getCurrentLayoutBounds();
return bounds.left;
}
get layoutTop(): number {
let bounds = this._getCurrentLayoutBounds();
return bounds.top;
}
}
export class MyStackLayout extends StackLayout implements def.MyStackLayout {
public measureCount: number = 0;
public arrangeCount: number = 0;
public widthMeasureSpec: number = Number.NaN;
public heightMeasureSpec: number = Number.NaN;
public onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
this.widthMeasureSpec = widthMeasureSpec;
this.heightMeasureSpec = heightMeasureSpec;
this.measureCount++;
}
public onLayout(left: number, top: number, right: number, bottom: number): void {
super.onLayout(left, top, right, bottom);
this.arrangeCount++;
}
public get measured(): boolean {
return this.measureCount > 0;
}
public get arranged(): boolean {
return this.arrangeCount > 0;
}
public get measureWidth() {
return utils.layout.getMeasureSpecSize(this.widthMeasureSpec);
}
public get measureHeight() {
return utils.layout.getMeasureSpecSize(this.heightMeasureSpec);
}
get layoutWidth(): number {
let bounds = this._getCurrentLayoutBounds();
return bounds.right - bounds.left;
}
get layoutHeight(): number {
let bounds = this._getCurrentLayoutBounds();
return bounds.bottom - bounds.top;
}
get layoutLeft(): number {
let bounds = this._getCurrentLayoutBounds();
return bounds.left;
}
get layoutTop(): number {
let bounds = this._getCurrentLayoutBounds();
return bounds.top;
}
}
export class MyButton extends Button implements def.MyButton {
public measureCount: number = 0;
public arrangeCount: number = 0;
public widthMeasureSpec: number = Number.NaN;
public heightMeasureSpec: number = Number.NaN;
public onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
this.widthMeasureSpec = widthMeasureSpec;
this.heightMeasureSpec = heightMeasureSpec;
this.measureCount++;
}
public onLayout(left: number, top: number, right: number, bottom: number): void {
super.onLayout(left, top, right, bottom);
this.arrangeCount++;
}
public get measured(): boolean {
return this.measureCount > 0;
}
public get arranged(): boolean {
return this.arrangeCount > 0;
}
public get measureWidth() {
return utils.layout.getMeasureSpecSize(this.widthMeasureSpec);
}
public get measureHeight() {
return utils.layout.getMeasureSpecSize(this.heightMeasureSpec);
}
get layoutWidth(): number {
let bounds = this._getCurrentLayoutBounds();
return bounds.right - bounds.left;
}
get layoutHeight(): number {
let bounds = this._getCurrentLayoutBounds();
return bounds.bottom - bounds.top;
}
get layoutLeft(): number {
let bounds = this._getCurrentLayoutBounds();
return bounds.left;
}
get layoutTop(): number {
let bounds = this._getCurrentLayoutBounds();
return bounds.top;
}
}
export function assertMeasure(view: def.MeasuredView, width: number, height: number, name?: string) {
name = name ? "[" + name + "]" : "";
TKUnit.assertAreClose(view.measureWidth, width, DELTA, name + "width");
TKUnit.assertAreClose(view.measureHeight, height, DELTA, name + "height");
}
export function assertLayout(view: def.MeasuredView, left: number, top: number, width: number, height: number, name?: string): void {
name = name ? "[" + name + "]" : "";
TKUnit.assertAreClose(view.layoutLeft, left, DELTA, name + "left");
TKUnit.assertAreClose(view.layoutTop, top, DELTA, name + "top");
TKUnit.assertAreClose(view.layoutWidth, width, DELTA, name + "width");
TKUnit.assertAreClose(view.layoutHeight, height, DELTA, name + "height");
}
export function dp(value: number): number {
return utils.layout.toDeviceIndependentPixels(value);
}
export function dip(value: number): number {
return utils.layout.toDevicePixels(value);
}