a02663d88e
- è stato aggiunto il comando "template" che permette di salvare la porta corrente come porta template (con estensione .ddt); - durante la creazione di una nuova porta è possibile caricare un file .ddt come nuova porta; - la creazione di un file .ddt in qualsiasi momento non influenza la creazione del file .ddf corrente.
257 lines
11 KiB
VB.net
257 lines
11 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
|
|
|
|
' Paramaetri per la scelta del bevel
|
|
Friend m_bBevelUp As Visibility
|
|
Friend m_bBevelDown As Visibility
|
|
|
|
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_Weight As String
|
|
Friend m_SwingTypeList As New List(Of String)
|
|
Friend m_Swing As String
|
|
Friend m_StaticEdgeTypeList As New ObservableCollection(Of String)
|
|
Friend m_LockEdgeType As New EdgeType("", Visibility.Visible)
|
|
Friend m_HingeEdgeType As New EdgeType("", Visibility.Visible)
|
|
Friend m_TopType As New EdgeType("", Visibility.Visible)
|
|
Friend m_BottomType As New EdgeType("", Visibility.Visible)
|
|
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
|
|
|
|
Dim sTemplateDir As String = String.Empty
|
|
If GetPrivateProfileString(S_DOORS, K_TEMPLATEDIR, "", sTemplateDir) <> 0 Then
|
|
IniFile.m_TemplateDir = sTemplateDir
|
|
End If
|
|
|
|
' leggo il tipo di Bevel selezionato
|
|
Dim BevelUp As Visibility
|
|
DefaultGetPrivateProfilesBevel(S_EDGE, K_BEVELU_INI, BevelUp)
|
|
m_bBevelUp = BevelUp
|
|
Dim BevelDown As Visibility
|
|
DefaultGetPrivateProfilesBevel(S_EDGE, K_BEVELD_INI, BevelDown)
|
|
m_bBevelDown = BevelDown
|
|
|
|
' 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
|
|
Dim Weight As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_SIZE, K_WEIGHT_INI, "", Weight)
|
|
m_Weight = Weight
|
|
Dim WeightVisibility As Visibility = Visibility.Collapsed
|
|
DefaultGetPrivateProfilesVisibility(S_SIZE, K_WEIGHTISCHECKED_INI, WeightVisibility)
|
|
Door.IsCheckedWeight = WeightVisibility
|
|
|
|
' carico il valori associati al tipo di spigolo
|
|
Dim EdgeTypeList As New ObservableCollection(Of String)
|
|
DefaultGetPrivateProfileObservableCollection(S_EDGE, K_EDGETYPE_LIST_INI, EdgeTypeList)
|
|
'For Index = 0 To EdgeTypeList.Count - 1
|
|
' Door.m_EdgeTypeList.Add(New EdgeType(EdgeTypeList(Index), True))
|
|
'Next
|
|
m_StaticEdgeTypeList = EdgeTypeList
|
|
OptionsViewModel.CreateEdgeTypeList()
|
|
|
|
' carico i valori associati agli spigoli
|
|
Dim LockEdgeType As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_EDGE, K_LOCKEDGE, "", LockEdgeType)
|
|
For Index = 0 To OptionsViewModel.EdgeTypeList.Count - 1
|
|
If OptionsViewModel.EdgeTypeList(Index).Name = LockEdgeType Then
|
|
m_LockEdgeType = OptionsViewModel.EdgeTypeList(Index)
|
|
End If
|
|
Next
|
|
Dim HingeEdgeType As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_EDGE, K_HINGEDGE_INI, "", HingeEdgeType)
|
|
For Index = 0 To OptionsViewModel.EdgeTypeList.Count - 1
|
|
If OptionsViewModel.EdgeTypeList(Index).Name = HingeEdgeType Then
|
|
m_HingeEdgeType = OptionsViewModel.EdgeTypeList(Index)
|
|
End If
|
|
Next
|
|
Dim TopType As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_EDGE, K_TOPEDGE_INI, "", TopType)
|
|
For Index = 0 To OptionsViewModel.EdgeTypeList.Count - 1
|
|
If OptionsViewModel.EdgeTypeList(Index).Name = TopType Then
|
|
m_TopType = OptionsViewModel.EdgeTypeList(Index)
|
|
End If
|
|
Next
|
|
Dim BottomType As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_EDGE, K_BOTTOMEDGE_INI, "", BottomType)
|
|
For Index = 0 To OptionsViewModel.EdgeTypeList.Count - 1
|
|
If OptionsViewModel.EdgeTypeList(Index).Name = BottomType Then
|
|
m_BottomType = OptionsViewModel.EdgeTypeList(Index)
|
|
End If
|
|
Next
|
|
|
|
' 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
|
|
|
|
Friend Sub SetEdgeTypeList(EdgeTypeList As ObservableCollection(Of String), bBevelUp As Boolean, bBevelDown As Boolean)
|
|
If Not bBevelUp Then
|
|
EdgeTypeList.Remove("BU")
|
|
End If
|
|
If Not bBevelDown Then
|
|
EdgeTypeList.Remove("BD")
|
|
End If
|
|
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
|