1
1
/* eslint-disable no-redeclare */
2
2
import { Color , HorizontalAlignment , Length , Observable , PercentLength , Utils , VerticalAlignment , Visibility } from '@nativescript/core' ;
3
3
import { booleanConverter } from '@nativescript/core/ui/core/view-base' ;
4
- import { Canvas , CanvasView , Cap , Join , Paint , Style } from '../canvas' ;
4
+ import { Canvas , CanvasView , Cap , Join , Paint , PorterDuffXfermode , Style } from '../canvas' ;
5
5
import { parseCap , parseDashEffect , parseJoin , parseShadow , parseType } from '../utils' ;
6
6
7
7
function parseThickness ( value : string ) {
@@ -178,6 +178,13 @@ function applyShadow(paint: Paint, shadow: Shadow) {
178
178
paint . clearShadowLayer ( ) ;
179
179
}
180
180
}
181
+ function parseXfermode ( value ) {
182
+ if ( value instanceof PorterDuffXfermode ) {
183
+ return value ;
184
+ } else {
185
+ return new PorterDuffXfermode ( value ) ;
186
+ }
187
+ }
181
188
export default abstract class Shape extends Observable {
182
189
_paint : Paint ;
183
190
_parent : WeakRef < CanvasView > ;
@@ -204,6 +211,7 @@ export default abstract class Shape extends Observable {
204
211
@numberProperty ( { converter : parseCap } ) strokeCap : Cap ;
205
212
@numberProperty ( { converter : parseJoin } ) strokeJoin : Join ;
206
213
@numberProperty textSize : number ;
214
+ @numberProperty ( { converter : parseXfermode } ) xfermode : number ;
207
215
// alias for textSize
208
216
@numberProperty ( { paintSetterName : 'setTextSize' } ) fontSize : number ;
209
217
@booleanProperty ( { paintGetterName : 'isAntiAlias' , paintSetterName : 'setAntiAlias' } ) antiAlias : boolean ;
0 commit comments