mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 11:42:04 +08:00
79 lines
3.2 KiB
TypeScript
79 lines
3.2 KiB
TypeScript
import spanCommon = require("text/span-common");
|
|
import enums = require("ui/enums");
|
|
import formattedString = require("text/formatted-string");
|
|
|
|
declare var exports;
|
|
require("utils/module-merge").merge(spanCommon, exports);
|
|
|
|
export class Span extends spanCommon.Span {
|
|
public updateSpanModifiers(parent: formattedString.FormattedString) {
|
|
super.updateSpanModifiers(parent);
|
|
var realFontFamily = this.fontFamily || (parent ? parent.fontFamily : undefined);
|
|
var realFontSize = this.fontSize ||
|
|
(parent ? parent.fontSize : undefined) ||
|
|
(parent && parent.parent ? parent.parent.style.fontSize : undefined);
|
|
|
|
var realFontAttributes = this.fontAttributes || (parent ? parent.fontAttributes : undefined);
|
|
if (realFontAttributes || realFontFamily || realFontSize) {
|
|
var font;
|
|
if (!realFontSize) {
|
|
realFontSize = UIFont.systemFontSize();
|
|
}
|
|
if (realFontFamily) {
|
|
font = UIFont.fontWithNameSize(realFontFamily, realFontSize);
|
|
}
|
|
|
|
if (!font) {
|
|
var fontDescriptor = UIFontDescriptor.new();
|
|
var symbolicTraits;
|
|
if (realFontAttributes & enums.FontAttributes.Bold) {
|
|
symbolicTraits |= UIFontDescriptorSymbolicTraits.UIFontDescriptorTraitBold;
|
|
}
|
|
if (realFontAttributes & enums.FontAttributes.Italic) {
|
|
symbolicTraits |= UIFontDescriptorSymbolicTraits.UIFontDescriptorTraitItalic;
|
|
}
|
|
font = UIFont.fontWithDescriptorSize(fontDescriptor.fontDescriptorWithSymbolicTraits(symbolicTraits), realFontSize);
|
|
}
|
|
|
|
this.spanModifiers.push({
|
|
key: NSFontAttributeName,
|
|
value: font
|
|
});
|
|
}
|
|
|
|
var realForegroundColor = this.foregroundColor ||
|
|
(parent ? parent.foregroundColor : undefined) ||
|
|
(parent && parent.parent ? parent.parent.style.color : undefined);
|
|
if (realForegroundColor) {
|
|
this.spanModifiers.push({
|
|
key: NSForegroundColorAttributeName,
|
|
value: realForegroundColor.ios
|
|
});
|
|
}
|
|
|
|
var realBackgroundColor = this.backgroundColor ||
|
|
(parent ? parent.backgroundColor : undefined) ||
|
|
(parent && parent.parent ? parent.parent.style.backgroundColor : undefined);
|
|
if (realBackgroundColor) {
|
|
this.spanModifiers.push({
|
|
key: NSBackgroundColorAttributeName,
|
|
value: realBackgroundColor.ios
|
|
});
|
|
}
|
|
|
|
var realUnderline = this.underline || (parent ? parent.underline : undefined);
|
|
if (realUnderline) {
|
|
this.spanModifiers.push({
|
|
key: NSUnderlineStyleAttributeName,
|
|
value: realUnderline
|
|
});
|
|
}
|
|
var realStrikethrough = this.strikethrough || (parent ? parent.strikethrough : undefined);
|
|
if (realStrikethrough) {
|
|
this.spanModifiers.push({
|
|
key: NSStrikethroughStyleAttributeName,
|
|
value: realStrikethrough
|
|
});
|
|
}
|
|
}
|
|
} |