diff --git a/Test.UI/Traduzioni/Traduzione.json b/Test.UI/Traduzioni/Traduzione.json
index 7840b99..c048687 100644
--- a/Test.UI/Traduzioni/Traduzione.json
+++ b/Test.UI/Traduzioni/Traduzione.json
@@ -6,7 +6,7 @@
"CWFrame_Joints": "Giunzioni",
"CWFrame_Quantity": "Quantità ",
"CWFrame_Shape": "Forma",
- "CWFrame_Threshold": "Soglia",
+ "CWFrame_Threshold": "Tipologia traverso inferiore",
"CWFrame_Tipology": "Tipologia",
"CWAreaF_AreaFrame": "Area Telaio",
"CWAreaF_AggSash": "Aggiungi Ante",
@@ -63,6 +63,7 @@
"CWAreaS_AddInglesina": "Inglesina",
"CWAreaS_Element": "Elementi",
"CWAreaS_Joints": "Giunzioni",
+ "CWAreaS_Add": "Aggiungi",
"CWSplit_Sash": "Anta",
"CWSplit_SashGroup": "Ante",
"CWSplit_Split": "Divisione",
@@ -96,5 +97,26 @@
"CWAreaSp_AddSash": "Aggiungi anta",
"CWAreaSp_CopySash": "Copia anta",
"CWAreaSp_AddInglesina": "Aggiungi inglesina",
- "CWAreaSp_Sash": "Anta"
+ "CWAreaSp_Sash": "Anta",
+ "CWIng_Sash": "Anta",
+ "CWIng_SashGroup": "Gruppo ante",
+ "CWIng_Glass": "Vetro",
+ "CWIng_Inglesina": "Inglesina",
+ "CWIng_RemoveIng": "Elimina inglesina",
+ "CWIng_Shape": "Forma",
+ "CWIng_Horizontal": "Orizzontale",
+ "CWIng_Vertical": "Verticale",
+ "CWIng_Grid": "Griglia",
+ "CWIng_Custom": "Personalizzata",
+ "CWIng_StartVert": "Inizia verticale",
+ "CWIng_Side": "Lato",
+ "CWIng_Internal": "Interno",
+ "CWIng_External": "Esterno",
+ "CWIng_Both": "Interno & esterno",
+ "CWIng_HorizIng": "Elementi orizzontali",
+ "CWIng_VerticalIng": "Elementi verticali",
+ "CWIng_QtyElem": "Qtà ",
+ "CWIng_Absolute": "Assoluta",
+ "CWIng_Proportional": "Proporzionale",
+ "CWIng_Percentage": "Percentuale"
}
\ No newline at end of file
diff --git a/WebWindowComplex/Compo/AreaHwOption.razor b/WebWindowComplex/Compo/AreaHwOption.razor
index 4a863b5..89cb2c2 100644
--- a/WebWindowComplex/Compo/AreaHwOption.razor
+++ b/WebWindowComplex/Compo/AreaHwOption.razor
@@ -1,10 +1,8 @@
@using static WebWindowComplex.Json.WindowConst
-
+
@Traduci("CWHwOpt_HwOption")
-
-
diff --git a/WebWindowComplex/Compo/AreaSash.razor b/WebWindowComplex/Compo/AreaSash.razor
index 9490e10..6653451 100644
--- a/WebWindowComplex/Compo/AreaSash.razor
+++ b/WebWindowComplex/Compo/AreaSash.razor
@@ -1,16 +1,15 @@
@using EgwCoreLib.Razor
+
- @if (!SashDimEditList.Contains(IndexSash))
- {
-
-
-
@Traduci("CWAreaS_Sash") @(CurrSashGroup.SashList.Count == 1 ? "" : (IndexSash + 1))
-
-
+
+
@Traduci("CWAreaS_Sash") @(CurrSashGroup.SashList.Count == 1 ? "" : (IndexSash + 1))
+
+ @if (!SashDimEditList.Contains(IndexSash))
+ {
@if(!BaseUser && CurrSashGroup.SashList.Count > 1)
{
-
}
-
-
-
-
-
-
-
-
-
- @if (BaseUser)
- {
-
-
-
- }
- else
- {
-
- ChangeHandle()">
-
- }
-
-
+ @if (CurrAnta.AreaList[0].AreaList.Count == 0)
+ {
+
+ AddInglesinaToSash()">
+ @Traduci("CWAreaS_AddInglesina")
+
+
+ }
+
+ }
+
ClosePopup(IndexSash)">
+ }
+
+
+
+ @if (BaseUser)
+ {
+
+
+
+
+
+ }
+ else
+ {
+
+
+
+
+
+
+
+
+ }
+
+ @Traduci("CWAreaS_Dimension")
+ @if(BaseUser)
+ {
+
+
+ @(CurrSashDim.SelMeasureType.ToString() switch
+ {
+ "Absolute" => "mm",
+ "Proportional" => "*",
+ "Percentage" => "%",
+ _ => CurrSashDim.SelMeasureType.ToString()
+ })
+
+ }
+ else
+ {
+
+
+ }
+
+
- }
- else
+
+ @if (SashDimEditList.Contains(IndexSash))
{
-
-
-
@Traduci("CWAreaS_Sash") @(CurrSashGroup.SashList.Count == 1 ? "" : (IndexSash + 1))
-
-
- @if (!BaseUser && !(CurrAnta.AreaList[0] is Split))
- {
-
- AddSplitToSash()">@Traduci("CWAreaS_AddSplit")
-
- }
-
-
- @if (!BaseUser && CurrAnta.AreaList[0].AreaList.Count == 0)
- {
-
- AddInglesinaToSash()">@Traduci("CWAreaS_AddInglesina")
-
- }
-
-
- ClosePopup(IndexSash)">
-
-
-
-
-
-
-
- @if(BaseUser)
- {
-
-
-
- }
- else
- {
-
- ChangeHandle()">
-
- }
-
-
-
-
-
-
-
-
-
@Traduci("CWAreaS_Joints")
+
+
@Traduci("CWAreaS_Joints")
+
+ @if (BaseUser)
+ {
+
+
+
+
+
+
+
+
+
+ }
+ else
+ {
+
ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.ANGLED)">
+
+
+
ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.FULL_H)">
+
+
+
ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.FULL_V)">
+
+
+ }
- @if (BaseUser)
- {
-
- }
- else
- {
-
-
ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.ANGLED)">
-
-
-
ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.FULL_H)">
-
-
-
ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.FULL_V)">
-
-
-
- }
@* Joint top left e joint top right *@
@@ -363,10 +216,8 @@
-
-
-
@Traduci("CWAreaS_Element")
-
+
+
@Traduci("CWAreaS_Element")
@foreach (var element in CurrSashDim.ElementDimensionList)
diff --git a/WebWindowComplex/Compo/AreaSash.razor.cs b/WebWindowComplex/Compo/AreaSash.razor.cs
index 16c4719..62b4491 100644
--- a/WebWindowComplex/Compo/AreaSash.razor.cs
+++ b/WebWindowComplex/Compo/AreaSash.razor.cs
@@ -487,7 +487,7 @@ namespace WebWindowComplex.Compo
{
// Un piccolo delay assicura che l'evento @onclick dell'item venga eseguito prima di chiudere il menu
await Task.Delay(150);
- isOpen = false;
+ isOpenDropdown = false;
}
///
diff --git a/WebWindowComplex/Compo/AreaSplit.razor b/WebWindowComplex/Compo/AreaSplit.razor
index 5a0fd28..a6cc22a 100644
--- a/WebWindowComplex/Compo/AreaSplit.razor
+++ b/WebWindowComplex/Compo/AreaSplit.razor
@@ -1,55 +1,41 @@

-
-
-
@Traduci("CWAreaSp_AreaSp") @(SplittedList.Count > 1 ? (SplittedList.IndexOf(CurrSplitted) + 1) : "")
-
-
+
+
@Traduci("CWAreaSp_AreaSp") @(SplittedList.Count > 1 ? (SplittedList.IndexOf(CurrSplitted) + 1) : "")
+
RaiseAddSash()">@Traduci("CWAreaSp_AddSash")
-
- @if (SashGroupList.Count == 1)
- {
-
+ @if (SashGroupList.Count == 1)
+ {
RaiseCopySash(0)">@Traduci("CWAreaSp_CopySash")
-
- }
- else if (SashGroupList.Count > 1)
- {
-
-
- @Traduci("CWAreaSp_CopySash")
-
-
-
- }
- @* @for (int j = 0; j < SashGroupList.Count; j++)
- {
-
- int Index = j;
-
-
-
RaiseCopySash(Index)">@Traduci("CWAreaSp_CopySash") @(SashGroupList.Count == 1 ? "" : (Index + 1))
+ }
+ else if (SashGroupList.Count > 1)
+ {
+
+
+ @Traduci("CWAreaSp_CopySash")
+
+
-
- } *@
+ }
+
RaiseAddInglesina()">@Traduci("CWAreaSp_AddInglesina")
diff --git a/WebWindowComplex/Compo/CardFill.razor b/WebWindowComplex/Compo/CardFill.razor
index 4cf96c5..48b74b6 100644
--- a/WebWindowComplex/Compo/CardFill.razor
+++ b/WebWindowComplex/Compo/CardFill.razor
@@ -19,11 +19,11 @@
@if (BaseUser)
{
- @Traduci("CWFill_Glass")
+ @Traduci("CWFill_Glass")
}
else
{
- ChangeOneFill(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)">@Traduci("CWFill_Glass")
+ ChangeOneFill(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)">@Traduci("CWFill_Glass")
}
@@ -31,11 +31,11 @@
@if (BaseUser)
{
- @Traduci("CWFill_Wood")
+ @Traduci("CWFill_Wood")
}
else
{
- ChangeOneFill(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)">@Traduci("CWFill_Wood")
+ ChangeOneFill(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)">@Traduci("CWFill_Wood")
}
diff --git a/WebWindowComplex/Compo/CardFill.razor.cs b/WebWindowComplex/Compo/CardFill.razor.cs
index 4f66266..508e5a4 100644
--- a/WebWindowComplex/Compo/CardFill.razor.cs
+++ b/WebWindowComplex/Compo/CardFill.razor.cs
@@ -99,7 +99,7 @@ namespace WebWindowComplex.Compo
///
private string buttonFillCss(FillTypes reqFillTypes)
{
- return (CurrFill.SelFillType == reqFillTypes) ? "btn btn-secondary btn-sm" : "btn btn-outline-secondary btn-sm";
+ return (CurrFill.SelFillType == reqFillTypes) ? "active" : "";
}
///
diff --git a/WebWindowComplex/Compo/CardFill.razor.css b/WebWindowComplex/Compo/CardFill.razor.css
new file mode 100644
index 0000000..fdb3cf0
--- /dev/null
+++ b/WebWindowComplex/Compo/CardFill.razor.css
@@ -0,0 +1,41 @@
+/* Stato Normale (Non Attivo) */
+.btn-icone {
+ background-color: #ffffff;
+ border: 2px solid #d1d5db; /* Bordo grigio tenue di media visibilità */
+ box-shadow: 0 4px 12px rgba(212, 230, 250, 0.8); /* Ombra azzurra delicata */
+ font-weight: 400;
+ padding: 10px 22px;
+ border-radius: 8px;
+ cursor: pointer;
+ transition: transform 0.2s ease, background-color 0.2s ease, border 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
+}
+
+ /* Hover (Passaggio del mouse - si applica in tutti gli stati) */
+ .btn-icone:hover {
+ transform: scale(1.08); /* Ingrandimento del bottone */
+ border-color: #9ca3af; /* Bordo grigio leggermente più nitido all'hover */
+ box-shadow: 0 8px 20px rgba(2, 132, 199, 0.35); /* Ombra blu leggermente più intensa */
+ }
+
+ /* Stato Attivo (Selezionato) */
+ .btn-icone.active {
+ background-color: #ffffff; /* Sfondo bianco */
+ border: 3px solid #a6ccf5; /* Bordo azzurro */
+ box-shadow: 0 2px 8px rgba(2, 132, 199, 0.2);
+ }
+
+ /* Hover specifico quando il bottone è Attivo */
+ .btn-icone.active:hover {
+ transform: scale(1.08);
+ background-color: #ffffff; /* Azzurro leggermente più carico al passaggio */
+ border-color: #a6ccf5; /* Sottile affinamento del bordo */
+ box-shadow: 0 8px 20px rgba(2, 132, 199, 0.35);
+ }
+
+ /* Effetto Pressione al Click (Mouse premuto) */
+ .btn-icone:active,
+ .btn-icone.active:active {
+ transform: scale(0.96) translateY(2px);
+ box-shadow: 0 2px 4px rgba(212, 230, 250, 0.15);
+ transition: transform 0.05s ease, box-shadow 0.05s ease;
+ }
diff --git a/WebWindowComplex/Compo/CardFrame.razor b/WebWindowComplex/Compo/CardFrame.razor
index 614517c..8e2a54a 100644
--- a/WebWindowComplex/Compo/CardFrame.razor
+++ b/WebWindowComplex/Compo/CardFrame.razor
@@ -16,21 +16,18 @@
@if (BaseUser)
{
+
+
@Traduci("CWFrame_Shape")
+
-
-
@Traduci("CWFrame_Shape")
-
- @*
*@
-
- @foreach (var i in CurrFrameWindow.ShapeList)
- {
-
-
-
-
-
- }
-
+ @foreach (var i in CurrFrameWindow.ShapeList)
+ {
+
+
+
+
+
+ }
}
else
@@ -41,7 +38,7 @@
@foreach (var i in CurrFrameWindow.ShapeList)
{
-
+
SelShapeFrame(i.Id)">
@@ -70,17 +67,15 @@
-
@Traduci("CWFrame_Threshold")
+ @Traduci("CWFrame_Threshold")