mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 20:11:24 +08:00
BorderView - modified to fallback to genric borders
This commit is contained in:
@ -377,6 +377,9 @@
|
|||||||
<TypeScriptCompile Include="trace\trace.ts">
|
<TypeScriptCompile Include="trace\trace.ts">
|
||||||
<DependentUpon>trace.d.ts</DependentUpon>
|
<DependentUpon>trace.d.ts</DependentUpon>
|
||||||
</TypeScriptCompile>
|
</TypeScriptCompile>
|
||||||
|
<TypeScriptCompile Include="ui\border\border.ts">
|
||||||
|
<DependentUpon>border.d.ts</DependentUpon>
|
||||||
|
</TypeScriptCompile>
|
||||||
<TypeScriptCompile Include="ui\repeater\repeater.ts">
|
<TypeScriptCompile Include="ui\repeater\repeater.ts">
|
||||||
<DependentUpon>repeater.d.ts</DependentUpon>
|
<DependentUpon>repeater.d.ts</DependentUpon>
|
||||||
</TypeScriptCompile>
|
</TypeScriptCompile>
|
||||||
@ -774,15 +777,6 @@
|
|||||||
<DependentUpon>switch.d.ts</DependentUpon>
|
<DependentUpon>switch.d.ts</DependentUpon>
|
||||||
</TypeScriptCompile>
|
</TypeScriptCompile>
|
||||||
<TypeScriptCompile Include="ui\border\border.d.ts" />
|
<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.d.ts" />
|
||||||
<TypeScriptCompile Include="ui\activity-indicator\activity-indicator.android.ts">
|
<TypeScriptCompile Include="ui\activity-indicator\activity-indicator.android.ts">
|
||||||
<DependentUpon>activity-indicator.d.ts</DependentUpon>
|
<DependentUpon>activity-indicator.d.ts</DependentUpon>
|
||||||
@ -1680,7 +1674,7 @@
|
|||||||
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
|
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
|
||||||
</WebProjectProperties>
|
</WebProjectProperties>
|
||||||
</FlavorProperties>
|
</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>
|
</VisualStudio>
|
||||||
</ProjectExtensions>
|
</ProjectExtensions>
|
||||||
</Project>
|
</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.
|
* Represents a UI border component.
|
||||||
*/
|
*/
|
||||||
export class Border extends contentView.ContentView {
|
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.
|
* 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.
|
* Gets or sets the border color of the border component.
|
||||||
*/
|
*/
|
||||||
borderColor: color.Color;
|
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 viewModule = require("ui/core/view");
|
||||||
import utils = require("utils/utils");
|
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
|
@Deprecated
|
||||||
export class Border extends contentView.ContentView implements definition.Border {
|
export class Border extends contentView.ContentView implements definition.Border {
|
||||||
|
|
||||||
public static cornerRadiusProperty = cornerRadiusProperty;
|
|
||||||
public static borderWidthProperty = borderWidthProperty;
|
|
||||||
public static borderColorProperty = borderColorProperty;
|
|
||||||
|
|
||||||
get cornerRadius(): number {
|
get cornerRadius(): number {
|
||||||
return this._getValue(Border.cornerRadiusProperty);
|
return this.borderRadius;
|
||||||
}
|
}
|
||||||
set cornerRadius(value: number) {
|
set cornerRadius(value: number) {
|
||||||
this._setValue(Border.cornerRadiusProperty, value);
|
this.borderRadius = 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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void {
|
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;
|
var borderSize = this.borderWidth * density;
|
||||||
viewModule.View.layoutChild(this, this.content, borderSize, borderSize, right - left - borderSize, bottom - top - borderSize);
|
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 module BackgroundRepeat {
|
||||||
export var repeat: string;
|
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.
|
// Register all styler at the end.
|
||||||
export function _registerDefaultStylers() {
|
export function _registerDefaultStylers() {
|
||||||
style.registerNoStylingClass("Frame");
|
style.registerNoStylingClass("Frame");
|
||||||
@ -398,5 +379,4 @@ export function _registerDefaultStylers() {
|
|||||||
ActivityIndicatorStyler.registerHandlers();
|
ActivityIndicatorStyler.registerHandlers();
|
||||||
SegmentedBarStyler.registerHandlers();
|
SegmentedBarStyler.registerHandlers();
|
||||||
SearchBarStyler.registerHandlers();
|
SearchBarStyler.registerHandlers();
|
||||||
BorderStyler.registerHandlers();
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user