inizio parametrizzazione cerchi opzionali

This commit is contained in:
Samuele Locatelli
2023-05-18 15:43:58 +02:00
parent edb1778b82
commit 75a37728d3
3 changed files with 33 additions and 25 deletions
@@ -26,27 +26,26 @@
</linearGradient>
<rect fill="url(#BckGrad)" x="0" y="0" height="100%" width="100%" style="opacity: 100%;"></rect>
<image x="@(CircleImg.rad/2)" y="0" href="@ImagePath" width="@CircleImg.rad" height="100%"></image>
@if (ShowPlusMinus)
{
<rect x="0" y="0" width="100%" height="50%" fill="@PlusColor" style="opacity: 20%;" />
<rect x="0" y="@(ObjH/2)" width="100%" height="50%" fill="@MinusColor" style="opacity: 20%;" />
}
else if (ShowClone)
@*@if (ShowClone)
{
<rect x="0" y="@(ObjH/2)" width="100%" height="100%" fill="blue" style="opacity: 20%;" @onclick="()=>execClone()" />
}
}*@
</pattern>
</defs>
@if (ShowPlusMinus)
{
<circle id="circleCont" cx="@CircleImg.cx" cy="@CircleImg.cy" r="@CircleImg.rad" fill="url(#@($"contImg_{ObjId}"))" style="cursor: pointer;" />
<rect x="@ClickArea.p1.px" y="0" width="@(ClickArea.p2.px-ClickArea.p1.px)" height="50%" fill="white" style="opacity: 0%;" @onclick="()=>execPlus()" />
<rect x="@ClickArea.p1.px" y="@(ObjH/2)" width="@(ClickArea.p2.px-ClickArea.p1.px)" height="50%" fill="white" style="opacity: 0%;" @onclick="()=>execMinus()" />
<circle id="circleAdd" cx="@(CircleLine.cx+CircleLine.rad*3/4)" cy="@(CircleLine.cy-CircleLine.rad*4/6)" r="@(CircleLine.rad/3)" stroke="@LineColor" stroke-width="@LineWidth" fill="#69EF69" />
<circle id="circleAdd" cx="@(CircleLine.cx+CircleLine.rad*3/4)" cy="@(CircleLine.cy+CircleLine.rad*4/6)" r="@(CircleLine.rad/3)" stroke="@LineColor" stroke-width="@LineWidth" fill="#EF6969" />
<circle id="circleCont" cx="@CircleImg.cx" cy="@CircleImg.cy" r="@CircleImg.rad" fill="url(#@($"contImg_{ObjId}"))" />
@*<rect x="@ClickArea.p1.px" y="0" width="@(ClickArea.p2.px-ClickArea.p1.px)" height="50%" fill="white" style="opacity: 0%;" @onclick="()=>execPlus()" />
<rect x="@ClickArea.p1.px" y="@(ObjH/2)" width="@(ClickArea.p2.px-ClickArea.p1.px)" height="50%" fill="white" style="opacity: 0%;" @onclick="()=>execMinus()" />*@
<g @onclick="()=>execPlus()" style="cursor: pointer;">
<circle id="circleAdd" cx="@(CircleLine.cx+CircleLine.rad*3/4)" cy="@(CircleLine.cy-CircleLine.rad*4/6)" r="@(CircleLine.rad/3)" stroke="@LineColor" stroke-width="@LineWidth" fill="@PlusColor" />
<text x="@(CircleLine.cx+CircleLine.rad*3/4)" y="@(CircleLine.cy-CircleLine.rad*4/6)" text-anchor="middle" stroke="#FFF" fill="#FFF" stroke-width="2px" font-size="3em" font-weight="400" dy=".3em">+</text>
</g>
<g @onclick="()=>execPlus()" style="cursor: pointer;">
<circle id="circleAdd" cx="@(CircleLine.cx+CircleLine.rad*3/4)" cy="@(CircleLine.cy+CircleLine.rad*4/6)" r="@(CircleLine.rad/3)" stroke="@LineColor" stroke-width="@LineWidth" fill="@MinusColor" />
<text x="@(CircleLine.cx+CircleLine.rad*3/4)" y="@(CircleLine.cy+CircleLine.rad*4/6)" text-anchor="middle" stroke="#FFF" fill="#FFF" stroke-width="2px" font-size="3em" font-weight="400" dy=".3em">-</text>
</g>
}
else if (ShowClone)
{
@@ -12,7 +12,6 @@ namespace WebDoorCreator.UI.Components.SvgComp
DuplicateCurr,
Minus,
Plus,
RecallTemplate,
SaveTemplate,
Select
}
@@ -50,9 +49,9 @@ namespace WebDoorCreator.UI.Components.SvgComp
[Parameter]
public string PlusColor { get; set; } = "green";
public string PlusColor { get; set; } = "#69EF69";
[Parameter]
public string MinusColor { get; set; } = "red";
public string MinusColor { get; set; } = "#EF6969";
[Parameter]
public int ObjH { get; set; } = 204;
@@ -88,6 +87,9 @@ namespace WebDoorCreator.UI.Components.SvgComp
protected CircleData CircleImg { get; set; } = null!;
protected CircleData CircleLine { get; set; } = null!;
protected CircleData CirclePlus { get; set; } = null!;
protected CircleData CircleMinus { get; set; } = null!;
protected CircleData CircleOpt { get; set; } = null!;
protected int LineDist { get; set; } = 20;
@@ -201,12 +203,18 @@ namespace WebDoorCreator.UI.Components.SvgComp
private void setupGraphParams()
{
// calcolo i dati del cerchi...
CircleLine = new CircleData(ObjW - LineWidth - (ObjH / 2), ObjH / 2, (ObjH - LineWidth) / 2);
CircleImg = new CircleData(ObjW - LineWidth - (ObjH / 2), ObjH / 2, (ObjH - 2 * LineWidth) / 2);
// calcolo dati lineari
BaseLine = new LineData(new PointData(0, ObjH - LineWidth / 2), new PointData(ObjW - LineWidth - (ObjH / 2), ObjH - LineWidth / 2));
ClickArea = new LineData(new PointData(ObjW - LineWidth - ObjH, 0), new PointData(ObjW, 0));
LineDist = ObjH / 4;
// calcolo i dati del cerchi...
CircleLine = new CircleData(ObjW - LineWidth - (ObjH / 2), ObjH / 2, (ObjH - LineWidth) / 2);
CircleImg = new CircleData(ObjW - LineWidth - (ObjH / 2), ObjH / 2, (ObjH - 2 * LineWidth) / 2);
int dCX = CircleLine.rad * 3 / 4;
int dCY = CircleLine.rad * 4 / 6;
CirclePlus = new CircleData(CircleLine.cx + dCX, CircleLine.cy - dCY, CircleLine.rad / 3);
CircleMinus = new CircleData(CircleLine.cx + dCX, CircleLine.cy + dCY, CircleLine.rad / 3);
CircleOpt = new CircleData(CircleLine.cx - dCX, CircleLine.cy - dCY, CircleLine.rad / 3);
}
#endregion Private Methods
+6 -5
View File
@@ -18,12 +18,13 @@
}
</div>
<div class="row my-2">
@*<div class="col-3">
</div>*@
<div class="col-6">
<DoorSvgObj LineColor="#8E44AD" LineWidth="8" ObjH="200" ObjW="900" LeftTextClass="col-10 fs-1 fw-bold" RightTextClass="col-2" EC_ExeFunct="@(()=> exeDoor())" ObjId="1" TextData="@msgList" Message1="messaggio 1" Message2="messaggio 2" ImagePath="@svgUrl(196)"></DoorSvgObj>
<div class="col-4">
<DoorSvgObj LineColor="#8E44AD" LineWidth="8" ObjH="200" ObjW="900" LeftTextClass="col-10 fs-1 fw-bold" RightTextClass="col-2" EC_ExeFunct="@(()=> exeDoor())" ObjId="1" TextData="@msgList" Message1="messaggio 1" Message2="messaggio 2" ShowPlusMinus="true" ImagePath="@svgUrl(196)"></DoorSvgObj>
</div>
<div class="col-6">
<div class="col-4">
<DoorSvgObj LineColor="#8E44AD" LineWidth="8" ObjH="200" ObjW="900" LeftTextClass="col-10 fs-1 fw-bold" RightTextClass="col-2" EC_ExeFunct="@(()=> exeDoor())" ObjId="1" TextData="@msgList" Message1="messaggio 1" Message2="messaggio 2" ShowClone="true" ImagePath="@svgUrl(199)"></DoorSvgObj>
</div>
<div class="col-4">
<DoorSvgObj LineColor="#8E44AD" LineWidth="8" ObjH="200" ObjW="900" LeftTextClass="col-10 fs-1 fw-bold" RightTextClass="col-2" EC_ExeFunct="@(()=> exeDoor())" ObjId="2" TextData="@msgList" Message1="messaggio 1" Message2="messaggio 2" ShowPlusMinus="true" ImagePath="@svgUrl(186)"></DoorSvgObj>
</div>
</div>