EgtDOORCreator 1.8d5 : Aggiorna le liste degli spigoli in tempo reale
This commit is contained in:
@@ -77,33 +77,54 @@ Public Class OptionsViewModel
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Carico i parametri associati al Bevel Up/Down
|
||||
' Carico i parametri associati al Bevel Up
|
||||
Public Property BevelUpIsChecked As Boolean
|
||||
Get
|
||||
Return OptionModule.m_bBevelUp
|
||||
If OptionModule.m_bBevelUp = Visibility.Visible Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
'Return OptionModule.m_bBevelUp
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
' se sto accendendo o spegmemdo un bevel
|
||||
If QuestionSetBevel(CheckBevel(OptionModule.m_bBevelUp, value)) Then
|
||||
OptionModule.m_bBevelUp = value
|
||||
If value Then
|
||||
OptionModule.m_bBevelUp = Visibility.Visible
|
||||
Else
|
||||
OptionModule.m_bBevelUp = Visibility.Collapsed
|
||||
End If
|
||||
|
||||
If value Then
|
||||
DefaultWritePrivateProfileString(S_EDGE, K_BEVELU_INI, "1")
|
||||
Else
|
||||
DefaultWritePrivateProfileString(S_EDGE, K_BEVELU_INI, "0")
|
||||
End If
|
||||
RefreshEdgeTypeList()
|
||||
NotifyPropertyChanged("EdgeTypeList")
|
||||
Else
|
||||
Return
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Carico i parametri associati al Bevel Down
|
||||
Public Property BevelDownIsChecked As Boolean
|
||||
Get
|
||||
Return OptionModule.m_bBevelDown
|
||||
If OptionModule.m_bBevelDown = Visibility.Visible Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
If QuestionSetBevel(CheckBevel(OptionModule.m_bBevelDown, value)) Then
|
||||
OptionModule.m_bBevelDown = value
|
||||
If value Then
|
||||
OptionModule.m_bBevelDown = Visibility.Visible
|
||||
Else
|
||||
OptionModule.m_bBevelDown = Visibility.Collapsed
|
||||
End If
|
||||
If value Then
|
||||
DefaultWritePrivateProfileString(S_EDGE, K_BEVELD_INI, "1")
|
||||
Else
|
||||
@@ -163,63 +184,82 @@ Public Class OptionsViewModel
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property EdgeTypeList As ObservableCollection(Of String)
|
||||
'Private Shared m_EdgeTypeList As New ObservableCollection(Of EdgeType)
|
||||
Public Shared ReadOnly Property EdgeTypeList As ObservableCollection(Of EdgeType)
|
||||
Get
|
||||
Return Door.m_EdgeTypeList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of String))
|
||||
' carico la lista degli EdgeType appena aggiornata
|
||||
Door.m_EdgeTypeList = value
|
||||
' aggiorno le lista pressenti nella pagina delle impostazioni
|
||||
NotifyPropertyChanged("EdgeTypeList")
|
||||
' verifico che esista una porta
|
||||
If Not IsNothing(m_rfCurrDoor) Then
|
||||
' Aggiorno le liste degli elementi
|
||||
m_rfCurrDoor.NotifyPropertyChanged("EdgeTypeList")
|
||||
'EdgeDoorControl(m_rfCurrDoor.LockEdgeType)
|
||||
m_rfCurrDoor.NotifyPropertyChanged("LockEdgeType")
|
||||
m_rfCurrDoor.NotifyPropertyChanged("HingeEdgeType")
|
||||
End Property
|
||||
|
||||
' ''Public Property EdgeTypeList As ObservableCollection(Of String)
|
||||
' '' Get
|
||||
' '' Return Door.m_EdgeTypeList
|
||||
' '' End Get
|
||||
' '' Set(value As ObservableCollection(Of String))
|
||||
' '' ' carico la lista degli EdgeType appena aggiornata
|
||||
' '' Door.m_EdgeTypeList = value
|
||||
' '' ' aggiorno le lista pressenti nella pagina delle impostazioni
|
||||
' '' NotifyPropertyChanged("EdgeTypeList")
|
||||
' '' ' verifico che esista una porta
|
||||
' '' If Not IsNothing(m_rfCurrDoor) Then
|
||||
' '' ' Aggiorno le liste degli elementi
|
||||
' '' m_rfCurrDoor.NotifyPropertyChanged("EdgeTypeList")
|
||||
' '' 'EdgeDoorControl(m_rfCurrDoor.LockEdgeType)
|
||||
' '' m_rfCurrDoor.NotifyPropertyChanged("LockEdgeType")
|
||||
' '' m_rfCurrDoor.NotifyPropertyChanged("HingeEdgeType")
|
||||
' '' End If
|
||||
' '' End Set
|
||||
' ''End Property
|
||||
|
||||
Public Property LockEdgeType As EdgeType
|
||||
Get
|
||||
If m_LockEdgeType.IsActive = Visibility.Collapsed Then
|
||||
m_LockEdgeType = EdgeTypeList(0)
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property LockEdgeType As String
|
||||
Get
|
||||
Return OptionModule.m_LockEdgeType
|
||||
Return m_LockEdgeType
|
||||
End Get
|
||||
Set(value As String)
|
||||
Set(value As EdgeType)
|
||||
OptionModule.m_LockEdgeType = value
|
||||
DefaultWritePrivateProfileString(S_EDGE, K_LOCKEDGE_INI, OptionModule.m_LockEdgeType)
|
||||
DefaultWritePrivateProfileString(S_EDGE, K_LOCKEDGE_INI, OptionModule.m_LockEdgeType.Name)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property HingeEdgeType As String
|
||||
Public Property HingeEdgeType As EdgeType
|
||||
Get
|
||||
Return OptionModule.m_HingeEdgeType
|
||||
If m_HingeEdgeType.IsActive = Visibility.Collapsed Then
|
||||
m_HingeEdgeType = EdgeTypeList(0)
|
||||
End If
|
||||
Return m_HingeEdgeType
|
||||
End Get
|
||||
Set(value As String)
|
||||
OptionModule.m_HingeEdgeType = value
|
||||
DefaultWritePrivateProfileString(S_EDGE, K_HINGEDGE_INI, OptionModule.m_HingeEdgeType)
|
||||
Set(value As EdgeType)
|
||||
m_HingeEdgeType = value
|
||||
DefaultWritePrivateProfileString(S_EDGE, K_HINGEDGE_INI, OptionModule.m_HingeEdgeType.Name)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property TopType As String
|
||||
Public Property TopType As EdgeType
|
||||
Get
|
||||
If m_TopType.IsActive = Visibility.Collapsed Then
|
||||
m_TopType = EdgeTypeList(0)
|
||||
End If
|
||||
Return OptionModule.m_TopType
|
||||
End Get
|
||||
Set(value As String)
|
||||
Set(value As EdgeType)
|
||||
OptionModule.m_TopType = value
|
||||
DefaultWritePrivateProfileString(S_EDGE, K_TOPEDGE_INI, OptionModule.m_TopType)
|
||||
DefaultWritePrivateProfileString(S_EDGE, K_TOPEDGE_INI, OptionModule.m_TopType.Name)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property BottomType As String
|
||||
Public Property BottomType As EdgeType
|
||||
Get
|
||||
If m_BottomType.IsActive = Visibility.Collapsed Then
|
||||
m_BottomType = EdgeTypeList(0)
|
||||
End If
|
||||
Return OptionModule.m_BottomType
|
||||
End Get
|
||||
Set(value As String)
|
||||
Set(value As EdgeType)
|
||||
OptionModule.m_BottomType = value
|
||||
DefaultWritePrivateProfileString(S_EDGE, K_BOTTOMEDGE_INI, OptionModule.m_BottomType)
|
||||
DefaultWritePrivateProfileString(S_EDGE, K_BOTTOMEDGE_INI, OptionModule.m_BottomType.Name)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -525,57 +565,104 @@ Public Class OptionsViewModel
|
||||
|
||||
#End Region
|
||||
|
||||
' Aggiorno la lista dei bevel
|
||||
Private Sub RefreshEdgeTypeList()
|
||||
' creo una variabile locale di tipo ObservableCollection
|
||||
Dim rEdgeTypeList As New ObservableCollection(Of String)
|
||||
' Carico questa lista leggendo il file Default.ini
|
||||
DefaultGetPrivateProfileObservableCollection(S_EDGE, K_EDGETYPE_LIST_INI, rEdgeTypeList)
|
||||
' Confronto la lista appena creata con le indicazioni raccolte nell'OptionModule (verifico se i bevel up e down sono selezionati)
|
||||
' quindi aggiorno la lista eliminando se serve i bevel
|
||||
SetEdgeTypeList(rEdgeTypeList, OptionModule.m_bBevelUp, OptionModule.m_bBevelDown)
|
||||
' richiamo la proprietà pubblica di questa classe
|
||||
EdgeTypeList = rEdgeTypeList
|
||||
End Sub
|
||||
'' '' Aggiorno la lista dei bevel
|
||||
' ''Private Sub RefreshEdgeTypeList()
|
||||
' '' ' creo una variabile locale di tipo ObservableCollection
|
||||
' '' Dim rEdgeTypeList As New ObservableCollection(Of String)
|
||||
' '' ' Carico questa lista leggendo il file Default.ini
|
||||
' '' DefaultGetPrivateProfileObservableCollection(S_EDGE, K_EDGETYPE_LIST_INI, rEdgeTypeList)
|
||||
' '' ' Confronto la lista appena creata con le indicazioni raccolte nell'OptionModule (verifico se i bevel up e down sono selezionati)
|
||||
' '' ' quindi aggiorno la lista eliminando se serve i bevel
|
||||
' '' SetEdgeTypeList(rEdgeTypeList, OptionModule.m_bBevelUp, OptionModule.m_bBevelDown)
|
||||
' '' ' richiamo la proprietà pubblica di questa classe
|
||||
' '' EdgeTypeList = rEdgeTypeList
|
||||
' ''End Sub
|
||||
|
||||
' Controllo di eliminare un bevel dalla lista
|
||||
Private Function CheckBevel(bBevel As Boolean, bValue As Boolean) As Integer
|
||||
' Controllo di eliminare un bevel dalla lista: 1 se accendo un bevel, 2 se spengo un bevel, -1 tutti i casi che non sono questi
|
||||
Private Function CheckBevel(VisibilityBevel As Visibility, bValue As Boolean) As Integer
|
||||
Dim bAnser As Integer
|
||||
Dim bBevel As Boolean
|
||||
If VisibilityBevel = Visibility.Visible Then
|
||||
bBevel = True
|
||||
Else
|
||||
bBevel = False
|
||||
End If
|
||||
If bBevel And Not bValue Then
|
||||
' significa che sta togliendo dalla lista
|
||||
bAnser = 1
|
||||
ElseIf Not bBevel And bValue Then
|
||||
' sto aggiungendo un bevel alla lista
|
||||
bAnser = 2
|
||||
Else
|
||||
' non accade nulla
|
||||
bAnser = -1
|
||||
End If
|
||||
Return bAnser
|
||||
End Function
|
||||
|
||||
' chiedo se vuole continuare
|
||||
' chiedo se vuole continuare: vero se cambia li lista
|
||||
Private Function QuestionSetBevel(bCheckBevel As Integer) As Boolean
|
||||
If bCheckBevel = 1 Then
|
||||
If m_rfCurrDoor.LockEdgeType = "BU" Or m_rfCurrDoor.LockEdgeType = "BD" Or m_rfCurrDoor.HingeEdgeType = "BU" Or m_rfCurrDoor.HingeEdgeType = "BD" Then
|
||||
' controllo se to oliminando da uno degli elementi della lista: se si chiedo di continuare
|
||||
If m_rfCurrDoor.LockEdgeType.Name = "BU" Or m_rfCurrDoor.LockEdgeType.Name = "BD" Or m_rfCurrDoor.HingeEdgeType.Name = "BU" Or m_rfCurrDoor.HingeEdgeType.Name = "BD" Then
|
||||
' Se blocco tutto non accade nulla
|
||||
If MessageBox.Show("It is a bevel of the current door. Do You want to proced?", "Caution", MessageBoxButton.YesNo, MessageBoxImage.Asterisk, MessageBoxResult.No) = MessageBoxResult.No Then
|
||||
Return False
|
||||
Else
|
||||
' se decido di continuare
|
||||
' se decido di continuare
|
||||
Return True
|
||||
End If
|
||||
Else
|
||||
' se non sono presenti elementi nella lista
|
||||
Return True
|
||||
End If
|
||||
' se sto attivando un bevel nella lista
|
||||
ElseIf bCheckBevel = 2 Then
|
||||
Return True
|
||||
Else
|
||||
' per tutti gli altri casi (-1) non accade nulla
|
||||
Return False
|
||||
End If
|
||||
End Function
|
||||
|
||||
' creo la lista di oggetti aggiornando la visibilità dei bevel Up e Down
|
||||
Public Sub RefreshEdgeTypeList()
|
||||
For Index = 0 To Door.m_EdgeTypeList.Count - 1
|
||||
If m_StaticEdgeTypeList(Index) = "BU" Then
|
||||
Door.m_EdgeTypeList(Index).Name = m_StaticEdgeTypeList(Index)
|
||||
Door.m_EdgeTypeList(Index).IsActive = OptionModule.m_bBevelUp
|
||||
ElseIf m_StaticEdgeTypeList(Index) = "BD" Then
|
||||
Door.m_EdgeTypeList(Index).Name = m_StaticEdgeTypeList(Index)
|
||||
Door.m_EdgeTypeList(Index).IsActive = OptionModule.m_bBevelDown
|
||||
Else
|
||||
Door.m_EdgeTypeList(Index).Name = m_StaticEdgeTypeList(Index)
|
||||
Door.m_EdgeTypeList(Index).IsActive = Visibility.Visible
|
||||
End If
|
||||
Next
|
||||
NotifyPropertyChanged("LockEdgeType")
|
||||
m_rfCurrDoor.NotifyPropertyChanged("LockEdgeType")
|
||||
NotifyPropertyChanged("HingeEdgeType")
|
||||
m_rfCurrDoor.NotifyPropertyChanged("HingeEdgeType")
|
||||
NotifyPropertyChanged("TopType")
|
||||
m_rfCurrDoor.NotifyPropertyChanged("TopType")
|
||||
NotifyPropertyChanged("BottomType")
|
||||
m_rfCurrDoor.NotifyPropertyChanged("BottomType")
|
||||
End Sub
|
||||
|
||||
Public Shared Sub CreateEdgeTypeList()
|
||||
For Index = 0 To m_StaticEdgeTypeList.Count - 1
|
||||
If m_StaticEdgeTypeList(Index) = "BU" Then
|
||||
Door.m_EdgeTypeList.Add(New EdgeType(m_StaticEdgeTypeList(Index), OptionModule.m_bBevelUp))
|
||||
ElseIf m_StaticEdgeTypeList(Index) = "BD" Then
|
||||
Door.m_EdgeTypeList.Add(New EdgeType(m_StaticEdgeTypeList(Index), OptionModule.m_bBevelDown))
|
||||
Else
|
||||
Door.m_EdgeTypeList.Add(New EdgeType(m_StaticEdgeTypeList(Index), Visibility.Visible))
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Sub New(rCurrDoor As Door)
|
||||
m_rfCurrDoor = rCurrDoor
|
||||
|
||||
End Sub
|
||||
|
||||
#Region "COMMANDS"
|
||||
@@ -638,3 +725,39 @@ Public Class OptionsViewModel
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class EdgeType
|
||||
Implements INotifyPropertyChanged
|
||||
|
||||
Private m_Name As String
|
||||
Public Property Name As String
|
||||
Get
|
||||
Return m_Name
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_Name = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_IsActive As Visibility
|
||||
Public Property IsActive As Visibility
|
||||
Get
|
||||
Return m_IsActive
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_IsActive = value
|
||||
NotifyPropertyChanged("IsActive")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(sName As String, bIsActive As Visibility)
|
||||
m_Name = sName
|
||||
m_IsActive = bIsActive
|
||||
End Sub
|
||||
|
||||
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
|
||||
|
||||
Public Sub NotifyPropertyChanged(propName As String)
|
||||
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user