white-space CSS support added

This commit is contained in:
Vladimir Enchev
2015-11-11 11:25:55 +02:00
parent 4fddce9d0b
commit 93cf00389e
20 changed files with 180 additions and 63 deletions

View File

@ -5,6 +5,7 @@ import proxy = require("ui/core/proxy");
import formattedString = require("text/formatted-string");
import observable = require("data/observable");
import weakEvents = require("ui/core/weak-event-listener");
import enums = require("ui/enums");
var textProperty = new dependencyObservable.Property(
"text",
@ -121,4 +122,11 @@ export class Button extends view.View implements definition.Button {
public _addChildFromBuilder(name: string, value: any): void {
formattedString.FormattedString.addFormattedStringToView(this, name, value);
}
}
}
function onTextWrapPropertyChanged(data: dependencyObservable.PropertyChangeData) {
var v = <view.View>data.object;
v.style.whiteSpace = data.newValue ? enums.WhiteSpace.normal : enums.WhiteSpace.nowrap;
}
(<proxy.PropertyMetadata>Button.textWrapProperty.metadata).onSetNativeValue = onTextWrapPropertyChanged;

View File

@ -5,18 +5,6 @@ import proxy = require("ui/core/proxy");
global.moduleMerge(common, exports);
function onTextWrapPropertyChanged(data: dependencyObservable.PropertyChangeData) {
var btn = <Button>data.object;
if (!btn.android) {
return;
}
btn.android.setSingleLine(data.newValue);
}
// register the setNativeValue callback
(<proxy.PropertyMetadata>common.Button.textWrapProperty.metadata).onSetNativeValue = onTextWrapPropertyChanged;
export class Button extends common.Button {
private _android: android.widget.Button;
private _isPressed: boolean;

View File

@ -16,6 +16,11 @@ declare module "ui/button" {
*/
public static textProperty: dependencyObservable.Property;
/**
* Dependency property used to support binding operations for the text wrapping of the current button instance.
*/
public static textWrapProperty: dependencyObservable.Property;
/**
* String value used when hooking to tap event.
*/

View File

@ -26,18 +26,6 @@ class TapHandlerImpl extends NSObject {
global.moduleMerge(common, exports);
function onTextWrapPropertyChanged(data: dependencyObservable.PropertyChangeData) {
var btn = <Button>data.object;
if (!btn.ios) {
return;
}
btn.ios.titleLabel.lineBreakMode = data.newValue ? NSLineBreakMode.NSLineBreakByWordWrapping : 0;
}
// register the setNativeValue callback
(<proxy.PropertyMetadata>common.Button.textWrapProperty.metadata).onSetNativeValue = onTextWrapPropertyChanged;
export class Button extends common.Button {
private _ios: UIButton;
private _tapHandler: NSObject;