mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 20:11:24 +08:00
Added font related properties for SegmentedBar.
This commit is contained in:
@ -497,11 +497,59 @@ export class SegmentedBarStyler implements definition.stylers.Styler {
|
||||
return textView.getCurrentTextColor();
|
||||
}
|
||||
|
||||
//Font methods
|
||||
private static setFontInternalProperty(view: view.View, newValue: any, nativeValue: any) {
|
||||
let tabHost = <android.widget.TabHost>view._nativeView;
|
||||
let fontValue = <font.Font>newValue;
|
||||
|
||||
for (let tabIndex = 0; tabIndex < tabHost.getTabWidget().getTabCount(); tabIndex++) {
|
||||
let tab = <android.view.ViewGroup>tabHost.getTabWidget().getChildTabViewAt(tabIndex);
|
||||
let t = <android.widget.TextView>tab.getChildAt(1);
|
||||
let typeface = fontValue.getAndroidTypeface();
|
||||
if (typeface) {
|
||||
t.setTypeface(typeface);
|
||||
}
|
||||
else {
|
||||
t.setTypeface(nativeValue.typeface);
|
||||
}
|
||||
|
||||
if (fontValue.fontSize) {
|
||||
t.setTextSize(fontValue.fontSize);
|
||||
}
|
||||
else {
|
||||
t.setTextSize(android.util.TypedValue.COMPLEX_UNIT_PX, nativeValue.size);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static resetFontInternalProperty(view: view.View, nativeValue: any) {
|
||||
let tabHost = <android.widget.TabHost>view._nativeView;
|
||||
for (let tabIndex = 0; tabIndex < tabHost.getTabWidget().getTabCount(); tabIndex++) {
|
||||
let tab = <android.view.ViewGroup>tabHost.getTabWidget().getChildTabViewAt(tabIndex);
|
||||
let t = <android.widget.TextView>tab.getChildAt(1);
|
||||
t.setTypeface(nativeValue.typeface);
|
||||
t.setTextSize(nativeValue.size);
|
||||
}
|
||||
}
|
||||
|
||||
private static getFontInternalProperty(view: view.View): any {
|
||||
let tabHost = <android.widget.TabHost>view._nativeView;
|
||||
var textView = new android.widget.TextView(tabHost.getContext());
|
||||
return {
|
||||
typeface: textView.getTypeface(),
|
||||
size: textView.getTextSize()
|
||||
};
|
||||
}
|
||||
|
||||
public static registerHandlers() {
|
||||
style.registerHandler(style.colorProperty, new stylersCommon.StylePropertyChangedHandler(
|
||||
SegmentedBarStyler.setColorProperty,
|
||||
SegmentedBarStyler.resetColorProperty,
|
||||
SegmentedBarStyler.getColorProperty), "SegmentedBar");
|
||||
style.registerHandler(style.fontInternalProperty, new stylersCommon.StylePropertyChangedHandler(
|
||||
SegmentedBarStyler.setFontInternalProperty,
|
||||
SegmentedBarStyler.resetFontInternalProperty,
|
||||
SegmentedBarStyler.getFontInternalProperty), "SegmentedBar");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -374,23 +374,84 @@ export class TextViewStyler implements definition.stylers.Styler {
|
||||
export class SegmentedBarStyler implements definition.stylers.Styler {
|
||||
//Text color methods
|
||||
private static setColorProperty(view: view.View, newValue: any) {
|
||||
var bar = <UISegmentedControl>view.ios;
|
||||
var attrs = NSMutableDictionary.new();
|
||||
let bar = <UISegmentedControl>view.ios;
|
||||
let currentAttrs = bar.titleTextAttributesForState(UIControlState.UIControlStateNormal);
|
||||
let attrs;
|
||||
if (currentAttrs) {
|
||||
attrs = currentAttrs.mutableCopy();
|
||||
}
|
||||
else {
|
||||
attrs = NSMutableDictionary.new();
|
||||
}
|
||||
attrs.setValueForKey(newValue, NSForegroundColorAttributeName);
|
||||
bar.setTitleTextAttributesForState(attrs, UIControlState.UIControlStateNormal);
|
||||
}
|
||||
|
||||
private static resetColorProperty(view: view.View, nativeValue: any) {
|
||||
var bar = <UISegmentedControl>view.ios;
|
||||
var attrs = NSMutableDictionary.new();
|
||||
let bar = <UISegmentedControl>view.ios;
|
||||
let currentAttrs = bar.titleTextAttributesForState(UIControlState.UIControlStateNormal);
|
||||
let attrs;
|
||||
if (currentAttrs) {
|
||||
attrs = currentAttrs.mutableCopy();
|
||||
}
|
||||
else {
|
||||
attrs = NSMutableDictionary.new();
|
||||
}
|
||||
attrs.setValueForKey(nativeValue, NSForegroundColorAttributeName);
|
||||
bar.setTitleTextAttributesForState(attrs, UIControlState.UIControlStateNormal);
|
||||
}
|
||||
|
||||
//Text fonts methods
|
||||
private static setFontInternalProperty(view: view.View, newValue: any) {
|
||||
let bar = <UISegmentedControl>view.ios;
|
||||
let currentAttrs = bar.titleTextAttributesForState(UIControlState.UIControlStateNormal);
|
||||
let attrs;
|
||||
if (currentAttrs) {
|
||||
attrs = currentAttrs.mutableCopy();
|
||||
}
|
||||
else {
|
||||
attrs = NSMutableDictionary.new();
|
||||
}
|
||||
let newFont = (<font.Font>newValue).getUIFont(UIFont.systemFontOfSize(UIFont.labelFontSize()));
|
||||
attrs.setValueForKey(newFont, NSFontAttributeName);
|
||||
bar.setTitleTextAttributesForState(attrs, UIControlState.UIControlStateNormal);
|
||||
}
|
||||
|
||||
private static resetFontInternalProperty(view: view.View, nativeValue: any) {
|
||||
let bar = <UISegmentedControl>view.ios;
|
||||
let currentAttrs = bar.titleTextAttributesForState(UIControlState.UIControlStateNormal);
|
||||
let attrs;
|
||||
if (currentAttrs) {
|
||||
attrs = currentAttrs.mutableCopy();
|
||||
}
|
||||
else {
|
||||
attrs = NSMutableDictionary.new();
|
||||
}
|
||||
attrs.setValueForKey(nativeValue, NSFontAttributeName);
|
||||
bar.setTitleTextAttributesForState(attrs, UIControlState.UIControlStateNormal);
|
||||
}
|
||||
|
||||
private static getNativeFontValue(view: view.View) {
|
||||
let bar = <UISegmentedControl>view.ios;
|
||||
let currentAttrs = bar.titleTextAttributesForState(UIControlState.UIControlStateNormal);
|
||||
let currentFont;
|
||||
if (currentAttrs) {
|
||||
currentFont = currentAttrs.objectForKey(NSFontAttributeName);
|
||||
}
|
||||
if (!currentFont) {
|
||||
currentFont = UIFont.systemFontOfSize(UIFont.labelFontSize());
|
||||
}
|
||||
return currentFont;
|
||||
}
|
||||
|
||||
public static registerHandlers() {
|
||||
style.registerHandler(style.colorProperty, new stylersCommon.StylePropertyChangedHandler(
|
||||
SegmentedBarStyler.setColorProperty,
|
||||
SegmentedBarStyler.resetColorProperty), "SegmentedBar");
|
||||
style.registerHandler(style.fontInternalProperty, new stylersCommon.StylePropertyChangedHandler(
|
||||
SegmentedBarStyler.setFontInternalProperty,
|
||||
SegmentedBarStyler.resetFontInternalProperty,
|
||||
SegmentedBarStyler.getNativeFontValue), "SegmentedBar");
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user