Files
EgtDOORCreator/OptionsWindow/OptionModule.vb
T
Nicola Pievani 1158fa4d9f EgtDOORCreator 1.8d1 :
- modifiche e migliorie varie.
2017-04-21 15:47:51 +00:00

202 lines
8.1 KiB
VB.net

Imports System.Collections.ObjectModel
Imports EgtUILib
Friend Module OptionModule
' Parametri che contengono lista delle lingue disponibili e lingua selezionata
Friend m_LanguageList As New ObservableCollection(Of Language)
Friend m_SelectedLanguage As Language
Friend m_OptionLauncherList As New List(Of String)
Friend m_SelectedOptionLauncher As String
Friend m_sLastProject As String = String.Empty
' Parametri che contengono lista delle unità di misura disponibili e quella selezionata
Friend m_MeasureUnitList As New List(Of String)({"mm", "Inches"})
Friend m_SelectedMeasureUnit As String
Friend m_bIsMmUnit As Boolean
Friend Enum LauncherWindow
Open_window = 0
Open_last_project = 1
Empty = 2
End Enum
Friend m_Width As String
Friend m_Height As String
Friend m_Thickness As String
Friend m_SwingTypeList As New List(Of String)
Friend m_Swing As String
Friend m_EdgeTypeList As New List(Of String)
Friend m_LockEdgeType As String
Friend m_HingeEdgeType As String
Friend m_TopType As String
Friend m_BottomType As String
Friend m_LockEdgeMachining As Boolean
Friend m_HingeEdgeMachining As Boolean
Friend m_TopMachining As Boolean
Friend m_BottomMachining As Boolean
Friend m_LockEdgeOverMaterial As String
Friend m_HingeEdgeOverMaterial As String
Friend m_TopOverMaterial As String
Friend m_BottomOverMaterial As String
Friend m_CompoPaneOrder As List(Of String) = New List(Of String)
' inizializzazione lettura variabili ad inizio programma
Friend Sub InitOptionModule()
' Leggo elenco lingue disponibili da file ini
Dim nIndex As Integer = 1
Dim ReadLanguage As Language = GetPrivateProfileLanguage(S_LANGUAGES, K_LANGUAGE & nIndex)
While Not IsNothing(ReadLanguage)
m_LanguageList.Add(ReadLanguage)
nIndex += 1
ReadLanguage = GetPrivateProfileLanguage(S_LANGUAGES, K_LANGUAGE & nIndex)
End While
' Leggo direttorio dei messaggi (se manca uso direttorio di configurazione)
Dim sMsgDir As String = String.Empty
If GetPrivateProfileString(S_GENERAL, K_MESSAGESDIR, "", sMsgDir) = 0 Then
sMsgDir = IniFile.m_sConfigDir
End If
' Leggo file messaggi
Dim sMsgName As String = String.Empty
GetPrivateProfileString(S_GENERAL, K_MESSAGES, "", sMsgName)
Dim sMsgFilePath As String = sMsgDir & "\EgalTechEng.txt"
For Each Language In OptionModule.m_LanguageList
If Language.Name = sMsgName Then
OptionModule.m_SelectedLanguage = Language
sMsgFilePath = sMsgDir & "\" & Language.FilePath
End If
Next
If Not EgtLoadMessages(sMsgFilePath) Then
EgtOutLog(EgtMsg(50127))
End If
' imposto unità di misura per interfaccia utente
m_bIsMmUnit = (GetPrivateProfileInt(S_SCENE, K_MMUNITS, 1) <> 0)
EgtSetUiUnits(m_bIsMmUnit)
If m_bIsMmUnit Then
m_SelectedMeasureUnit = m_MeasureUnitList(0)
Else
m_SelectedMeasureUnit = m_MeasureUnitList(1)
End If
Dim nOptionLauncher As Integer
' leggo il valore
If Not IsNothing(CStr(GetPrivateProfileInt(S_LAUNCHERWINDOW, K_LAUNCHER, 1))) Then
nOptionLauncher = GetPrivateProfileInt(S_LAUNCHERWINDOW, K_LAUNCHER, 1)
End If
' leggo il direttorio di salvataggio dei progetti
Dim sMyProjectDir As String = String.Empty
If GetPrivateProfileString(S_DOORS, K_MYPROJECTDIR, "", sMyProjectDir) <> 0 Then
IniFile.m_MyProjectDir = sMyProjectDir
End If
' Leggo le dimensioni della porta dal file Default.ini
Dim Width As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE, K_WIDTH_INI, "", Width)
m_Width = Width
Dim Height As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE, K_HEIGHT_INI, "", Height)
m_Height = Height
Dim Thickness As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE, K_THICKNESS_INI, "", Thickness)
m_Thickness = Thickness
' carico i valori associati allo swing della porta
Dim SwingTypeList As New List(Of String)
DefaultGetPrivateProfileList(S_SIZE, K_SWING_LIST_INI, SwingTypeList)
m_SwingTypeList = SwingTypeList
Dim Swing As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE, K_SWING_INI, "", Swing)
m_Swing = Swing
' carico il valori associati al tipo di spigolo
Dim EdgeTypeList As New List(Of String)
DefaultGetPrivateProfileList(S_EDGE, K_EDGETYPE_LIST_INI, EdgeTypeList)
m_EdgeTypeList = EdgeTypeList
Dim LockEdgeType As String = String.Empty
DefaultGetPrivateProfileString(S_EDGE, K_LOCKEDGE, "", LockEdgeType)
m_LockEdgeType = LockEdgeType
Dim HingeEdgeType As String = String.Empty
DefaultGetPrivateProfileString(S_EDGE, K_HINGEDGE_INI, "", HingeEdgeType)
m_HingeEdgeType = HingeEdgeType
Dim TopType As String = String.Empty
DefaultGetPrivateProfileString(S_EDGE, K_TOPEDGE_INI, "", TopType)
m_TopType = TopType
Dim BottomType As String = String.Empty
DefaultGetPrivateProfileString(S_EDGE, K_BOTTOMEDGE_INI, "", BottomType)
m_BottomType = BottomType
' Carico i valori booleani associati alla lavorazione
Dim LockEdgeMachining As Boolean = False
DefaultGetPrivateProfilesMachining(S_MACHINING, K_LOCKEDGEISCHECKED_INI, LockEdgeMachining)
m_LockEdgeMachining = LockEdgeMachining
Dim HingeEdgeMachining As Boolean = False
DefaultGetPrivateProfilesMachining(S_MACHINING, K_HINGEDGEEISCHECKED_INI, HingeEdgeMachining)
m_HingeEdgeMachining = HingeEdgeMachining
Dim TopMachining As Boolean = False
DefaultGetPrivateProfilesMachining(S_MACHINING, K_TOPISCHECKED_INI, TopMachining)
m_TopMachining = TopMachining
Dim BottomMachining As Boolean = False
DefaultGetPrivateProfilesMachining(S_MACHINING, K_BOTTOMISCHECKED_INI, BottomMachining)
m_BottomMachining = BottomMachining
' carico i valori di overmaterial
Dim LockEdgeOverMaterial As String = String.Empty
DefaultGetPrivateProfileString(S_OVERMATERIAL, K_LOCKEDGEOVERMATERIAL_INI, "", LockEdgeOverMaterial)
m_LockEdgeOverMaterial = LockEdgeOverMaterial
Dim HingeEdgeOverMaterial As String = String.Empty
DefaultGetPrivateProfileString(S_OVERMATERIAL, K_HINGEDGEOVERMATERIAL_INI, "", HingeEdgeOverMaterial)
m_HingeEdgeOverMaterial = HingeEdgeOverMaterial
Dim TopOverMaterial As String = String.Empty
DefaultGetPrivateProfileString(S_OVERMATERIAL, K_TOPOVERMATERIAL_INI, "", TopOverMaterial)
m_TopOverMaterial = TopOverMaterial
Dim BottomOverMaterial As String = String.Empty
DefaultGetPrivateProfileString(S_OVERMATERIAL, K_BOTTOMOVERMATERIAL_INI, "", BottomOverMaterial)
m_BottomOverMaterial = BottomOverMaterial
' carico l'ordinamento delle componenti
DefaultGetPrivateProfileList(S_COMPOORDER, K_COMPOORDER_INI, DdfFile.CompoListOrder)
' carico l'ordinamento dei bottoni
DefaultGetPrivateProfileList(S_COMPOORDER, K_COMPOORDER_INI, m_CompoPaneOrder)
m_OptionLauncherList.Add(EgtMsg(50206))
m_OptionLauncherList.Add(EgtMsg(50207))
m_OptionLauncherList.Add(EgtMsg(50208))
' assegno il valore selezioato dalla lista
m_SelectedOptionLauncher = m_OptionLauncherList(nOptionLauncher)
End Sub
End Module
' Classe che identifica una lingua del programma con nome e path del file dei messaggi
Public Class Language
Private m_sName As String
Private m_sFilePath As String
Public Property Name As String
Get
Return m_sName
End Get
Set(value As String)
m_sName = value
End Set
End Property
Public Property FilePath As String
Get
Return m_sFilePath
End Get
Set(value As String)
m_sFilePath = value
End Set
End Property
Sub New(sName As String, sFilePath As String)
Me.Name = sName
Me.FilePath = sFilePath
End Sub
End Class