mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 20:11:24 +08:00
57 lines
2.8 KiB
TypeScript
57 lines
2.8 KiB
TypeScript
import spanCommon = require("text/span-common");
|
|
import enums = require("ui/enums");
|
|
import formattedString = require("text/formatted-string");
|
|
import utils = require("utils/utils");
|
|
|
|
global.moduleMerge(spanCommon, exports);
|
|
|
|
export class Span extends spanCommon.Span {
|
|
public updateSpanModifiers(parent: formattedString.FormattedString) {
|
|
super.updateSpanModifiers(parent);
|
|
var realFontFamily = this.fontFamily || (parent ? parent.fontFamily : undefined);
|
|
if (realFontFamily) {
|
|
this.spanModifiers.push(new android.text.style.TypefaceSpan(realFontFamily));
|
|
}
|
|
var realFontSize = this.fontSize ||
|
|
(parent ? parent.fontSize : undefined) ||
|
|
(parent && parent.parent ? parent.parent.style.fontSize : undefined);
|
|
if (realFontSize) {
|
|
this.spanModifiers.push(new android.text.style.AbsoluteSizeSpan(realFontSize * utils.layout.getDisplayDensity()));
|
|
}
|
|
|
|
var realForegroundColor = this.foregroundColor ||
|
|
(parent ? parent.foregroundColor : undefined) ||
|
|
(parent && parent.parent ? parent.parent.style.color : undefined);
|
|
if (realForegroundColor) {
|
|
this.spanModifiers.push(new android.text.style.ForegroundColorSpan(realForegroundColor.android));
|
|
}
|
|
|
|
var realBackgroundColor = this.backgroundColor ||
|
|
(parent ? parent.backgroundColor : undefined) ||
|
|
(parent && parent.parent ? parent.parent.style.backgroundColor : undefined);
|
|
if (realBackgroundColor) {
|
|
this.spanModifiers.push(new android.text.style.BackgroundColorSpan(realBackgroundColor.android));
|
|
}
|
|
|
|
var realFontAttributes = this.fontAttributes || (parent ? parent.fontAttributes : undefined);
|
|
if (realFontAttributes) {
|
|
if ((realFontAttributes & enums.FontAttributes.Bold) && (realFontAttributes & enums.FontAttributes.Italic)) {
|
|
this.spanModifiers.push(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD_ITALIC));
|
|
}
|
|
else if (realFontAttributes & enums.FontAttributes.Bold) {
|
|
this.spanModifiers.push(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD));
|
|
}
|
|
else if (realFontAttributes & enums.FontAttributes.Italic) {
|
|
this.spanModifiers.push(new android.text.style.StyleSpan(android.graphics.Typeface.ITALIC));
|
|
}
|
|
}
|
|
var realUnderline = this.underline || (parent ? parent.underline : undefined);
|
|
if (realUnderline) {
|
|
this.spanModifiers.push(new android.text.style.UnderlineSpan());
|
|
}
|
|
var realStrikethrough = this.strikethrough || (parent ? parent.strikethrough : undefined);
|
|
if (realStrikethrough) {
|
|
this.spanModifiers.push(new android.text.style.StrikethroughSpan());
|
|
}
|
|
}
|
|
} |