Imports System.Collections.ObjectModel Imports EgtUILib Imports EgtWPFLib5 Friend Module OptionModule #Region "FIELDS & PROPERTIES" ' Parametri che contengono lista delle lingue disponibili e lingua selezionata Friend m_LanguageList As New ObservableCollection(Of Language) Friend m_SelectedLanguage As Language ' Colori di sfondo della vista e della griglia Friend m_TopSceneBackground As Color3d Friend m_BotSceneBackground As Color3d Friend m_GridColor As Color3d ' Flag per visualizzazione spessa delle linee Friend m_bThickLine As Boolean ' Flag per visualizzazione smussata delle superfici Friend m_bSmoothTriMesh As Boolean ' Colore di default in disegno Friend m_DefMaterialColor As Color3d ' Colore di evidenziazione Friend m_MarkColor As Color3d ' Colore superfici Friend m_SelSurfColor As Color3d ' Colore rettangolo di zoom Friend m_RectangleZoomColor As Color3d ' Colore linea di distanz Friend m_LineDistanceColor As Color3d ' selezione tema (default=0) Friend m_SelectedThema As Integer = 0 ' selezione tema toppanel (default=0) Friend m_SelectedThemaTopPanel As Integer = 0 Friend m_bShowGridFrame As Boolean Friend m_bGridState As Integer Friend m_bMmUnits As Boolean Friend m_MinLnColor As Color3d Friend m_MajLnColor As Color3d Friend m_dSnapStepMm As Double Friend m_dSnapStepInch As Double Friend m_nMinLineSStep As Integer Friend m_nMajLineSStep As Integer Friend m_nExtSStep As Integer #End Region ' Fields & Properties #Region "METHODS" ' 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, IniFile.m_sIniFile) While Not IsNothing(ReadLanguage) OptionModule.m_LanguageList.Add(ReadLanguage) nIndex += 1 ReadLanguage = GetPrivateProfileLanguage(S_LANGUAGES, K_LANGUAGE & nIndex, IniFile.m_sIniFile) End While If nIndex = 1 Then EgtOutLog("Error missing languages section in Config.ini") EgtStone3D.EgtMessageBoxV.Show(Application.Current.MainWindow, "Error : missing languages informations", "EgtCAM5", MessageBoxButton.OK, MessageBoxImage.Error) End End If ' Inizializzo la lingua corrente OptionModule.m_SelectedLanguage = OptionModule.m_LanguageList(0) Dim sMsgName As String = String.Empty GetMainPrivateProfileString(S_GENERAL, K_MESSAGES, "", sMsgName) For Each Language In OptionModule.m_LanguageList If Language.Name = sMsgName Then OptionModule.m_SelectedLanguage = Language Exit For End If Next ' Inizializzo variabili colori di sfondo scena, griglia Dim BackTopColor As New Color3d(0, 123, 167) GetMainPrivateProfileColor(S_SCENE, K_BACKTOP, BackTopColor) m_TopSceneBackground = BackTopColor Dim BackBotColor As New Color3d(BackTopColor) GetMainPrivateProfileColor(S_SCENE, K_BACKBOTTOM, BackBotColor) m_BotSceneBackground = BackBotColor Dim GridColor As New Color3d(0, 0, 0) GetMainPrivateProfileColor(S_GRID, K_MINLNCOLOR, GridColor) m_GridColor = GridColor ' Inizializzo flag linee ingrossate m_bThickLine = GetMainPrivateProfileInt(S_SCENE, K_LINEWIDTH, 1) <> 1 ' Inizializzo flag visualizzazione smussata delle superfici m_bSmoothTriMesh = GetMainPrivateProfileInt(S_SCENE, K_SHOWTRIAADV, 1) <> 0 ' imposto colore di default Dim DefColor As New Color3d(100, 10, 20) GetMainPrivateProfileColor(S_GEOMDB, K_DEFAULTCOLOR, DefColor) m_DefMaterialColor = DefColor ' imposto colore di evidenziazione Dim MarkColor As New Color3d(255, 255, 0) GetMainPrivateProfileColor(S_SCENE, K_MARK, MarkColor) m_MarkColor = MarkColor ' imposto colore per superfici selezionate Dim SelSurfColor As New Color3d(255, 255, 192) GetMainPrivateProfileColor(S_SCENE, K_SELSURF, SelSurfColor) m_SelSurfColor = SelSurfColor ' imposto tipo e colore del rettangolo di zoom Dim ZwColor As New Color3d(0, 0, 0) GetMainPrivateProfileZoomWin(S_SCENE, K_ZOOMWIN, True, ZwColor) m_RectangleZoomColor = ZwColor ' imposto colore della linea di distanza Dim DstLnColor As New Color3d(255, 0, 0) GetMainPrivateProfileColor(S_SCENE, K_DISTLINE, DstLnColor) m_LineDistanceColor = DstLnColor ' imposto il tema m_SelectedThema = GetMainPrivateProfileInt(S_GENERAL, K_THEMA, 0) ' imposto il tema toppanel m_SelectedThemaTopPanel = GetMainPrivateProfileInt(S_GENERAL, K_TOPPANEL, 0) m_bShowGridFrame = (GetMainPrivateProfileInt(S_GRID, K_SHOWFRAME, 1) <> 0) m_bGridState = GetMainPrivateProfileInt(S_GENERAL, K_GRIDSTATE, 1) ' imposto unità di misura per interfaccia utente m_bMmUnits = (GetMainPrivateProfileInt(S_SCENE, K_MMUNITS, 1) <> 0) m_MinLnColor = New Color3d(160, 160, 160) GetMainPrivateProfileColor(S_GRID, K_MINLNCOLOR, m_MinLnColor) m_MajLnColor = New Color3d(160, 160, 160) GetMainPrivateProfileColor(S_GRID, K_MINLNCOLOR, m_MajLnColor) m_dSnapStepMm = GetMainPrivateProfileDouble(S_GRID, K_SNAPSTEP, 10) m_dSnapStepInch = GetMainPrivateProfileDouble(S_GRID, K_SNAPSTEPINCH, 10) m_nMinLineSStep = GetMainPrivateProfileInt(S_GRID, K_MINLINESSTEP, 1) m_nMajLineSStep = GetMainPrivateProfileInt(S_GRID, K_MAJLINESSTEP, 10) m_nExtSStep = GetMainPrivateProfileInt(S_GRID, K_EXTSSTEP, 50) End Sub #End Region ' Methods End Module