mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 11:42:04 +08:00
BorderView - modified to fallback to genric borders
This commit is contained in:
@ -377,6 +377,9 @@
|
||||
<TypeScriptCompile Include="trace\trace.ts">
|
||||
<DependentUpon>trace.d.ts</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="ui\border\border.ts">
|
||||
<DependentUpon>border.d.ts</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="ui\repeater\repeater.ts">
|
||||
<DependentUpon>repeater.d.ts</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
@ -774,15 +777,6 @@
|
||||
<DependentUpon>switch.d.ts</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="ui\border\border.d.ts" />
|
||||
<TypeScriptCompile Include="ui\border\border-common.ts">
|
||||
<DependentUpon>border.d.ts</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="ui\border\border.android.ts">
|
||||
<DependentUpon>border.d.ts</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="ui\border\border.ios.ts">
|
||||
<DependentUpon>border.d.ts</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="ui\activity-indicator\activity-indicator.d.ts" />
|
||||
<TypeScriptCompile Include="ui\activity-indicator\activity-indicator.android.ts">
|
||||
<DependentUpon>activity-indicator.d.ts</DependentUpon>
|
||||
@ -1680,7 +1674,7 @@
|
||||
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
|
||||
</WebProjectProperties>
|
||||
</FlavorProperties>
|
||||
<UserProperties ui_2scroll-view_2package_1json__JSONSchema="http://json.schemastore.org/package" apps_2editable-text-demo_2package_1json__JSONSchema="http://json.schemastore.org/package" apps_2absolute-layout-demo_2package_1json__JSONSchema="http://json.schemastore.org/package" apps_2gallery-app_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2content-view_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2web-view_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2layouts_2linear-layout_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2layouts_2absolute-layout_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2layouts_2dock-layout_2package_1json__JSONSchema="" ui_2layouts_2grid-layout_2package_1json__JSONSchema="" ui_2layouts_2wrap-layout_2package_1json__JSONSchema="http://json.schemastore.org/package" />
|
||||
<UserProperties ui_2layouts_2wrap-layout_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2layouts_2grid-layout_2package_1json__JSONSchema="" ui_2layouts_2dock-layout_2package_1json__JSONSchema="" ui_2layouts_2absolute-layout_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2layouts_2linear-layout_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2web-view_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2content-view_2package_1json__JSONSchema="http://json.schemastore.org/package" apps_2gallery-app_2package_1json__JSONSchema="http://json.schemastore.org/package" apps_2absolute-layout-demo_2package_1json__JSONSchema="http://json.schemastore.org/package" apps_2editable-text-demo_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2scroll-view_2package_1json__JSONSchema="http://json.schemastore.org/package" />
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
@ -1,51 +0,0 @@
|
||||
import borderCommon = require("ui/border/border-common");
|
||||
import proxy = require("ui/core/proxy");
|
||||
import dependencyObservable = require("ui/core/dependency-observable");
|
||||
import utils = require("utils/utils");
|
||||
|
||||
// merge the exports of the common file with the exports of this file
|
||||
declare var exports;
|
||||
require("utils/module-merge").merge(borderCommon, exports);
|
||||
|
||||
function onBorderPropertyChanged(data: dependencyObservable.PropertyChangeData) {
|
||||
var border = <Border>data.object;
|
||||
border._updateAndroidBorder();
|
||||
}
|
||||
|
||||
(<proxy.PropertyMetadata>borderCommon.Border.cornerRadiusProperty.metadata).onSetNativeValue = onBorderPropertyChanged;
|
||||
(<proxy.PropertyMetadata>borderCommon.Border.borderWidthProperty.metadata).onSetNativeValue = onBorderPropertyChanged;
|
||||
(<proxy.PropertyMetadata>borderCommon.Border.borderColorProperty.metadata).onSetNativeValue = onBorderPropertyChanged;
|
||||
|
||||
export class Border extends borderCommon.Border {
|
||||
public _updateAndroidBorder() {
|
||||
if (!this._nativeView) {
|
||||
return;
|
||||
}
|
||||
|
||||
var nativeView = <android.view.ViewGroup>this._nativeView;
|
||||
|
||||
var backgroundDrawable = nativeView.getBackground();
|
||||
if (!(backgroundDrawable instanceof android.graphics.drawable.GradientDrawable)) {
|
||||
backgroundDrawable = new android.graphics.drawable.GradientDrawable();
|
||||
nativeView.setBackgroundDrawable(backgroundDrawable);
|
||||
}
|
||||
|
||||
var gd = <android.graphics.drawable.GradientDrawable>backgroundDrawable;
|
||||
var density = utils.layout.getDisplayDensity();
|
||||
gd.setCornerRadius(this.cornerRadius * density);
|
||||
|
||||
if (this.borderColor) {
|
||||
gd.setStroke(this.borderWidth * density, this.borderColor.android);
|
||||
}
|
||||
else {
|
||||
gd.setStroke(this.borderWidth * density, android.graphics.Color.TRANSPARENT);
|
||||
}
|
||||
|
||||
if (this.backgroundColor) {
|
||||
gd.setColor(this.backgroundColor.android);
|
||||
}
|
||||
else {
|
||||
gd.setColor(android.graphics.Color.TRANSPARENT);
|
||||
}
|
||||
}
|
||||
}
|
8
ui/border/border.d.ts
vendored
8
ui/border/border.d.ts
vendored
@ -10,10 +10,6 @@ declare module "ui/border" {
|
||||
* Represents a UI border component.
|
||||
*/
|
||||
export class Border extends contentView.ContentView {
|
||||
public static cornerRadiusProperty : dependencyObservable.Property;
|
||||
public static borderWidthProperty: dependencyObservable.Property;
|
||||
public static borderColorProperty: dependencyObservable.Property;
|
||||
|
||||
/**
|
||||
* Gets or sets the corner radius of the border component.
|
||||
*/
|
||||
@ -28,9 +24,5 @@ declare module "ui/border" {
|
||||
* Gets or sets the border color of the border component.
|
||||
*/
|
||||
borderColor: color.Color;
|
||||
|
||||
//@private
|
||||
_updateAndroidBorder();
|
||||
//@endprivate
|
||||
}
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
import borderCommon = require("ui/border/border-common");
|
||||
import dependencyObservable = require("ui/core/dependency-observable");
|
||||
import proxy = require("ui/core/proxy");
|
||||
import color = require("color");
|
||||
|
||||
// merge the exports of the common file with the exports of this file
|
||||
declare var exports;
|
||||
require("utils/module-merge").merge(borderCommon, exports);
|
||||
|
||||
function onCornerRadiusPropertyChanged(data: dependencyObservable.PropertyChangeData) {
|
||||
var view = <Border>data.object;
|
||||
if (!view._nativeView) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (view._nativeView instanceof UIView) {
|
||||
(<UIView>view._nativeView).layer.cornerRadius = data.newValue;
|
||||
}
|
||||
}
|
||||
(<proxy.PropertyMetadata>borderCommon.Border.cornerRadiusProperty.metadata).onSetNativeValue = onCornerRadiusPropertyChanged;
|
||||
|
||||
function onBorderWidthPropertyChanged(data: dependencyObservable.PropertyChangeData) {
|
||||
var view = <Border>data.object;
|
||||
if (!view._nativeView) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (view._nativeView instanceof UIView) {
|
||||
(<UIView>view._nativeView).layer.borderWidth = data.newValue;
|
||||
}
|
||||
}
|
||||
(<proxy.PropertyMetadata>borderCommon.Border.borderWidthProperty.metadata).onSetNativeValue = onBorderWidthPropertyChanged;
|
||||
|
||||
function onBorderColorPropertyChanged(data: dependencyObservable.PropertyChangeData) {
|
||||
var view = <Border>data.object;
|
||||
if (!view._nativeView) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (view._nativeView instanceof UIView && data.newValue instanceof color.Color) {
|
||||
(<UIView>view._nativeView).layer.borderColor = (<color.Color>data.newValue).ios.CGColor;
|
||||
}
|
||||
}
|
||||
(<proxy.PropertyMetadata>borderCommon.Border.borderColorProperty.metadata).onSetNativeValue = onBorderColorPropertyChanged;
|
||||
|
||||
export class Border extends borderCommon.Border {
|
||||
//
|
||||
}
|
@ -7,54 +7,13 @@ import types = require("utils/types");
|
||||
import viewModule = require("ui/core/view");
|
||||
import utils = require("utils/utils");
|
||||
|
||||
var cornerRadiusProperty = new dependencyObservable.Property(
|
||||
"cornerRadius",
|
||||
"Border",
|
||||
new proxy.PropertyMetadata(0, dependencyObservable.PropertyMetadataSettings.AffectsStyle)
|
||||
);
|
||||
|
||||
var borderWidthProperty = new dependencyObservable.Property(
|
||||
"borderWidth",
|
||||
"Border",
|
||||
new proxy.PropertyMetadata(0, dependencyObservable.PropertyMetadataSettings.AffectsStyle)
|
||||
);
|
||||
|
||||
var borderColorProperty = new dependencyObservable.Property(
|
||||
"borderColor",
|
||||
"Border",
|
||||
new proxy.PropertyMetadata(undefined, dependencyObservable.PropertyMetadataSettings.AffectsStyle)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
export class Border extends contentView.ContentView implements definition.Border {
|
||||
|
||||
public static cornerRadiusProperty = cornerRadiusProperty;
|
||||
public static borderWidthProperty = borderWidthProperty;
|
||||
public static borderColorProperty = borderColorProperty;
|
||||
|
||||
get cornerRadius(): number {
|
||||
return this._getValue(Border.cornerRadiusProperty);
|
||||
return this.borderRadius;
|
||||
}
|
||||
set cornerRadius(value: number) {
|
||||
this._setValue(Border.cornerRadiusProperty, value);
|
||||
}
|
||||
|
||||
get borderWidth(): number {
|
||||
return this._getValue(Border.borderWidthProperty);
|
||||
}
|
||||
set borderWidth(value: number) {
|
||||
this._setValue(Border.borderWidthProperty, value);
|
||||
}
|
||||
|
||||
get borderColor(): color.Color {
|
||||
return this._getValue(Border.borderColorProperty);
|
||||
}
|
||||
set borderColor(value: color.Color) {
|
||||
if (types.isString(value) || types.isNumber(value)) {
|
||||
this._setValue(Border.borderColorProperty, new color.Color(<any>value));
|
||||
} else {
|
||||
this._setValue(Border.borderColorProperty, value);
|
||||
}
|
||||
this.borderRadius = value;
|
||||
}
|
||||
|
||||
public onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void {
|
||||
@ -82,8 +41,4 @@ export class Border extends contentView.ContentView implements definition.Border
|
||||
var borderSize = this.borderWidth * density;
|
||||
viewModule.View.layoutChild(this, this.content, borderSize, borderSize, right - left - borderSize, bottom - top - borderSize);
|
||||
}
|
||||
|
||||
public _updateAndroidBorder() {
|
||||
// This is android specific method.
|
||||
}
|
||||
}
|
2
ui/enums/enums.d.ts
vendored
2
ui/enums/enums.d.ts
vendored
@ -404,7 +404,7 @@
|
||||
|
||||
|
||||
/**
|
||||
* Specifies nackground repeat.
|
||||
* Specifies background repeat.
|
||||
*/
|
||||
export module BackgroundRepeat {
|
||||
export var repeat: string;
|
||||
|
@ -371,25 +371,6 @@ export class SearchBarStyler implements definition.stylers.Styler {
|
||||
}
|
||||
}
|
||||
|
||||
export class BorderStyler implements definition.stylers.Styler {
|
||||
//Background methods
|
||||
private static setBackgroundProperty(view: view.View, newValue: any) {
|
||||
var border = <border.Border>view;
|
||||
border._updateAndroidBorder();
|
||||
}
|
||||
|
||||
private static resetBackgroundProperty(view: view.View, nativeValue: any) {
|
||||
var border = <border.Border>view;
|
||||
border._updateAndroidBorder();
|
||||
}
|
||||
|
||||
public static registerHandlers() {
|
||||
style.registerHandler(style.backgroundColorProperty, new stylersCommon.StylePropertyChangedHandler(
|
||||
BorderStyler.setBackgroundProperty,
|
||||
BorderStyler.resetBackgroundProperty), "Border");
|
||||
}
|
||||
}
|
||||
|
||||
// Register all styler at the end.
|
||||
export function _registerDefaultStylers() {
|
||||
style.registerNoStylingClass("Frame");
|
||||
@ -398,5 +379,4 @@ export function _registerDefaultStylers() {
|
||||
ActivityIndicatorStyler.registerHandlers();
|
||||
SegmentedBarStyler.registerHandlers();
|
||||
SearchBarStyler.registerHandlers();
|
||||
BorderStyler.registerHandlers();
|
||||
}
|
||||
|
Reference in New Issue
Block a user