From cdb496632dec4d7c947649b31e7d7d2e61a10bc4 Mon Sep 17 00:00:00 2001 From: Vasil Chimev Date: Tue, 2 Aug 2016 15:50:36 +0300 Subject: [PATCH 1/3] Update package.json --- tns-core-modules/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tns-core-modules/package.json b/tns-core-modules/package.json index 27e04c29f..6202ebb7e 100644 --- a/tns-core-modules/package.json +++ b/tns-core-modules/package.json @@ -24,12 +24,12 @@ "license": "Apache-2.0", "typings": "tns-core-modules.d.ts", "dependencies": { - "tns-core-modules-widgets": "next" + "tns-core-modules-widgets": "2.2.0" }, "nativescript": { "platforms": { - "ios": "2.1.1", - "android": "2.1.1" + "ios": "2.2.0", + "android": "2.2.0" } } } From 16ad70b35e0f8210a176533186956e71b8880d2b Mon Sep 17 00:00:00 2001 From: Tsvetan Raikov Date: Wed, 17 Aug 2016 16:44:26 +0300 Subject: [PATCH 2/3] Updated tns-core-modules version --- tns-core-modules/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tns-core-modules/package.json b/tns-core-modules/package.json index 6202ebb7e..8a8e88015 100644 --- a/tns-core-modules/package.json +++ b/tns-core-modules/package.json @@ -1,7 +1,7 @@ { "name": "tns-core-modules", "description": "Telerik NativeScript Core Modules", - "version": "2.3.0", + "version": "2.2.1", "homepage":"https://www.nativescript.org", "repository": { "type": "git", From afb2d1ea68118c2231a1e74501987a519f1f2c52 Mon Sep 17 00:00:00 2001 From: Tsvetan Raikov Date: Fri, 19 Aug 2016 16:29:01 +0300 Subject: [PATCH 3/3] Added tintColor property in {N} ImageView --- tns-core-modules/package.json | 8 ++--- tns-core-modules/ui/image/image.android.ts | 15 +++++++++ tns-core-modules/ui/image/image.ios.ts | 38 ++++++++++++++++++++++ 3 files changed, 57 insertions(+), 4 deletions(-) diff --git a/tns-core-modules/package.json b/tns-core-modules/package.json index 8a8e88015..27e04c29f 100644 --- a/tns-core-modules/package.json +++ b/tns-core-modules/package.json @@ -1,7 +1,7 @@ { "name": "tns-core-modules", "description": "Telerik NativeScript Core Modules", - "version": "2.2.1", + "version": "2.3.0", "homepage":"https://www.nativescript.org", "repository": { "type": "git", @@ -24,12 +24,12 @@ "license": "Apache-2.0", "typings": "tns-core-modules.d.ts", "dependencies": { - "tns-core-modules-widgets": "2.2.0" + "tns-core-modules-widgets": "next" }, "nativescript": { "platforms": { - "ios": "2.2.0", - "android": "2.2.0" + "ios": "2.1.1", + "android": "2.1.1" } } } diff --git a/tns-core-modules/ui/image/image.android.ts b/tns-core-modules/ui/image/image.android.ts index 1e76a1155..eebc15dc0 100644 --- a/tns-core-modules/ui/image/image.android.ts +++ b/tns-core-modules/ui/image/image.android.ts @@ -108,6 +108,17 @@ export class ImageStyler implements style.Styler { background.ad.onBackgroundOrBorderPropertyChanged(v); } + // tint color + private static setColorProperty(view: view.View, newValue: any) { + var imageView = view._nativeView; + imageView.setColorFilter(newValue); + } + + private static resetColorProperty(view: view.View, nativeValue: number) { + var imageView = view._nativeView; + imageView.clearColorFilter(); + } + public static registerHandlers() { // Use the same handler for all background/border properties // Note: There is no default value getter - the default value is handled in background.ad.onBackgroundOrBorderPropertyChanged @@ -119,6 +130,10 @@ export class ImageStyler implements style.Styler { style.registerHandler(style.borderWidthProperty, new style.StylePropertyChangedHandler( ImageStyler.setBorderWidthProperty, ImageStyler.resetBorderWidthProperty), "Image"); + + style.registerHandler(style.colorProperty, new style.StylePropertyChangedHandler( + ImageStyler.setColorProperty, + ImageStyler.resetColorProperty), "Image"); } } diff --git a/tns-core-modules/ui/image/image.ios.ts b/tns-core-modules/ui/image/image.ios.ts index 7c4f70404..ca0823bf4 100644 --- a/tns-core-modules/ui/image/image.ios.ts +++ b/tns-core-modules/ui/image/image.ios.ts @@ -2,6 +2,8 @@ import imageCommon = require("./image-common"); import dependencyObservable = require("ui/core/dependency-observable"); import proxy = require("ui/core/proxy"); import enums = require("ui/enums"); +import style = require("ui/styling/style"); +import view = require("ui/core/view"); import * as trace from "trace"; import * as utils from "utils/utils"; @@ -39,6 +41,7 @@ function onImageSourcePropertyChanged(data: dependencyObservable.PropertyChangeD export class Image extends imageCommon.Image { private _ios: UIImageView; private _imageSourceAffectsLayout: boolean = true; + private _templateImageWasCreated: boolean = false; constructor() { super(); @@ -54,7 +57,21 @@ export class Image extends imageCommon.Image { return this._ios; } + public _setTintColor(value: any) { + if (value !== null && this._ios.image && !this._templateImageWasCreated) { + this._ios.image = this._ios.image.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); + this._templateImageWasCreated = true; + } + this._ios.tintColor = value; + } + public _setNativeImage(nativeImage: any) { + if (this.style.color && nativeImage) { + nativeImage = nativeImage.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); + this._templateImageWasCreated = true; + } else { + this._templateImageWasCreated = false; + } this.ios.image = nativeImage; if (this._imageSourceAffectsLayout) { @@ -135,3 +152,24 @@ export class Image extends imageCommon.Image { return { width: scaleW, height: scaleH }; } } + +export class ImageStyler implements style.Styler { + //Text color methods + private static setColorProperty(view: view.View, newValue: any) { + var image = view; + image._setTintColor(newValue); + } + + private static resetColorProperty(view: view.View, nativeValue: any) { + var image = view.ios; + image._setTintColor(null); + } + + public static registerHandlers() { + style.registerHandler(style.colorProperty, new style.StylePropertyChangedHandler( + ImageStyler.setColorProperty, + ImageStyler.resetColorProperty), "Image"); + } +} + +ImageStyler.registerHandlers();