Skip to content

Commit e120629

Browse files
committed
add dashed lines for simpleShapes, polygons, polylines, bezier
1 parent 8337682 commit e120629

2 files changed

Lines changed: 40 additions & 9 deletions

File tree

src/codesys.pp.js

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -716,6 +716,12 @@ function parse_visu_elements(content) {
716716
exprInvisible = parseExpression(expr_invisible);
717717
}
718718

719+
var exprFrameFlags = [];
720+
var expr_frameFlags = $myMedia.find('expr-frame-flags');
721+
if (expr_frameFlags.length) {
722+
exprFrameFlags = parseExpression(expr_frameFlags);
723+
}
724+
719725
var objId = registerSimpleShape(
720726
shape,
721727
rectFields[0], rectFields[1], rectFields[2] - rectFields[0], rectFields[3] - rectFields[1],
@@ -728,7 +734,8 @@ function parse_visu_elements(content) {
728734
"rgb(" + fill_color_alarm + ")",
729735
exprToggleColor,
730736
exprLeft, exprTop, exprRight, exprBottom,
731-
exprInvisible
737+
exprInvisible,
738+
exprFrameFlags
732739
);
733740

734741
parseTextInfo($myMedia, centerFields, rectFields, exprInvisible);
@@ -911,6 +918,12 @@ function parse_visu_elements(content) {
911918
exprInvisible = parseExpression(expr_invisible);
912919
}
913920

921+
var exprFrameFlags = [];
922+
var expr_frame_flags = $myMedia.find('expr-frame-flags');
923+
if (expr_frame_flags.length) {
924+
exprFrameFlags = parseExpression(expr_frame_flags);
925+
}
926+
914927
if ((polyShape == 'polygon') || (polyShape == 'polyline')) {
915928
var objId = registerPolygon(
916929
polyShape,
@@ -924,7 +937,8 @@ function parse_visu_elements(content) {
924937
"rgb(" + fill_color_alarm + ")",
925938
exprToggleColor,
926939
exprLeft, exprTop,
927-
exprInvisible
940+
exprInvisible,
941+
exprFrameFlags
928942
);
929943

930944
if (polyShape == 'polygon') {
@@ -949,7 +963,8 @@ function parse_visu_elements(content) {
949963
"rgb(" + fill_color_alarm + ")",
950964
exprToggleColor,
951965
exprLeft, exprTop,
952-
exprInvisible
966+
exprInvisible,
967+
exprFrameFlags
953968
);
954969

955970
var center = $myMedia.find('center').text();

src/drawing.pp.js

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,8 @@ function newSimpleShape(
164164
hasInsideColor, fillStyle, fillStyleAlarm,
165165
alarmExpr,
166166
leftExpr, topExpr, rightExpr, bottomExpr,
167-
invisibleExpr
167+
invisibleExpr,
168+
frameFlagsExpr
168169
)
169170
{
170171
this.isA = 'SimpleShape';
@@ -191,6 +192,7 @@ function newSimpleShape(
191192
this.rightExpr = rightExpr;
192193
this.bottomExpr = bottomExpr;
193194
this.invisibleExpr = invisibleExpr;
195+
this.frameFlagsExpr = frameFlagsExpr;
194196
}
195197

196198
function registerSimpleShape(
@@ -200,7 +202,8 @@ function registerSimpleShape(
200202
hasInsideColor, fillStyle, fillStyleAlarm,
201203
alarmExpr,
202204
leftExpr, topExpr, rightExpr, bottomExpr,
203-
invisibleExpr
205+
invisibleExpr,
206+
frameFlagsExpr
204207
)
205208
{
206209
drawObjects.push(new newSimpleShape(
@@ -210,7 +213,8 @@ function registerSimpleShape(
210213
hasInsideColor, fillStyle, fillStyleAlarm,
211214
alarmExpr,
212215
leftExpr, topExpr, rightExpr, bottomExpr,
213-
invisibleExpr
216+
invisibleExpr,
217+
frameFlagsExpr
214218
));
215219
// Gib die ID (den Index) des eben registrierten Objekts zurück
216220
//Log("registerSimpleShape return "+(drawObjects.length-1))
@@ -358,7 +362,8 @@ function newPolygon(
358362
hasInsideColor, fillStyle, fillStyleAlarm,
359363
alarmExpr,
360364
leftExpr, topExpr,
361-
invisibleExpr
365+
invisibleExpr,
366+
frameFlagsExpr
362367
) {
363368
this.isA = 'Polygon';
364369
this.polyShape = polyShape;
@@ -379,6 +384,7 @@ function newPolygon(
379384
this.leftExpr = leftExpr;
380385
this.topExpr = topExpr;
381386
this.invisibleExpr = invisibleExpr;
387+
this.frameFlagsExpr = frameFlagsExpr;
382388
}
383389

384390
function registerPolygon(
@@ -388,7 +394,8 @@ function registerPolygon(
388394
hasInsideColor, fillStyle, fillStyleAlarm,
389395
alarmExpr,
390396
leftExpr, topExpr,
391-
invisibleExpr
397+
invisibleExpr,
398+
frameFlagsExpr
392399
) {
393400
drawObjects.push(new newPolygon(
394401
polyShape,
@@ -397,7 +404,8 @@ function registerPolygon(
397404
hasInsideColor, fillStyle, fillStyleAlarm,
398405
alarmExpr,
399406
leftExpr, topExpr,
400-
invisibleExpr
407+
invisibleExpr,
408+
frameFlagsExpr
401409
));
402410
// Gib die ID (den Index) des eben registrierten Objekts zurück
403411
//Log("registerPolygon return "+(drawObjects.length-1))
@@ -1034,6 +1042,8 @@ function drawAllObjects(ctx, clickContext, objects) {
10341042
if (obj.rightExpr.length > 0) { right = evalExpression(obj.rightExpr); }
10351043
var bottom = 0;
10361044
if (obj.bottomExpr.length > 0) { bottom = evalExpression(obj.bottomExpr); }
1045+
var frameStyle = 0;
1046+
if (obj.frameFlagsExpr.length > 0) { frameStyle = evalExpression(obj.frameFlagsExpr); }
10371047

10381048
switch (obj.shape) {
10391049
case 'rectangle':
@@ -1079,8 +1089,10 @@ function drawAllObjects(ctx, clickContext, objects) {
10791089
if (obj.hasFrameColor == 'true') {
10801090
ctx.lineWidth = obj.lineWidth;
10811091
ctx.strokeStyle = strokeStyle;
1092+
setLineDash(frameStyle, ctx);
10821093
ctx.stroke();
10831094
clickContext.stroke();
1095+
resetLineDash(ctx);
10841096
}
10851097

10861098
ctx.closePath();
@@ -1221,6 +1233,8 @@ function drawAllObjects(ctx, clickContext, objects) {
12211233
if (obj.leftExpr.length > 0) { left = evalExpression(obj.leftExpr); }
12221234
var top = 0;
12231235
if (obj.topExpr.length > 0) { top = evalExpression(obj.topExpr); }
1236+
var lineStyle = 0;
1237+
if (obj.frameFlagsExpr.length > 0) { lineStyle = evalExpression(obj.frameFlagsExpr); }
12241238

12251239
if (obj.polyShape == 'polyline' || obj.polyShape == 'polygon')
12261240
{
@@ -1344,8 +1358,10 @@ function drawAllObjects(ctx, clickContext, objects) {
13441358
if (obj.hasFrameColor == 'true') {
13451359
ctx.lineWidth = obj.lineWidth;
13461360
ctx.strokeStyle = strokeStyle;
1361+
setLineDash(lineStyle, ctx);
13471362
ctx.stroke();
13481363
clickContext.stroke();
1364+
resetLineDash(ctx);
13491365
}
13501366

13511367
ctx.closePath();

0 commit comments

Comments
 (0)