import {Property, PropertyMetadataSettings, PropertyChangeData} from "ui/core/dependency-observable"; import view = require("ui/core/view"); import definition = require("ui/button"); import proxy = require("ui/core/proxy"); import formattedString = require("text/formatted-string"); import observable = require("data/observable"); import * as weakEventListenerModule from "ui/core/weak-event-listener"; import {WhiteSpace} from "ui/enums"; import {isAndroid} from "platform"; // on Android we explicitly set propertySettings to None because android will invalidate its layout (skip unnecessary native call). let AffectsLayout = isAndroid ? PropertyMetadataSettings.None : PropertyMetadataSettings.AffectsLayout; var weakEvents: typeof weakEventListenerModule; function ensureWeakEvents() { if (!weakEvents) { weakEvents = require("ui/core/weak-event-listener"); } } const textProperty = new Property("text", "Button", new proxy.PropertyMetadata("", AffectsLayout)); const formattedTextProperty = new Property("formattedText", "Button", new proxy.PropertyMetadata("", AffectsLayout)); const textWrapProperty = new Property("textWrap", "Button", new proxy.PropertyMetadata(false, AffectsLayout)); function onTextPropertyChanged(data: PropertyChangeData) { var button =