Imports EgtWPFLib5 Imports EgtUILib Public Class GridPanelVM Inherits VMBase #Region "FIELDS & PROPERTIES" Private m_StatusGridText As String = If(OptionModule.m_bGridState, GRID_ON, GRID_OFF) Public ReadOnly Property StatusGridText As String Get Return m_StatusGridText End Get End Property Friend Sub SetStatusGridText(value As String) m_StatusGridText = value NotifyPropertyChanged(NameOf(StatusGridText)) End Sub Private m_GridDimensionText As String = If(OptionModule.m_bMmUnits, LenToString(OptionModule.m_dSnapStepMm, 4), LenToString(OptionModule.m_dSnapStepInch, 4)) Public Property GridDimensionText As String Get Return m_GridDimensionText End Get Set(value As String) m_GridDimensionText = value NotifyPropertyChanged(NameOf(GridDimensionText)) End Set End Property Private m_MeasureUnit As String = If(OptionModule.m_bMmUnits, MILLIMETER, INCH) Public ReadOnly Property MeasureUnit As String Get Return m_MeasureUnit End Get End Property Public Sub SetMeasureUnit(nMeasureUnit As Integer) m_MeasureUnit = If(nMeasureUnit = 0, INCH, MILLIMETER) NotifyPropertyChanged(NameOf(MeasureUnit)) End Sub #Region "Messages" Public ReadOnly Property MeasureUnit_Msg Get Return EgtMsg(110037) ' Unità di Misura End Get End Property #End Region ' Messages ' Definizione dei comandi Private m_cmdStatusGrid As ICommand Private m_cmdGridDimension As ICommand Private m_cmdStatusUnits As ICommand #End Region ' Fields & Properties #Region "CONTRUCTOR" Sub New() Map.SetRefGridPanelVM(Me) End Sub #End Region ' Constructor #Region "METHODS" Friend Sub UpdateStatusGrid(bShowGrid As Boolean, bShowGridFrame As Boolean) SetStatusGridText(If(bShowGrid, GRID_ON, GRID_OFF)) EgtSetGridShow(bShowGrid, bShowGrid And bShowGridFrame) End Sub Friend Sub UpdateStatusUnits(bMmUnits As Boolean) SetMeasureUnit(If(bMmUnits, 1, 0)) 'StatusUnitsText = If(bMmUnits, "mm", "in") EgtSetUiUnits(bMmUnits) End Sub Friend Sub UpdateMessageGridPanel() NotifyPropertyChanged(NameOf(MeasureUnit_Msg)) End Sub #End Region ' Methods #Region "COMMANDS" #Region "StatusGridCommand" Public ReadOnly Property StatusGridCommand As ICommand Get If m_cmdStatusGrid Is Nothing Then m_cmdStatusGrid = New Command(AddressOf StatusGrid) End If Return m_cmdStatusGrid End Get End Property Public Sub StatusGrid(ByVal param As Object) Dim tmpGridState As Integer OptionModule.m_bGridState = GetMainPrivateProfileInt(S_GENERAL, K_GRIDSTATE, 1) If OptionModule.m_bGridState Then tmpGridState = 0 Else tmpGridState = 1 End If UpdateStatusGrid(tmpGridState, OptionModule.m_bShowGridFrame) WriteMainPrivateProfileString(S_GENERAL, K_GRIDSTATE, tmpGridState.ToString()) EgtDraw() End Sub #End Region ' StatusGridCommand #Region "GridDimensionCommand" Public ReadOnly Property GridDimensionCommand As ICommand Get If m_cmdGridDimension Is Nothing Then m_cmdGridDimension = New Command(AddressOf GridDimension) End If Return m_cmdGridDimension End Get End Property Public Sub GridDimension(ByVal param As Object) If OptionModule.m_bMmUnits Then StringToLen(m_GridDimensionText, OptionModule.m_dSnapStepMm) EgtSetGridGeo(OptionModule.m_dSnapStepMm, OptionModule.m_nMinLineSStep, OptionModule.m_nMajLineSStep, OptionModule.m_nExtSStep) Else StringToLen(m_GridDimensionText, OptionModule.m_dSnapStepInch) EgtSetGridGeo(OptionModule.m_dSnapStepInch, OptionModule.m_nMinLineSStep, OptionModule.m_nMajLineSStep, OptionModule.m_nExtSStep) End If EgtSetGridColor(OptionModule.m_MinLnColor, OptionModule.m_MajLnColor) Keyboard.ClearFocus() EgtDraw() End Sub #End Region ' GridDimensionCommand #Region "StatusUnitsCommand" Public ReadOnly Property StatusUnitsCommand As ICommand Get If m_cmdStatusUnits Is Nothing Then m_cmdStatusUnits = New Command(AddressOf StatusUnits) End If Return m_cmdStatusUnits End Get End Property Public Sub StatusUnits(ByVal param As Object) Map.refSceneHostVM.StatusUnitsCommand() If OptionModule.m_bMmUnits Then m_GridDimensionText = LenToString(OptionModule.m_dSnapStepMm, 4) Else m_GridDimensionText = LenToString(OptionModule.m_dSnapStepInch, 4) End If WriteMainPrivateProfileString(S_SCENE, K_MMUNITS, If(OptionModule.m_bMmUnits, 1, 0).ToString()) End Sub #End Region ' StatusUnitsCommand #End Region ' Commands End Class