Fixed all merge problems.

This commit is contained in:
Rossen Hristov
2015-08-06 14:56:52 +03:00
parent abc9faccfa
commit 59d6dbb224
9 changed files with 114 additions and 210 deletions

View File

@ -1,12 +1,14 @@
Button, Label, TextView, TextField { Button, Label, TextView, TextField {
border-color: black; border-color: black;
border-width: 50; border-width: 10;
border-radius: 3; border-radius: 3;
padding-left: 50; padding: 10;
padding-top: 50; /*padding-left: 20;
padding-right: 50; padding-top: 20;
padding-bottom: 50; padding-right: 20;
padding-bottom: 20;*/
margin: 10; margin: 10;
font-size: 24; font-size: 24;
text-align: right; text-align: left;
color: black;
} }

View File

@ -1,51 +1,51 @@
import observableModule = require("data/observable"); //import observableModule = require("data/observable");
import pagesModule = require("ui/page"); //import pagesModule = require("ui/page");
import textFieldModule = require("ui/text-field"); //import textFieldModule = require("ui/text-field");
import textViewModule = require("ui/text-view"); //import textViewModule = require("ui/text-view");
import buttonModule = require("ui/button"); //import buttonModule = require("ui/button");
import labelModule = require("ui/label"); //import labelModule = require("ui/label");
import model = require("./model"); //import model = require("./model");
import colorModule = require("color"); //import colorModule = require("color");
import stackLayoutModule = require("ui/layouts/stack-layout"); //import stackLayoutModule = require("ui/layouts/stack-layout");
import enums = require("ui/enums"); //import enums = require("ui/enums");
var stackLayout: stackLayoutModule.StackLayout; //var stackLayout: stackLayoutModule.StackLayout;
var textField: textFieldModule.TextField; //var textField: textFieldModule.TextField;
var textView: textViewModule.TextView; //var textView: textViewModule.TextView;
var button: buttonModule.Button; //var button: buttonModule.Button;
var label: labelModule.Label; //var label: labelModule.Label;
export function onPageLoaded(args: observableModule.EventData) { //export function onPageLoaded(args: observableModule.EventData) {
var page = <pagesModule.Page>args.object; // var page = <pagesModule.Page>args.object;
//stackLayout = page.getViewById<stackLayoutModule.StackLayout>("stack"); // stackLayout = page.getViewById<stackLayoutModule.StackLayout>("stack");
//button = page.getViewById<buttonModule.Button>("button"); // button = page.getViewById<buttonModule.Button>("button");
//label = page.getViewById<labelModule.Label>("label"); // label = page.getViewById<labelModule.Label>("label");
//if (stackLayout.android) { // if (stackLayout.android) {
// stackLayout.android.setClickable(true); // stackLayout.android.setClickable(true);
// stackLayout.android.setFocusableInTouchMode(true); // stackLayout.android.setFocusableInTouchMode(true);
//} // }
//textField = page.getViewById<textFieldModule.TextField>("textField"); // textField = page.getViewById<textFieldModule.TextField>("textField");
//textField.style.backgroundColor = new colorModule.Color("LightGray"); // textField.style.backgroundColor = new colorModule.Color("LightGray");
//textView = page.getViewById<textViewModule.TextView>("textView"); // textView = page.getViewById<textViewModule.TextView>("textView");
//textView.style.backgroundColor = new colorModule.Color("BlanchedAlmond"); // textView.style.backgroundColor = new colorModule.Color("BlanchedAlmond");
//var viewModel = new model.WebViewModel(); // var viewModel = new model.WebViewModel();
//page.bindingContext = viewModel; // page.bindingContext = viewModel;
} //}
export function onTap(args: observableModule.EventData) { //export function onTap(args: observableModule.EventData) {
//if (textField.updateTextTrigger === enums.UpdateTextTrigger.focusLost) { // if (textField.updateTextTrigger === enums.UpdateTextTrigger.focusLost) {
// textField.updateTextTrigger = enums.UpdateTextTrigger.textChanged; // textField.updateTextTrigger = enums.UpdateTextTrigger.textChanged;
// textView.updateTextTrigger = enums.UpdateTextTrigger.textChanged; // textView.updateTextTrigger = enums.UpdateTextTrigger.textChanged;
// button.text = "textChanged"; // button.text = "textChanged";
//} // }
//else { // else {
// textField.updateTextTrigger = enums.UpdateTextTrigger.focusLost; // textField.updateTextTrigger = enums.UpdateTextTrigger.focusLost;
// textView.updateTextTrigger = enums.UpdateTextTrigger.focusLost; // textView.updateTextTrigger = enums.UpdateTextTrigger.focusLost;
// button.text = "focusLost"; // button.text = "focusLost";
//} // }
} //}

View File

@ -1,6 +1,6 @@
<Page loaded="onPageLoaded"> <Page>
<StackLayout id="stack"> <StackLayout id="stack" backgroundColor="LightGray">
<Button id="button" text="button" tap="onTap" backgroundColor="Green" /> <Button id="button" text="button" backgroundColor="Green" />
<Label id="label" text="label" backgroundColor="Yellow"/> <Label id="label" text="label" backgroundColor="Yellow"/>
<TextField id="textField" text="text-field" hint="hint" backgroundColor="Red"/> <TextField id="textField" text="text-field" hint="hint" backgroundColor="Red"/>
<TextView id="textView" text="text-view" backgroundColor="Blue"/> <TextView id="textView" text="text-view" backgroundColor="Blue"/>

View File

@ -39,20 +39,20 @@ class UILabelImpl extends UILabel {
public textRectForBoundsLimitedToNumberOfLines(bounds: CGRect, numberOfLines: number): CGRect { public textRectForBoundsLimitedToNumberOfLines(bounds: CGRect, numberOfLines: number): CGRect {
var rect = super.textRectForBoundsLimitedToNumberOfLines(bounds, numberOfLines); var rect = super.textRectForBoundsLimitedToNumberOfLines(bounds, numberOfLines);
var textRect = CGRectMake( var textRect = CGRectMake(
- (this._owner.borderWidth + this._owner.paddingLeft), - (this._owner.borderWidth + this._owner.style.paddingLeft),
- (this._owner.borderWidth + this._owner.paddingTop), - (this._owner.borderWidth + this._owner.style.paddingTop),
rect.size.width + (this._owner.borderWidth + this._owner.paddingLeft + this._owner.paddingRight + this._owner.borderWidth), rect.size.width + (this._owner.borderWidth + this._owner.style.paddingLeft + this._owner.style.paddingRight + this._owner.borderWidth),
rect.size.height + (this._owner.borderWidth + this._owner.paddingTop + this._owner.paddingBottom + this._owner.borderWidth) rect.size.height + (this._owner.borderWidth + this._owner.style.paddingTop + this._owner.style.paddingBottom + this._owner.borderWidth)
); );
return textRect; return textRect;
} }
public drawTextInRect(rect: CGRect): void { public drawTextInRect(rect: CGRect): void {
var textRect = CGRectMake( var textRect = CGRectMake(
(this._owner.borderWidth + this._owner.paddingLeft), (this._owner.borderWidth + this._owner.style.paddingLeft),
(this._owner.borderWidth + this._owner.paddingTop), (this._owner.borderWidth + this._owner.style.paddingTop),
rect.size.width - (this._owner.borderWidth + this._owner.paddingLeft + this._owner.paddingRight + this._owner.borderWidth), rect.size.width - (this._owner.borderWidth + this._owner.style.paddingLeft + this._owner.style.paddingRight + this._owner.borderWidth),
rect.size.height - (this._owner.borderWidth + this._owner.paddingTop + this._owner.paddingBottom + this._owner.borderWidth) rect.size.height - (this._owner.borderWidth + this._owner.style.paddingTop + this._owner.style.paddingBottom + this._owner.borderWidth)
); );
super.drawTextInRect(textRect); super.drawTextInRect(textRect);
} }

View File

@ -805,34 +805,6 @@ export var minHeightProperty = new styleProperty.Property("minHeight", "min-heig
0, observable.PropertyMetadataSettings.AffectsLayout, null, isMinWidthHeightValid), 0, observable.PropertyMetadataSettings.AffectsLayout, null, isMinWidthHeightValid),
converters.numberConverter); converters.numberConverter);
export function parseThickness(value: any): { top: number; right: number; bottom: number; left: number } {
var result = { top: 0, right: 0, bottom: 0, left: 0 };
if (types.isString(value)) {
var arr = value.split(/[ ,]+/);
var top = parseInt(arr[0]);
top = isNaN(top) ? 0 : top;
var right = parseInt(arr[1]);
right = isNaN(right) ? top : right;
var bottom = parseInt(arr[2]);
bottom = isNaN(bottom) ? top : bottom;
var left = parseInt(arr[3]);
left = isNaN(left) ? right : left;
result.top = top;
result.right = right;
result.bottom = bottom;
result.left = left;
} else if (types.isNumber(value)) {
result.top = result.right = result.bottom = result.left = value;
}
return result;
}
// Helper property holding most layout related properties available in CSS. // Helper property holding most layout related properties available in CSS.
// When layout related properties are set in CSS we chache them and send them to the native view in a single call. // When layout related properties are set in CSS we chache them and send them to the native view in a single call.
export var nativeLayoutParamsProperty = new styleProperty.Property("nativeLayoutParams", "nativeLayoutParams", export var nativeLayoutParamsProperty = new styleProperty.Property("nativeLayoutParams", "nativeLayoutParams",
@ -877,11 +849,7 @@ export var marginTopProperty = new styleProperty.Property("marginTop", "margin-t
export var marginBottomProperty = new styleProperty.Property("marginBottom", "margin-bottom", export var marginBottomProperty = new styleProperty.Property("marginBottom", "margin-bottom",
new observable.PropertyMetadata(0, AffectsLayout, onLayoutParamsChanged, isMarginValid), converters.numberConverter); new observable.PropertyMetadata(0, AffectsLayout, onLayoutParamsChanged, isMarginValid), converters.numberConverter);
export var paddingProperty = new styleProperty.Property("padding", "padding", export var paddingProperty = new styleProperty.Property("padding", "padding", new observable.PropertyMetadata(null, null, onPaddingChanged));
new observable.PropertyMetadata(null, null, onPaddingChanged));
export var paddingProperty = new styleProperty.Property("padding", "padding",
new observable.PropertyMetadata(null, null, onPaddingChanged));
export var paddingLeftProperty = new styleProperty.Property("paddingLeft", "padding-left", export var paddingLeftProperty = new styleProperty.Property("paddingLeft", "padding-left",
new observable.PropertyMetadata(0, AffectsLayout, onPaddingValueChanged, isPaddingValid), converters.numberConverter); new observable.PropertyMetadata(0, AffectsLayout, onPaddingValueChanged, isPaddingValid), converters.numberConverter);

View File

@ -35,10 +35,12 @@ function onBackgroundOrBorderPropertyChanged(v: view.View) {
} }
var density = utils.layout.getDisplayDensity(); var density = utils.layout.getDisplayDensity();
nativeView.setPadding((v.borderWidth + v.paddingLeft) * density, nativeView.setPadding(
(v.borderWidth + v.paddingTop) * density, (v.borderWidth + v.style.paddingLeft) * density,
(v.borderWidth + v.paddingRight) * density, (v.borderWidth + v.style.paddingTop) * density,
(v.borderWidth + v.paddingBottom) * density); (v.borderWidth + v.style.paddingRight) * density,
(v.borderWidth + v.style.paddingBottom) * density
);
bkg.borderWidth = v.borderWidth; bkg.borderWidth = v.borderWidth;
bkg.cornerRadius = v.borderRadius; bkg.cornerRadius = v.borderRadius;
@ -204,6 +206,24 @@ export class DefaultStyler implements definition.stylers.Styler {
nativeView.setLayoutParams(lp); nativeView.setLayoutParams(lp);
} }
public static setPaddingProperty(view: view.View, newValue: any) {
var density = utils.layout.getDisplayDensity();
var left = (newValue.left + view.borderWidth) * density;
var top = (newValue.top + view.borderWidth) * density;
var right = (newValue.right + view.borderWidth) * density;
var bottom = (newValue.bottom + view.borderWidth) * density;
(<android.view.View>view._nativeView).setPadding(left, top, right, bottom);
}
public static resetPaddingProperty(view: view.View, nativeValue: any) {
var density = utils.layout.getDisplayDensity();
var left = view.borderWidth * density;
var top = view.borderWidth * density;
var right = view.borderWidth * density;
var bottom = view.borderWidth * density;
(<android.view.View>view._nativeView).setPadding(left, top, right, bottom);
}
public static registerHandlers() { public static registerHandlers() {
style.registerHandler(style.visibilityProperty, new stylersCommon.StylePropertyChangedHandler( style.registerHandler(style.visibilityProperty, new stylersCommon.StylePropertyChangedHandler(
DefaultStyler.setVisibilityProperty, DefaultStyler.setVisibilityProperty,
@ -221,22 +241,6 @@ export class DefaultStyler implements definition.stylers.Styler {
DefaultStyler.setMinHeightProperty, DefaultStyler.setMinHeightProperty,
DefaultStyler.resetMinHeightProperty)) DefaultStyler.resetMinHeightProperty))
style.registerHandler(style.paddingLeftProperty, new stylersCommon.StylePropertyChangedHandler(
DefaultStyler.setPaddingLeftProperty,
DefaultStyler.resetPaddingLeftProperty))
style.registerHandler(style.paddingTopProperty, new stylersCommon.StylePropertyChangedHandler(
DefaultStyler.setPaddingTopProperty,
DefaultStyler.resetPaddingTopProperty))
style.registerHandler(style.paddingRightProperty, new stylersCommon.StylePropertyChangedHandler(
DefaultStyler.setPaddingRightProperty,
DefaultStyler.resetPaddingRightProperty))
style.registerHandler(style.paddingBottomProperty, new stylersCommon.StylePropertyChangedHandler(
DefaultStyler.setPaddingBottomProperty,
DefaultStyler.resetPaddingBottomProperty))
// Use the same handler for all background/border properties // Use the same handler for all background/border properties
// Note: There is no default value getter - the default value is handled in onBackgroundOrBorderPropertyChanged // Note: There is no default value getter - the default value is handled in onBackgroundOrBorderPropertyChanged
var borderHandler = new stylersCommon.StylePropertyChangedHandler( var borderHandler = new stylersCommon.StylePropertyChangedHandler(
@ -251,6 +255,18 @@ export class DefaultStyler implements definition.stylers.Styler {
style.registerHandler(style.nativeLayoutParamsProperty, new stylersCommon.StylePropertyChangedHandler( style.registerHandler(style.nativeLayoutParamsProperty, new stylersCommon.StylePropertyChangedHandler(
DefaultStyler.setNativeLayoutParamsProperty, DefaultStyler.setNativeLayoutParamsProperty,
DefaultStyler.resetNativeLayoutParamsProperty)); DefaultStyler.resetNativeLayoutParamsProperty));
style.registerHandler(style.nativePaddingsProperty, new stylersCommon.StylePropertyChangedHandler(
DefaultStyler.setPaddingProperty,
DefaultStyler.resetPaddingProperty), "TextBase");
style.registerHandler(style.nativePaddingsProperty, new stylersCommon.StylePropertyChangedHandler(
DefaultStyler.setPaddingProperty,
DefaultStyler.resetPaddingProperty), "Button");
style.registerHandler(style.nativePaddingsProperty, new stylersCommon.StylePropertyChangedHandler(
DefaultStyler.setPaddingProperty,
DefaultStyler.resetPaddingProperty), "LayoutBase");
} }
} }
@ -361,7 +377,6 @@ export class TextViewStyler implements definition.stylers.Styler {
TextViewStyler.setTextAlignmentProperty, TextViewStyler.setTextAlignmentProperty,
TextViewStyler.resetTextAlignmentProperty, TextViewStyler.resetTextAlignmentProperty,
TextViewStyler.getNativeTextAlignmentValue), "Button"); TextViewStyler.getNativeTextAlignmentValue), "Button");
} }
} }
@ -493,28 +508,6 @@ export class SearchBarStyler implements definition.stylers.Styler {
} }
} }
export class LayoutBaseStyler implements definition.stylers.Styler {
//nativePadding methods
private static setPaddingNativeProperty(view: view.View, newValue: style.Thickness): void {
var left = (newValue.left * utils.layout.getDisplayDensity());
var top = (newValue.top * utils.layout.getDisplayDensity());
var right = (newValue.right * utils.layout.getDisplayDensity());
var bottom = (newValue.bottom * utils.layout.getDisplayDensity());
(<android.view.View>view._nativeView).setPadding(left, top, right, bottom);
}
private static resetPaddingNativeProperty(view: view.View, nativeValue: any): void {
(<android.view.View>view._nativeView).setPadding(0, 0, 0, 0);
}
public static registerHandlers() {
style.registerHandler(style.nativePaddingsProperty, new stylersCommon.StylePropertyChangedHandler(
LayoutBaseStyler.setPaddingNativeProperty,
LayoutBaseStyler.resetPaddingNativeProperty), "LayoutBase");
}
}
// Register all styler at the end. // Register all styler at the end.
export function _registerDefaultStylers() { export function _registerDefaultStylers() {
style.registerNoStylingClass("Frame"); style.registerNoStylingClass("Frame");
@ -523,5 +516,4 @@ export function _registerDefaultStylers() {
ActivityIndicatorStyler.registerHandlers(); ActivityIndicatorStyler.registerHandlers();
SegmentedBarStyler.registerHandlers(); SegmentedBarStyler.registerHandlers();
SearchBarStyler.registerHandlers(); SearchBarStyler.registerHandlers();
LayoutBaseStyler.registerHandlers();
} }

View File

@ -228,36 +228,16 @@ export class ButtonStyler implements definition.stylers.Styler {
} }
// Padding // Padding
private static setPaddingLeftProperty(view: view.View, newValue: any) { private static setPaddingProperty(view: view.View, newValue: any) {
(<UIButton>view._nativeView).contentEdgeInsets = UIEdgeInsetsFromString("{" + view.paddingTop + "," + newValue + "," + view.paddingBottom + "," + view.paddingRight + "}"); var top = newValue.top + view.borderWidth;
var left = newValue.left + view.borderWidth;
var bottom = newValue.bottom + view.borderWidth;
var right = newValue.right + view.borderWidth;
(<UIButton>view._nativeView).contentEdgeInsets = UIEdgeInsetsFromString(`{${top},${left},${bottom},${right}}`);
} }
private static resetPaddingLeftProperty(view: view.View, nativeValue: any) { private static resetPaddingProperty(view: view.View, nativeValue: any) {
(<UIButton>view._nativeView).contentEdgeInsets = UIEdgeInsetsFromString("{" + view.paddingTop + "," + 0 + "," + view.paddingBottom + "," + view.paddingRight + "}"); (<UIButton>view._nativeView).contentEdgeInsets = UIEdgeInsetsFromString("{0,0,0,0}");
}
private static setPaddingTopProperty(view: view.View, newValue: any) {
(<UIButton>view._nativeView).contentEdgeInsets = UIEdgeInsetsFromString("{" + newValue + "," + view.paddingLeft + "," + view.paddingBottom + "," + view.paddingRight + "}");
}
private static resetPaddingTopProperty(view: view.View, nativeValue: any) {
(<UIButton>view._nativeView).contentEdgeInsets = UIEdgeInsetsFromString("{" + 0 + "," + view.paddingLeft + "," + view.paddingBottom + "," + view.paddingRight + "}");
}
private static setPaddingRightProperty(view: view.View, newValue: any) {
(<UIButton>view._nativeView).contentEdgeInsets = UIEdgeInsetsFromString("{" + view.paddingTop + "," + view.paddingLeft + "," + view.paddingBottom + "," + newValue + "}");
}
private static resetPaddingRightProperty(view: view.View, nativeValue: any) {
(<UIButton>view._nativeView).contentEdgeInsets = UIEdgeInsetsFromString("{" + view.paddingTop + "," + view.paddingLeft + "," + view.paddingBottom + "," + 0 + "}");
}
private static setPaddingBottomProperty(view: view.View, newValue: any) {
(<UIButton>view._nativeView).contentEdgeInsets = UIEdgeInsetsFromString("{" + view.paddingTop + "," + view.paddingLeft + "," + newValue + "," + view.paddingRight + "}");
}
private static resetPaddingBottomProperty(view: view.View, nativeValue: any) {
(<UIButton>view._nativeView).contentEdgeInsets = UIEdgeInsetsFromString("{" + view.paddingTop + "," + view.paddingLeft + "," + 0 + "," + view.paddingRight + "}");
} }
public static registerHandlers() { public static registerHandlers() {
@ -276,21 +256,9 @@ export class ButtonStyler implements definition.stylers.Styler {
ButtonStyler.resetTextAlignmentProperty, ButtonStyler.resetTextAlignmentProperty,
ButtonStyler.getNativeTextAlignmentValue), "Button"); ButtonStyler.getNativeTextAlignmentValue), "Button");
style.registerHandler(style.paddingLeftProperty, new stylersCommon.StylePropertyChangedHandler( style.registerHandler(style.nativePaddingsProperty, new stylersCommon.StylePropertyChangedHandler(
ButtonStyler.setPaddingLeftProperty, ButtonStyler.setPaddingProperty,
ButtonStyler.resetPaddingLeftProperty), "Button"); ButtonStyler.resetPaddingProperty), "Button");
style.registerHandler(style.paddingTopProperty, new stylersCommon.StylePropertyChangedHandler(
ButtonStyler.setPaddingTopProperty,
ButtonStyler.resetPaddingTopProperty), "Button");
style.registerHandler(style.paddingRightProperty, new stylersCommon.StylePropertyChangedHandler(
ButtonStyler.setPaddingRightProperty,
ButtonStyler.resetPaddingRightProperty), "Button");
style.registerHandler(style.paddingBottomProperty, new stylersCommon.StylePropertyChangedHandler(
ButtonStyler.setPaddingBottomProperty,
ButtonStyler.resetPaddingBottomProperty), "Button");
} }
} }

View File

@ -87,10 +87,10 @@ class UITextFieldImpl extends UITextField {
} }
return CGRectMake( return CGRectMake(
this._owner.borderWidth + this._owner.paddingLeft, this._owner.borderWidth + this._owner.style.paddingLeft,
this._owner.borderWidth + this._owner.paddingTop, this._owner.borderWidth + this._owner.style.paddingTop,
bounds.size.width - (this._owner.borderWidth + this._owner.paddingLeft + this._owner.paddingRight + this._owner.borderWidth), bounds.size.width - (this._owner.borderWidth + this._owner.style.paddingLeft + this._owner.style.paddingRight + this._owner.borderWidth),
bounds.size.height - (this._owner.borderWidth + this._owner.paddingTop + this._owner.paddingBottom + this._owner.borderWidth) bounds.size.height - (this._owner.borderWidth + this._owner.style.paddingTop + this._owner.style.paddingBottom + this._owner.borderWidth)
); );
} }

View File

@ -40,31 +40,6 @@ class UITextViewDelegateImpl extends NSObject implements UITextViewDelegate {
} }
} }
//class UITextViewImpl extends UITextView {
// static new(): UITextViewImpl {
// return <UITextViewImpl>super.new();
// }
// private _owner: TextView;
// public initWithOwner(owner: TextView): UITextViewImpl {
// this._owner = owner;
// return this;
// }
// public textRectForBoundsLimitedToNumberOfLines(bounds: CGRect, numberOfLines: number): CGRect {
// var rect = super.textRectForBoundsLimitedToNumberOfLines(bounds, numberOfLines);
// var textRect = CGRectMake(
// this._owner.borderWidth + this._owner.paddingLeft,
// this._owner.borderWidth + this._owner.paddingTop,
// rect.size.width - (this._owner.borderWidth + this._owner.paddingLeft + this._owner.paddingRight + this._owner.borderWidth),
// rect.size.height - (this._owner.borderWidth + this._owner.paddingTop + this._owner.paddingBottom + this._owner.borderWidth)
// );
// console.log("UITextViewImpl.textRectForBoundsLimitedToNumberOfLines(" + NSStringFromCGRect(bounds) + "): " + NSStringFromCGRect(textRect));
// return textRect;
// }
//}
export class TextView extends common.TextView { export class TextView extends common.TextView {
private _ios: UITextView; private _ios: UITextView;
private _delegate: UITextViewDelegateImpl; private _delegate: UITextViewDelegateImpl;
@ -73,7 +48,6 @@ export class TextView extends common.TextView {
super(); super();
this._ios = new UITextView(); this._ios = new UITextView();
//this._ios = UITextViewImpl.new().initWithOwner(this);
if (!this._ios.font) { if (!this._ios.font) {
this._ios.font = UIFont.systemFontOfSize(12); this._ios.font = UIFont.systemFontOfSize(12);
} }