diff --git a/OptionsWindow/OptionModule.vb b/OptionsWindow/OptionModule.vb index 95acbb7..5df874a 100644 --- a/OptionsWindow/OptionModule.vb +++ b/OptionsWindow/OptionModule.vb @@ -29,6 +29,15 @@ Friend Module OptionModule Friend m_nImgWidth As Integer Friend m_nImgHeight As Integer + ' Parametri per le quotature + Friend m_dExtLineLen As Double + Friend m_dArrowLen As Double + Friend m_dTextDist As Double + Friend m_nLenIsMM As Integer + Friend m_nDecDigit As Integer + Friend m_sFont As String + Friend m_dTextHeight As Double + ' Variabili che indicano per ogni tipo di lavorazione quale geometria è selezionabile Friend m_SelGeomSawing As SceneSelModeOpt Friend m_SelGeomDrilling As SceneSelModeOpt diff --git a/OptionsWindow/OptionWindowV.xaml b/OptionsWindow/OptionWindowV.xaml index bf78805..d7ed1c0 100644 --- a/OptionsWindow/OptionWindowV.xaml +++ b/OptionsWindow/OptionWindowV.xaml @@ -9,7 +9,7 @@ WindowStyle="None" ResizeMode="NoResize" TitleBarHeight="30" IsResizable="False" IsMinimizable="False" WindowStartupLocation="CenterScreen" ShowInTaskbar="False" MinWidth="400" MinHeight="372" - Width="400" Height="372" + Width="400" Height="382" CloseCommand="{Binding CloseOptionsCommand,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"> @@ -86,7 +86,42 @@ VerticalContentAlignment="Center" Margin="10,0,0,0"/> - + + + + + + + + + + + + + + + + + + + + diff --git a/OptionsWindow/OptionWindowVM.vb b/OptionsWindow/OptionWindowVM.vb index a12111d..9477fb3 100644 --- a/OptionsWindow/OptionWindowVM.vb +++ b/OptionsWindow/OptionWindowVM.vb @@ -1,4 +1,5 @@ -Imports System.Collections.ObjectModel +Imports System.Drawing.Text +Imports System.Collections.ObjectModel Imports System.IO Imports EgtUILib @@ -18,6 +19,30 @@ Public Class OptionWindowVM End Get End Property + Private m_UnitMeasureList As List(Of String) = New List(Of String)({"mm", "inch", EgtMsg(MSG_OPTIONPAGE + 45)}) + Public ReadOnly Property UnitMeasureList As List(Of String) + Get + Return m_UnitMeasureList + End Get + End Property + + Private m_FontList As New ObservableCollection(Of String) + Public ReadOnly Property FontList As ObservableCollection(Of String) + Get + Dim sNfeDir As String = String.Empty + GetPrivateProfileString(S_GEOMDB, K_NFEFONTDIR, "", sNfeDir) + Dim EgtFontList As String() = Directory.GetFiles(sNfeDir) + For i = 0 To EgtFontList.Count - 1 + m_FontList.Add(Path.GetFileName(EgtFontList(i))) + Next + Dim fonts As New InstalledFontCollection + For i = 0 To fonts.Families.Count - 1 + m_FontList.Add(fonts.Families(i).Name) + Next + Return m_FontList + End Get + End Property + Public Property SelectedLanguage As Language Get Return OptionModule.m_SelectedLanguage @@ -253,6 +278,110 @@ Public Class OptionWindowVM End Set End Property + Public Property ExtLineLen As String + Get + Return LenToString(OptionModule.m_dExtLineLen, 5) + End Get + Set(value As String) + Dim dVal As Double = 0 + If StringToLen(value, dVal) AndAlso dVal > 0 Then + OptionModule.m_dExtLineLen = dVal + EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight) + WritePrivateProfileString(S_DIMENSIONSTYLE, K_EXTLINELEN, DoubleToString(OptionModule.m_dExtLineLen, 5)) + End If + End Set + End Property + + Public Property ArrowLen As String + Get + Return LenToString(OptionModule.m_dArrowLen, 5) + End Get + Set(value As String) + Dim dVal As Double = 0 + If StringToLen(value, dVal) AndAlso dVal > 0 Then + OptionModule.m_dArrowLen = dVal + EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight) + WritePrivateProfileString(S_DIMENSIONSTYLE, K_ARROWLEN, DoubleToString(OptionModule.m_dArrowLen, 5)) + End If + End Set + End Property + + Public Property TextDist As String + Get + Return LenToString(OptionModule.m_dTextDist, 5) + End Get + Set(value As String) + Dim dVal As Double = 0 + If StringToLen(value, dVal) AndAlso dVal > 0 Then + OptionModule.m_dTextDist = dVal + EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight) + WritePrivateProfileString(S_DIMENSIONSTYLE, K_TEXTDIST, DoubleToString(OptionModule.m_dTextDist, 5)) + End If + End Set + End Property + + Public Property SelectedUnitMeasure As String + Get + If OptionModule.m_nLenIsMM = 0 Then + Return "inch" + ElseIf OptionModule.m_nLenIsMM = 1 Then + Return "mm" + Else + Return EgtMsg(MSG_OPTIONPAGE + 45) + End If + End Get + Set(value As String) + Dim nVal As Integer = 2 + If value = "inch" Then + nVal = 0 + ElseIf value = "mm" Then + nVal = 1 + End If + OptionModule.m_nLenIsMM = nVal + EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight) + WritePrivateProfileString(S_DIMENSIONSTYLE, K_LENISMM, OptionModule.m_nLenIsMM.ToString()) + End Set + End Property + + Public Property DecDigit As String + Get + Return OptionModule.m_nDecDigit.ToString() + End Get + Set(value As String) + Dim nVal As Integer = 0 + If Integer.TryParse(value, nVal) AndAlso nVal > 0 Then + OptionModule.m_dGeometryTolerance = nVal + EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight) + WritePrivateProfileString(S_DIMENSIONSTYLE, K_DECDIGIT, OptionModule.m_nDecDigit.ToString()) + End If + End Set + End Property + + Public Property SelectedFont As String + Get + Return m_FontList(m_FontList.IndexOf(OptionModule.m_sFont)) + 'Return OptionModule.m_sFont + End Get + Set(value As String) + OptionModule.m_sFont = value + EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight) + WritePrivateProfileString(S_DIMENSIONSTYLE, K_DIMFONT, OptionModule.m_sFont) + End Set + End Property + + Public Property TextHeight As String + Get + Return LenToString(OptionModule.m_dTextHeight, 5) + End Get + Set(value As String) + Dim dVal As Double = 0 + If StringToLen(value, dVal) AndAlso dVal > 0 Then + OptionModule.m_dTextHeight = dVal + EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight) + WritePrivateProfileString(S_DIMENSIONSTYLE, K_TEXTHEIGHT, DoubleToString(OptionModule.m_dTextHeight, 5)) + End If + End Set + End Property ' Definizione comandi Private m_cmdCloseOptions As ICommand @@ -426,6 +555,49 @@ Public Class OptionWindowVM End Get End Property + Public ReadOnly Property DimensionMsg As String + Get + Return EgtMsg(MSG_OPTIONPAGE + 44) ' Quotatura + End Get + End Property + + Public ReadOnly Property ExtLineLenMsg As String + Get + Return EgtMsg(MSG_OPTIONPAGE + 37) ' Estensione linea + End Get + End Property + Public ReadOnly Property ArrowLenMsg As String + Get + Return EgtMsg(MSG_OPTIONPAGE + 38) ' Dimensione freccia + End Get + End Property + Public ReadOnly Property TextDistMsg As String + Get + Return EgtMsg(MSG_OPTIONPAGE + 39) ' Distanza messaggio + End Get + End Property + Public ReadOnly Property LenIsMMMsg As String + Get + Return EgtMsg(MSG_OPTIONPAGE + 40) ' Unità di misura + End Get + End Property + Public ReadOnly Property DecDigitMsg As String + Get + Return EgtMsg(MSG_OPTIONPAGE + 41) ' Numero dicmali + End Get + End Property + Public ReadOnly Property FontMsg As String + Get + Return EgtMsg(MSG_OPTIONPAGE + 42) ' Caretteri + End Get + End Property + Public ReadOnly Property TextHeightMsg As String + Get + Return EgtMsg(MSG_OPTIONPAGE + 43) ' Dimensione testo + End Get + End Property + + #End Region #Region "COMMANDS" diff --git a/Project/ProjectVM.vb b/Project/ProjectVM.vb index 9113662..4876745 100644 --- a/Project/ProjectVM.vb +++ b/Project/ProjectVM.vb @@ -301,14 +301,14 @@ Public Class ProjectVM Dim nTxrMaxLinPix As Integer = GetPrivateProfileInt(S_SCENE, K_TEXMAXLINPIX, 4096) EgtSetTextureMaxLinPixels(nTxrMaxLinPix) ' stile corrente delle quotature - Dim dExtLineLen As Double = GetPrivateProfileDouble( S_DIMENSIONSTYLE, K_EXTLINELEN, 5) - Dim dArrowLen As Double = GetPrivateProfileDouble( S_DIMENSIONSTYLE, K_ARROWLEN, 5) - Dim dTextDist As Double = GetPrivateProfileDouble( S_DIMENSIONSTYLE, K_TEXTDIST, 2) - Dim nLenIsMM As Integer = GetPrivateProfileInt( S_DIMENSIONSTYLE, K_LENISMM, 2) - Dim nDecDigit As Integer = GetPrivateProfileInt( S_DIMENSIONSTYLE, K_DECDIGIT, -2) - Dim sFont As String = "" : GetPrivateProfileStringUtf8( S_DIMENSIONSTYLE, K_DIMFONT, "ModernPropS.Nfe", sFont) - Dim dTextHeight As Double = GetPrivateProfileDouble( S_DIMENSIONSTYLE, K_TEXTHEIGHT, 2) - EgtSetCurrDimensionStyle( dExtLineLen, dArrowLen, dTextDist, nLenIsMM, nDecDigit, sFont, dTextHeight) + OptionModule.m_dExtLineLen = GetPrivateProfileDouble(S_DIMENSIONSTYLE, K_EXTLINELEN, 5) + OptionModule.m_dArrowLen = GetPrivateProfileDouble(S_DIMENSIONSTYLE, K_ARROWLEN, 5) + OptionModule.m_dTextDist = GetPrivateProfileDouble(S_DIMENSIONSTYLE, K_TEXTDIST, 2) + OptionModule.m_nLenIsMM = GetPrivateProfileInt(S_DIMENSIONSTYLE, K_LENISMM, 2) + OptionModule.m_nDecDigit = GetPrivateProfileInt(S_DIMENSIONSTYLE, K_DECDIGIT, -2) + OptionModule.m_sFont = "" : GetPrivateProfileStringUtf8(S_DIMENSIONSTYLE, K_DIMFONT, "ModernPropS.Nfe", m_sFont) + OptionModule.m_dTextHeight = GetPrivateProfileDouble(S_DIMENSIONSTYLE, K_TEXTHEIGHT, 2) + EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight) ' lettura da ini della variabile che abilita i gruppi di lavorazione IniFile.m_bMachiningGroup = (GetPrivateProfileInt(S_MACH, K_MACHININGGROUP, 0) <> 0) Application.Msn.NotifyColleagues(Application.DRAWMODE_ISCHECKED)