Imports System.Collections.ObjectModel Imports EgtUILib Imports EgtWPFLib5 Public Class OptionWindowVM #Region "FIELDS & PROPERTIES" Private m_LanguageList As New List(Of Language) Public ReadOnly Property LanguageList As List(Of Language) Get Return m_LanguageList End Get End Property Private m_SelLanguage As Language Public Property SelLanguage As Language Get Return m_SelLanguage End Get Set(value As Language) If value IsNot m_SelLanguage Then m_SelLanguage = value WriteMainPrivateProfileString(S_GENERAL, K_MESSAGES, m_SelLanguage.Name) End If End Set End Property Private m_MeasureUnitList As New List(Of String)({"inch", "mm"}) Public ReadOnly Property MeasureUnitList As List(Of String) Get Return m_MeasureUnitList End Get End Property Public Property SelMeasureUnit As Integer Get Return If(EgtUiUnitsAreMM(), MeasureUnitOpt.MM, MeasureUnitOpt.INCH) End Get Set(value As Integer) ' salvo unità di misura precedente Dim PrevMeasureUnit As MeasureUnitOpt = If(EgtUiUnitsAreMM(), MeasureUnitOpt.MM, MeasureUnitOpt.INCH) If value <> PrevMeasureUnit Then ' cambio unità di misura EgtSetUiUnits(DirectCast(value, MeasureUnitOpt) = MeasureUnitOpt.MM) OmagOFFICEMap.refStatusBarVM.SetMeasureUnit(value) WriteMainPrivateProfileString(S_GENERAL, K_MMUNITS, value.ToString()) ' aggiorno le unità di misura nelle Tab OmagOFFICEMap.refRawPartTabVM.Refresh(PrevMeasureUnit) OmagOFFICEMap.refNestingTabVM.Refresh(PrevMeasureUnit) OmagOFFICEMap.refMoveRawModeVM.Refresh(PrevMeasureUnit) OmagOFFICEMap.refSimulTabVM.Refresh(PrevMeasureUnit) End If End Set End Property #Region "Messages" Public ReadOnly Property Title As String Get Return EgtMsg(MSG_OPTIONSPAGEUC + 1) End Get End Property Public ReadOnly Property CurrentLanguageMsg As String Get Return EgtMsg(MSG_OPTIONSPAGEUC + 1) End Get End Property Public ReadOnly Property LanguageAdvertMsg As String Get Return EgtMsg(MSG_OPTIONSPAGEUC + 2) End Get End Property Public ReadOnly Property MeasureUnitMsg As String Get Return EgtMsg(MSG_OPTIONSPAGEUC + 3) End Get End Property #End Region #End Region ' FIELDS & PROPERTIES #Region "CONSTRUCTOR" Sub New() ' Leggo nome lingua corrente Dim sLanguage As String = String.Empty GetMainPrivateProfileString(S_GENERAL, K_MESSAGES, "", sLanguage) ' Leggo elenco lingue disponibili da file ini e imposto lingua corrente Dim nIndex As Integer = 1 While True Dim ReadLanguage As Language = GetMainPrivateProfileLanguage(S_LANGUAGES, K_LANGUAGE & nIndex) If IsNothing(ReadLanguage) Then Exit While m_LanguageList.Add(ReadLanguage) If String.Compare(ReadLanguage.Name, sLanguage, True) = 0 Then m_SelLanguage = ReadLanguage End If nIndex += 1 End While End Sub #End Region ' CONSTRUCTOR End Class