Files
2026-01-16 15:10:19 +01:00

862 lines
35 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System.Runtime.InteropServices;
using System.Security.Principal;
using WebWindowTest.Json;
using static WebWindowTest.Json.WindowConst;
namespace WebWindowTest.Models
{
public class SashDimension : AreaDimension
{
#region Public Constructors
public SashDimension(double dDimension, MeasureTypes MeasureType, Sash Parent, int nSashId):base(dDimension, MeasureType)
{
m_dDimension = dDimension;
m_nSashId = nSashId;
m_Parent = Parent;
SetMeasureType(MeasureType);
// assengno maniglia
if (Parent.SashList.Count == 0 || !Parent.SashList.Any(x => x.bHasHandle))
m_bHasHandle = true;
// assegno tipo di anta
if (Parent.SashList.Count == 0)
SetOpeningType(Openings.TILTTURN_LEFT);
else if (Parent.SashList.Count == 1)
{
switch (Parent.SashList[0].OpeningType)
{
case Openings.TURNONLY_LEFT:
{
SetOpeningType(Openings.TURNONLY_RIGHT);
break;
}
case Openings.TURNONLY_RIGHT:
{
SetOpeningType(Openings.TURNONLY_LEFT);
break;
}
case Openings.TILTTURN_LEFT:
{
SetOpeningType(Openings.TURNONLY_RIGHT);
break;
}
case Openings.TILTTURN_RIGHT:
{
SetOpeningType(Openings.TURNONLY_LEFT);
break;
}
case Openings.TILTONLY_TOP:
{
SetOpeningType(Openings.TILTONLY_BOTTOM);
break;
}
case Openings.TILTONLY_BOTTOM:
{
SetOpeningType(Openings.TILTONLY_TOP);
break;
}
case Openings.COMPLANARSLIDE_LEFT:
{
SetOpeningType(Openings.COMPLANARSLIDE_RIGHT);
break;
}
case Openings.COMPLANARSLIDE_RIGHT:
{
SetOpeningType(Openings.COMPLANARSLIDE_LEFT);
break;
}
case Openings.LIFTSLIDE_LEFT:
{
SetOpeningType(Openings.LIFTSLIDE_RIGHT);
break;
}
case Openings.LIFTSLIDE_RIGHT:
{
SetOpeningType(Openings.LIFTSLIDE_LEFT);
break;
}
}
}
else
SetOpeningType(Parent.SashList[Parent.SashList.Count - 1].OpeningType);
}
#endregion Public Constructors
#region Public Properties
public bool bHasHandle
{
get
{
return m_bHasHandle;
}
set
{
m_bHasHandle = value;
}
}
public Sash Parent
{
get
{
return m_Parent;
}
set
{
m_Parent = value;
}
}
public List<Joint> JointList
{
get
{
return m_JointList;
}
set
{
m_JointList = value;
}
}
public override double dDimension
{
get
{
return m_dDimension;
}
set
{
double widthTot = CalculateWidthSashGroup(m_Parent.ParentWindow.AreaList.FirstOrDefault(), m_Parent.ParentWindow.AreaList.FirstOrDefault().DimensionList.Where(x => x.sName == "Width").First().dDimension);
double valMinAbsolute = 200;
double valMaxAbsolute = widthTot - valMinAbsolute * (m_Parent.SashList.Count - 1);
bool valueAccept = false;
switch (MeasureType)
{
case MeasureTypes.ABSOLUTE:
{
valueAccept = (value < valMaxAbsolute && value > valMinAbsolute) ? true : false;
break;
}
case MeasureTypes.PROPORTIONAL:
{
valMaxAbsolute = 20;
valueAccept = (value >= 1) ? true : false;
break;
}
case MeasureTypes.PERCENTAGE:
{
valMaxAbsolute = valMaxAbsolute / widthTot * 100;
valMinAbsolute = valMinAbsolute / widthTot * 100;
valueAccept = (value < valMaxAbsolute && value > valMinAbsolute) ? true : false;
break;
}
}
if (valueAccept)
{
List<SashDimension> dimensions = m_Parent.SashList;
List<double> absoluteValList = new List<double>();
AreaDimension ad = new AreaDimension(m_dDimension, SelMeasureType);
List<AreaDimension> adList = new List<AreaDimension>();
foreach (var it in m_Parent.SashList)
{
adList.Add(new AreaDimension(it.m_dDimension, it.SelMeasureType));
}
int index = 0;
foreach (var item in m_Parent.SashList)
{
absoluteValList.Add(adList.ElementAt(index).CalculateAbsoluteValue(adList, widthTot));
index++;
}
int nIndex = dimensions.IndexOf(this);
int proportionalCount = dimensions.Where(x => x.MeasureType.Equals(MeasureTypes.PROPORTIONAL)).ToList().Count;
int percentageCount = dimensions.Where(x => x.MeasureType.Equals(MeasureTypes.PERCENTAGE)).ToList().Count;
// Le dimensioni sono solo in proporzionale
if (proportionalCount == absoluteValList.Count || SelMeasureType.Equals(MeasureTypes.PROPORTIONAL) ||
(SelMeasureType.Equals(MeasureTypes.ABSOLUTE) && proportionalCount == absoluteValList.Count -1))
{
m_dDimension = value;
}
// Le dimensioni sono solo in percentuale
else if (percentageCount == dimensions.Count)
{
if (value < m_dDimension)
{
// L'anta modificata non è l'ultima
if (nIndex < dimensions.Count - 1)
dimensions[nIndex + 1].SetDimension(dimensions[nIndex + 1].m_dDimension + (m_dDimension - value));
else if (dimensions.Count > 1)
dimensions[nIndex - 1].SetDimension(dimensions[nIndex - 1].m_dDimension + (m_dDimension - value));
else
{
m_dDimension = 100;
return;
}
}
else
{
double dRes = value;
// se non ultima anta
if (nIndex < dimensions.Count - 1)
{
for (var nInd = 0; nInd <= nIndex - 1; nInd++)
dRes += dimensions[nInd].m_dDimension;
dRes = (100 - dRes) / (dimensions.Count - nIndex - 1);
for (var Ind = nIndex + 1; Ind <= dimensions.Count - 1; Ind++)
dimensions[Ind].SetDimension(dRes);
}
// se ultima anta
else if (dimensions.Count > 1)
{
if (dimensions.Count > 2)
{
for (var Ind = 0; Ind <= nIndex - 2; Ind++)
dRes += dimensions[Ind].m_dDimension;
}
dRes = (100 - dRes);
dimensions[nIndex - 1].SetDimension(dRes);
}
else
{
m_dDimension = 100;
return;
}
}
m_dDimension = value;
}
// Le dimensioni sono miste o solo in assoluto
else
{
double valueInAbsolute = 0;
switch (MeasureType)
{
case MeasureTypes.ABSOLUTE:
{
valueInAbsolute = value;
break;
}
case MeasureTypes.PROPORTIONAL:
{
var pesi = value + dimensions.Where(x => x.MeasureType.Equals(MeasureTypes.PROPORTIONAL) && !x.Equals(this))
.Sum(x => x.m_dDimension);
valueInAbsolute = widthTot / pesi * value;
break;
}
case MeasureTypes.PERCENTAGE:
{
valueInAbsolute = (value / 100) * widthTot;
break;
}
}
if (value < m_dDimension)
{
// L'anta modificata non è l'ultima
if (nIndex < absoluteValList.Count - 1)
{
absoluteValList[nIndex + 1] = absoluteValList[nIndex + 1] + (absoluteValList[nIndex] - valueInAbsolute);
absoluteValList[nIndex] = valueInAbsolute;
}
// L'anta modificata è l'ultima
else if (dimensions.Count > 1)
{
absoluteValList[nIndex - 1] = absoluteValList[nIndex - 1] + (absoluteValList[nIndex] - valueInAbsolute);
absoluteValList[nIndex] = valueInAbsolute;
}
}
else
{
// L'anta modificata non è l'ultima
if (nIndex < absoluteValList.Count - 1)
{
absoluteValList[nIndex + 1] = absoluteValList[nIndex + 1] - (valueInAbsolute - absoluteValList[nIndex]);
absoluteValList[nIndex] = valueInAbsolute;
}
// L'anta modificata è l'ultima
else if (dimensions.Count > 1)
{
absoluteValList[nIndex - 1] = absoluteValList[nIndex - 1] - (valueInAbsolute - absoluteValList[nIndex]);
absoluteValList[nIndex] = valueInAbsolute;
}
}
if (MeasureType.Equals(MeasureTypes.PROPORTIONAL))
m_dDimension = value;
for (int i = 0; i < absoluteValList.Count; i++)
{
var item = m_Parent.SashList.ElementAt(i);
item.SetDimension(ad.ConvertIn(adList, absoluteValList[i], (MeasureTypes)item.SelMeasureTypeIndex, widthTot));
}
}
foreach(var item in m_Parent.AreaList)
item.SearchAreaList(item, dDimension, "Width");
}
}
}
public int nSashId
{
get
{
return m_nSashId;
}
}
public Openings OpeningType
{
get
{
return m_SelOpeningType;
}
}
public List<IdNameStruct> OpeningTypeList
{
get
{
return m_OpeningTypeList;
}
}
public Openings SelOpeningType
{
get
{
return m_SelOpeningType;
}
set
{
m_SelOpeningType = value;
m_Parent.ClearHardwareOptionList();
m_Parent.SetFirstHardware();
}
}
public int SelOpeningTypeIndex
{
get
{
return (int)m_SelOpeningType;
}
set
{
Openings newOpening = (Openings)value;
if ((newOpening != Openings.TILTTURN_LEFT && newOpening != Openings.TILTTURN_RIGHT) ||
(newOpening == Openings.TILTTURN_LEFT && m_bHasHandle) ||
(newOpening == Openings.TILTTURN_RIGHT && m_bHasHandle))
{
m_SelOpeningType = newOpening;
m_Parent.ClearHardwareOptionList();
m_Parent.RefreshHardwareList();
m_Parent.SetFirstHardware();
}
}
}
//public MeasureTypes MeasureType
//{
// get
// {
// return m_SelMeasureType;
// }
//}
//public List<IdNameStruct> MeasureTypeList
//{
// get
// {
// return m_MeasureTypeList;
// }
//}
//public MeasureTypes SelMeasureType
//{
// get
// {
// return m_SelMeasureType;
// }
// set
// {
// m_SelMeasureType = value;
// }
//}
public override int SelMeasureTypeIndex
{
get
{
return (int)SelMeasureType;
}
set
{
if(SelMeasureType != (MeasureTypes)value)
{
MeasureTypes newType = (MeasureTypes)value;
double widthTot = CalculateWidthSashGroup(m_Parent.ParentWindow.AreaList.FirstOrDefault(), m_Parent.ParentWindow.AreaList.FirstOrDefault().DimensionList.Where(x => x.sName == "Width").First().dDimension);
AreaDimension ad = new AreaDimension(m_dDimension, SelMeasureType);
List<AreaDimension> adList = new List<AreaDimension>();
foreach (var it in m_Parent.SashList)
{
adList.Add(new AreaDimension(it.m_dDimension, it.SelMeasureType));
}
m_dDimension = ad.ConvertDimension(adList, SelMeasureType, newType, widthTot, nSashId-1);
//m_dDimension = Convert.ConvertDimension(this, m_SelMeasureType, newType, m_dDimension, widthTot);
SelMeasureType = (MeasureTypes)value;
}
}
}
#endregion Public Properties
#region Public Methods
/// <summary>
/// Metodo per convertire la dimensione dal vecchio tipo al nuovo tipo
/// </summary>
/// <param name="oldType"> Vecchio tipo </param>
/// <param name="newType"> Nuovo tipo </param>
/// <returns></returns>
//public double ConvertDimension(MeasureTypes oldType, MeasureTypes newType, double widthTot)
//{
// switch (oldType)
// {
// case MeasureTypes.ABSOLUTE:
// {
// if (newType.Equals(MeasureTypes.PERCENTAGE))
// {
// //return Double.Round((m_dDimension / m_Parent.Width) * 100, 1);
// return (m_dDimension / widthTot) * 100;
// }
// else
// {
// return CalculatePropVal(widthTot);
// }
// }
// case MeasureTypes.PROPORTIONAL:
// {
// if (newType.Equals(MeasureTypes.ABSOLUTE))
// {
// //return Double.Round(ConvertFromPropVal(newType), 2);
// return ConvertFromPropVal(newType, widthTot, dDimension);
// }
// else
// {
// //return Double.Round(ConvertFromPropVal(newType), 1);
// return ConvertFromPropVal(newType, widthTot, dDimension);
// }
// }
// case MeasureTypes.PERCENTAGE:
// {
// if (newType.Equals(MeasureTypes.ABSOLUTE))
// {
// //return Double.Round((m_dDimension * m_Parent.Width) / 100, 2);
// return (m_dDimension * widthTot) / 100;
// }
// else
// {
// return CalculatePropVal(widthTot);
// }
// }
// }
// return -1;
//}
/// <summary>
/// Metodo per copiare l'intero oggetto
/// </summary>
/// <returns></returns>
public SashDimension Copy()
{
SashDimension newSashDim = new SashDimension(m_dDimension, MeasureType, m_Parent, m_nSashId);
newSashDim.SetMeasureType(MeasureType);
newSashDim.SetOpeningType(SelOpeningType);
newSashDim.SetHasHandle(bHasHandle);
foreach (var item in JointList)
{
Joint newJoint = item.Copy();
newSashDim.JointList.Add(newJoint);
}
return newSashDim;
}
#endregion Public Methods
#region Internal Methods
/// <summary>
/// Metodo per calcolare larghezza intera sash group
/// </summary>
/// <param name="area"> area di partenza </param>
/// <param name="width"> larghezza di partenza </param>
/// <returns></returns>
internal double CalculateWidthSashGroup(Area area, double width)
{
for(int i = 0; i < area.AreaList.Count; i++)
{
double risultato = -1;
if (area.Equals(m_Parent))
return width;
Area item = area.AreaList[i];
if (area is Split)
{
Split split = (Split)area;
if (split.SplitVertList.Count > 0)
{
switch (split.SplitVertList.ElementAt(i).SelMeasureType)
{
case MeasureTypes.ABSOLUTE:
{
risultato = CalculateWidthSashGroup(item, split.SplitVertList.ElementAt(i).dDimension);
break;
}
case MeasureTypes.PROPORTIONAL:
{
AreaDimension ad = new AreaDimension(split.SplitVertList.ElementAt(i).dDimension, split.SplitVertList.ElementAt(i).SelMeasureType);
List<AreaDimension> adList = new List<AreaDimension>();
foreach(var it in split.SplitVertList)
{
adList.Add(new AreaDimension(it.dDimension, it.SelMeasureType));
}
risultato = CalculateWidthSashGroup(item, ad.ConvertFromPropVal(adList, MeasureTypes.ABSOLUTE, width));
break;
}
case MeasureTypes.PERCENTAGE:
{
risultato = CalculateWidthSashGroup(item, split.SplitVertList.ElementAt(i).dDimension * width / 100);
break;
}
}
if (risultato != -1)
return risultato;
}
else
{
risultato = CalculateWidthSashGroup(item, width);
}
}
else if (area is Sash)
{
Sash sash = (Sash)area;
switch (sash.SashList.ElementAt(i).SelMeasureType)
{
case MeasureTypes.ABSOLUTE:
{
risultato = CalculateWidthSashGroup(item, sash.SashList.ElementAt(i).dDimension);
break;
}
case MeasureTypes.PROPORTIONAL:
{
//risultato = CalculateWidthSashGroup(item, ConvertFromPropVal(MeasureTypes.ABSOLUTE, width, sash.SashList.ElementAt(i).dDimension));
AreaDimension ad = new AreaDimension(sash.SashList.ElementAt(i).dDimension, sash.SashList.ElementAt(i).SelMeasureType);
List<AreaDimension> adList = new List<AreaDimension>();
foreach (var it in sash.SashList)
{
adList.Add(new AreaDimension(it.dDimension, it.SelMeasureType));
}
risultato = CalculateWidthSashGroup(item, ad.ConvertFromPropVal(adList, MeasureTypes.ABSOLUTE, width));
break;
}
case MeasureTypes.PERCENTAGE:
{
risultato = CalculateWidthSashGroup(item, sash.SashList.ElementAt(i).dDimension * width / 100);
break;
}
}
if (risultato != -1)
return risultato;
}
else
{
risultato = CalculateWidthSashGroup(item, width);
if (risultato != -1)
return risultato;
}
}
return width;
}
///// <summary>
///// Calcolo MCD
///// </summary>
///// <param name="a"></param>
///// <param name="b"></param>
///// <returns></returns>
//internal static double CalculateMCD(double a, double b)
//{
// while (b >= 0.01)
// {
// double temp = b;
// b = a % b;
// a = temp;
// }
// //return Double.Round(a,2);
// return a;
//}
///// <summary>
///// Metodo per ricalcolare i valori proporzionali a causa della modifica di uno
///// </summary>
///// <returns></returns>
//internal double CalculatePropVal(double widthTot)
//{
// if (m_Parent.SashList.Where(m => m.MeasureType.Equals(MeasureTypes.PROPORTIONAL)).ToList().Count == 0)
// {
// return 1;
// }
// List<double> absoluteValue = new List<double>();
// foreach (var item in m_Parent.SashList)
// {
// absoluteValue.Add(item.CalculateAbsoluteValue(widthTot));
// }
// for (int i = 0; i < m_Parent.SashList.Count; i++)
// {
// if (!m_Parent.SashList.ElementAt(i).Equals(this) &&
// m_Parent.SashList.ElementAt(i).MeasureType.Equals(MeasureTypes.PROPORTIONAL))
// {
// int nIndex = m_Parent.SashList.IndexOf(this);
// if (absoluteValue.ElementAt(nIndex) <= absoluteValue.ElementAt(i))
// {
// var mcd = CalculateMCD(absoluteValue.ElementAt(nIndex), absoluteValue.ElementAt(i));
// m_Parent.SashList.ElementAt(i).m_dDimension = absoluteValue.ElementAt(i) / mcd;
// m_dDimension = absoluteValue.ElementAt(nIndex) / mcd;
// }
// else
// {
// var mcd = CalculateMCD(absoluteValue.ElementAt(nIndex), absoluteValue.ElementAt(i));
// m_Parent.SashList.ElementAt(i).m_dDimension = absoluteValue.ElementAt(i) / mcd;
// m_dDimension = absoluteValue.ElementAt(nIndex) / mcd;
// }
// break;
// }
// }
// return m_dDimension;
//}
///// <summary>
///// Metodo per trasformare una dimensione in valore assoluto rispetto alla larghezza totale
///// </summary>
///// <param name="widthTot"> Larghezza totale </param>
///// <returns></returns>
//internal double CalculateAbsoluteValue(double widthTot)
//{
// switch (MeasureType)
// {
// case MeasureTypes.ABSOLUTE:
// {
// //return Double.Round(dDimension, 2);
// return dDimension;
// }
// case MeasureTypes.PROPORTIONAL:
// {
// //return Double.Round(Proportional2AbsolutVal(), 2);
// return ProportionalFromAbsoluteVal(widthTot);
// }
// case MeasureTypes.PERCENTAGE:
// {
// //return Double.Round((dDimension / 100) * widthTot, 1);
// return (dDimension / 100) * widthTot;
// }
// }
// return 0;
//}
///// <summary>
///// Metodo per convertire una dimensione da un valore assoluto al suo rispettivo tipo
///// </summary>
///// <param name="absoluteVal"> Valore assoluto </param>
///// <param name="type"> Tipo di misura della dimensione </param>
///// <param name="widthTot"> Larghezza totale </param>
///// <returns></returns>
//internal double ConvertIn(double absoluteVal, MeasureTypes type, double widthTot)
//{
// switch (type)
// {
// case MeasureTypes.ABSOLUTE:
// {
// return absoluteVal;
// }
// case MeasureTypes.PROPORTIONAL:
// {
// return ProportionalFromAbsoluteVal(widthTot);
// }
// case MeasureTypes.PERCENTAGE:
// {
// return (absoluteVal / widthTot) * 100;
// }
// }
// return -1;
//}
///// <summary>
///// Metodo per convertire da misura proporzionale a misura assoluta o percentuale
///// </summary>
///// <param name="newType"></param>
///// <returns></returns>
//internal double ConvertFromPropVal(MeasureTypes newType, double widthTot, double dim)
//{
// double tot = widthTot;
// //Somma misura non proporzionali
// double sumNotProp = m_Parent.SashList
// .Where(m => m.MeasureType != MeasureTypes.PROPORTIONAL && !m.Equals(this))
// .Sum(m => m.CalculateAbsoluteValue(tot));
// //Calcolo residuo
// double res = tot - sumNotProp;
// if (res < 0) res = 0;
// //Misure proporzionali
// var proportionalList = m_Parent.SashList
// .Where(m => m.SelMeasureType == MeasureTypes.PROPORTIONAL)
// .ToList();
// double sumPesi = proportionalList.Sum(p => p.dDimension);
// if (sumPesi == 0) sumPesi = 1;
// if (newType.Equals(MeasureTypes.ABSOLUTE))
// {
// return res / sumPesi * dim;
// }
// else
// {
// return (res / sumPesi * dim) / tot * 100;
// }
//}
///// <summary>
///// Metodo per trasformare il valore proporzionale in assoluto
///// </summary>
///// <returns></returns>
//internal double ProportionalFromAbsoluteVal(double widthTot)
//{
// double tot = widthTot;
// //Somma misura non proporzionali
// double sumNotProp = m_Parent.SashList
// .Where(m => m.MeasureType != MeasureTypes.PROPORTIONAL)
// .Sum(m => m.CalculateAbsoluteValue(tot));
// //Calcolo residuo
// double res = tot - sumNotProp;
// if (res < 0) res = 0;
// //Misure proporzionali
// var proportionalList = m_Parent.SashList
// .Where(m => m.SelMeasureType == MeasureTypes.PROPORTIONAL)
// .ToList();
// double sumPesi = proportionalList.Sum(p => p.dDimension);
// if (sumPesi == 0) sumPesi = 1;
// return res / sumPesi * dDimension;
//}
internal JsonSashDimension Serialize()
{
JsonSashDimension JsonSashDimension = new JsonSashDimension(OpeningType, MeasureType, m_bHasHandle, dDimension, m_nSashId);
foreach (var Joint in JointList)
JsonSashDimension.JointList.Add(Joint.Serialize());
return JsonSashDimension;
}
//internal void SetDimension(double dValue)
//{
// m_dDimension = dValue;
//}
internal void SetHasHandle(bool value)
{
m_bHasHandle = value;
}
internal void SetOpeningType(Openings value)
{
m_SelOpeningType = value;
}
internal void SetMeasureType(MeasureTypes value)
{
SelMeasureType = value;
}
internal void SetSelMeasureType(MeasureTypes value, int indexSash)
{
if (SelMeasureType != (MeasureTypes)value)
{
MeasureTypes newType = (MeasureTypes)value;
double widthTot = CalculateWidthSashGroup(m_Parent.ParentWindow.AreaList.FirstOrDefault(), m_Parent.ParentWindow.AreaList.FirstOrDefault().DimensionList.Where(x => x.sName == "Width").First().dDimension);
AreaDimension ad = new AreaDimension(dDimension, SelMeasureType);
List<AreaDimension> newDimensions = new List<AreaDimension>();
foreach(var item in m_Parent.SashList)
{
newDimensions.Add(new AreaDimension(item.dDimension, item.SelMeasureType));
}
m_dDimension = ad.ConvertDimension(newDimensions, SelMeasureType, newType, widthTot, indexSash);
if(newType is MeasureTypes.PROPORTIONAL)
{
for (int i = 0; i < newDimensions.Count; i++)
m_Parent.SashList.ElementAt(i).SetDimension(newDimensions.ElementAt(i).dDimension);
}
SelMeasureType = (MeasureTypes)value;
}
}
#endregion Internal Methods
#region Private Fields
private bool m_bHasHandle;
//private double m_dDimension;
private int m_nSashId;
private List<IdNameStruct> m_OpeningTypeList = new List<IdNameStruct>
{
new IdNameStruct((int)Openings.TURNONLY_LEFT, "A bandiera sinistra"),
new IdNameStruct((int)Openings.TURNONLY_RIGHT, "A bandiera destra"),
new IdNameStruct((int)Openings.TILTTURN_LEFT, "Ad anta-ribalta sinistra"),
new IdNameStruct((int)Openings.TILTTURN_RIGHT, "Ad anta-ribalta destra"),
new IdNameStruct((int)Openings.TILTONLY_TOP, "Solo verso alto"),
new IdNameStruct((int)Openings.TILTONLY_BOTTOM, "Solo verso basso"),
new IdNameStruct((int)Openings.PIVOT, "Pivot"),
new IdNameStruct((int)Openings.FIXED, "Fissa"),
new IdNameStruct((int)Openings.COMPLANARSLIDE_LEFT, "Complanare sinistra"),
new IdNameStruct((int)Openings.COMPLANARSLIDE_RIGHT, "Complanare destra"),
new IdNameStruct((int)Openings.LIFTSLIDE_LEFT, "Scorrevole sinistra"),
new IdNameStruct((int)Openings.LIFTSLIDE_RIGHT, "Scorrevole destra")
//new IdNameStruct((int)Openings.TURNONLY_LEFT, ">"),
//new IdNameStruct((int)Openings.TURNONLY_RIGHT, "<"),
//new IdNameStruct((int)Openings.TILTTURN_LEFT, ">*"),
//new IdNameStruct((int)Openings.TILTTURN_RIGHT, "<*"),
//new IdNameStruct((int)Openings.TILTONLY_TOP, "˄"),
//new IdNameStruct((int)Openings.TILTONLY_BOTTOM, "˅"),
//new IdNameStruct((int)Openings.PIVOT, "◊"),
//new IdNameStruct((int)Openings.FIXED, "X"),
//new IdNameStruct((int)Openings.COMPLANARSLIDE_LEFT, "-→"),
//new IdNameStruct((int)Openings.COMPLANARSLIDE_RIGHT, "←-"),
//new IdNameStruct((int)Openings.LIFTSLIDE_LEFT, "┌→"),
//new IdNameStruct((int)Openings.LIFTSLIDE_RIGHT, "←┐")
};
//private List<IdNameStruct> m_MeasureTypeList = new List<IdNameStruct>
//{
// new IdNameStruct((int)MeasureTypes.ABSOLUTE, "Absolute"),
// new IdNameStruct((int)MeasureTypes.PROPORTIONAL, "Proportional"),
// new IdNameStruct((int)MeasureTypes.PERCENTAGE, "Percentage"),
//};
// reference
private Sash m_Parent;
private List<Joint> m_JointList = new List<Joint>();
private Openings m_SelOpeningType;
//private MeasureTypes m_SelMeasureType;
#endregion Private Fields
}
}