Files
OmagCUT/MainWindow.xaml.vb
T
Dario Sassi 1892157ff2 OmagCut :
- aggiunta possibilità di impostare direttorio dei file dei messaggi (default Config).
2015-09-22 12:57:57 +00:00

652 lines
29 KiB
VB.net

Imports System.Collections.ObjectModel
Imports EgtUILib
Imports System.ComponentModel
Imports System.Threading
Imports System.Windows.Threading
Class MainWindow
' Mutex per avere una sola istanza del programma in esecuzione
Private m_objMutex As New Mutex
' Dichiarazione della MachineStatusBar
Friend m_MachineStatusUC As MachineStatusUC
' Dichiarazione delle Page UserControl
Friend m_WorkInProgressPageUC As WorkInProgressPageUC
Friend m_CurrentProjectPageUC As CurrentProjectPageUC
Friend m_DirectCutPageUC As DirectCutPageUC
Friend m_CadCutPageUC As CadCutPageUC
Friend m_RawPartPage As RawPartPageUC
Friend m_SimulationPage As SimulationPageUC
Friend m_DrawPageUC As DrawPageUC
Friend m_ImportPageUC As ImportPageUC
Friend m_FrameCutPageUC As FrameCutPageUC
Friend m_MachinePageUC As MachinePageUC
Friend m_AlarmsPageUC As AlarmsPageUC
Friend m_OptionsPageUC As OptionsPageUC
' Riferimento alla NumericKeyboard necessario per poter impedire il click fuori da essa quando attiva
Friend m_NumericKeyboardWD As NumericKeyboardWD
' Dichiarazione variabili direttori
Private m_sDataRoot As String = String.Empty
Private m_sConfigDir As String = String.Empty
Private m_sResourcesDir As String = String.Empty
Private m_sTempDir As String = String.Empty
Private m_sMachinesRoot As String = String.Empty
Private Shared m_sIniFile As String = String.Empty
Private m_nDebug As Integer = 0
' Dichiarazione lista per ListBox della ImportPage
Friend m_ImportItemList As New ObservableCollection(Of IconListBoxItem)
' Dichiarazione lista materiali e materiale corrente
Friend m_MaterialsList As New List(Of Material)
Friend m_nCurrentMaterial As Integer = 0
' Riferimento alla pagina correntemente attiva
Friend m_ActivePage As Pages
Enum Pages
WorkInProgress
DirectCut
CadCut
RawPart
Simulation
Draw
Import
FrameCut
Machine
Alarms
Options
End Enum
Public Function GetIniFile() As String
Return m_sIniFile
End Function
Public Function GetResourcesDir() As String
Return m_sResourcesDir
End Function
Public Function GetTempDir() As String
Return m_sTempDir
End Function
Public Function GetMachinesRootDir() As String
Return m_sMachinesRoot
End Function
Private Sub Window_Initialized(sender As Object, e As EventArgs)
' Verifico sia l'unica istanza
ManageSingleIstance()
' Impostazione path radice per i dati
m_sDataRoot = System.AppDomain.CurrentDomain.BaseDirectory
If GetPrivateProfileString(S_DATA, K_DATAROOT, "", m_sDataRoot, m_sDataRoot & "\" & DAT_FILE_NAME) = 0 Then
m_sDataRoot = System.AppDomain.CurrentDomain.BaseDirectory
End If
' Impostazione direttorio di configurazione
m_sConfigDir = m_sDataRoot & "\" & CONF_DIR
' Impostazione direttorio delle risorse
m_sResourcesDir = m_sDataRoot & "\" & RES_DIR
' Impostazione direttorio per file temporanei
m_sTempDir = m_sDataRoot & "\" & TEMP_DIR
' Impostazione path Ini file
m_sIniFile = m_sConfigDir & "\" & INI_FILE_NAME
' Impostazione direttorio per le macchine
If GetPrivateProfileString(S_MACH, K_MACHINESDIR, "", m_sMachinesRoot, m_sIniFile) = 0 Then
m_sMachinesRoot = m_sDataRoot & "\" & MACHINES_DFL_DIR
End If
' Leggo e imposto chiave di protezione
Dim sLicFileName As String = String.Empty
GetPrivateProfileString(S_GENERAL, K_LICENCE, LIC_FILE_NAME, sLicFileName, m_sIniFile)
Dim sLicFile As String = m_sConfigDir & "\" & sLicFileName
Dim sKey As String = String.Empty
GetPrivateProfileString(S_LICENCE, K_KEY, "", sKey, sLicFile)
EgtSetKey(sKey)
'Inizializzazione generale di EgtInterface
m_nDebug = GetPrivateProfileInt(S_GENERAL, K_DEBUG, 0, m_sIniFile)
Dim sLogFile As String = m_sTempDir & "\" & GENLOG_FILE_NAME
Dim sLogMsg As String = My.Application.Info.Description.ToString() & " ver. " & My.Application.Info.Version.ToString()
EgtInit(m_nDebug, sLogFile, sLogMsg)
' Leggo direttorio dei messaggi (se manca uso direttorio di configurazione)
Dim sMsgDir As String = String.Empty
If GetPrivateProfileString(S_GENERAL, K_MESSAGESDIR, "", sMsgDir, m_sIniFile) = 0 Then
sMsgDir = m_sConfigDir
End If
' Leggo file messaggi
Dim sMsgFile As String = String.Empty
GetPrivateProfileString(S_GENERAL, K_MESSAGES, "", sMsgFile, m_sIniFile)
Dim sMsgFilePath As String = sMsgDir & "\" & sMsgFile
If Not EgtLoadMessages(sMsgFilePath) Then
EgtOutLog("Error in EgtLoadMessages")
End If
' imposto dir font Nfe e font default
Dim sNfeDir As String = String.Empty
GetPrivateProfileString(S_GEOMDB, K_NFEFONTDIR, "", sNfeDir, m_sIniFile)
Dim sDefFont As String = String.Empty
GetPrivateProfileString(S_GEOMDB, K_DEFAULTFONT, "", sDefFont, m_sIniFile)
EgtSetFont(sNfeDir, sDefFont)
' imposto dir di default per libreria Lua e lancio libreria di base
Dim sLuaLibsDir As String = String.Empty
GetPrivateProfileString(S_LUA, K_LIBSDIR, "", sLuaLibsDir, m_sIniFile)
EgtSetLuaLibs(sLuaLibsDir)
Dim sLuaBaseLib As String = String.Empty
GetPrivateProfileString(S_LUA, K_BASELIB, "EgtBase", sLuaBaseLib, m_sIniFile)
EgtLuaRequire(sLuaBaseLib)
' Imposto posizione e dimensioni della MainWindow
Dim nFlag As Integer
Dim nLeft As Integer
Dim nTop As Integer
Dim nWidth As Integer
Dim nHeight As Integer
GetPrivateProfileWinPos(S_GENERAL, K_WINPLACE, nFlag, nLeft, nTop, nWidth, nHeight, m_sIniFile)
Me.WindowStartupLocation = Windows.WindowStartupLocation.Manual
Me.Top = nTop
Me.Left = nLeft
Me.Height = nHeight
Me.Width = nWidth
WindowState = If(nFlag = 1, WindowState.Maximized, WindowState.Normal)
'Crezione della MachineStatusBar
m_MachineStatusUC = New MachineStatusUC
'Creazione delle Page UserControl
m_WorkInProgressPageUC = New WorkInProgressPageUC
m_DirectCutPageUC = New DirectCutPageUC
m_CadCutPageUC = New CadCutPageUC
m_RawPartPage = New RawPartPageUC
m_SimulationPage = New SimulationPageUC
m_DrawPageUC = New DrawPageUC
m_ImportPageUC = New ImportPageUC
m_FrameCutPageUC = New FrameCutPageUC
m_CurrentProjectPageUC = New CurrentProjectPageUC
m_MachinePageUC = New MachinePageUC
m_AlarmsPageUC = New AlarmsPageUC
m_OptionsPageUC = New OptionsPageUC
'Posizionamento nella griglia della MachineStatusBar
m_MachineStatusUC.SetValue(Grid.RowProperty, 2)
'Posizionemento nella griglia delle Page UserControl
m_WorkInProgressPageUC.SetValue(Grid.ColumnProperty, 0)
m_WorkInProgressPageUC.SetValue(Grid.RowProperty, 1)
m_RawPartPage.SetValue(Grid.ColumnSpanProperty, 2)
m_RawPartPage.SetValue(Grid.RowSpanProperty, 3)
m_SimulationPage.SetValue(Grid.ColumnSpanProperty, 2)
m_SimulationPage.SetValue(Grid.RowSpanProperty, 3)
m_DrawPageUC.SetValue(Grid.ColumnProperty, 0)
m_DrawPageUC.SetValue(Grid.RowProperty, 1)
m_ImportPageUC.SetValue(Grid.ColumnProperty, 0)
m_ImportPageUC.SetValue(Grid.RowProperty, 1)
m_CurrentProjectPageUC.SetValue(Grid.ColumnProperty, 0)
m_CurrentProjectPageUC.SetValue(Grid.RowProperty, 1)
m_MachinePageUC.SetValue(Grid.ColumnProperty, 0)
m_MachinePageUC.SetValue(Grid.RowProperty, 1)
m_AlarmsPageUC.SetValue(Grid.ColumnProperty, 0)
m_AlarmsPageUC.SetValue(Grid.RowProperty, 1)
m_OptionsPageUC.SetValue(Grid.ColumnProperty, 0)
m_OptionsPageUC.SetValue(Grid.RowProperty, 1)
'Disabilita la possibilità di imitare il click del tasto destro del mouse tenendo premuto il dito sul touch
'NB: Se abilitato impedisce di utilizzare lo stato Pressed dei Button che quindi non si evidenziano quando premuti
Stylus.SetIsPressAndHoldEnabled(Me, False)
'Leggo lista materiali da file ini
Dim index As Integer = 1
Dim sMaterial As String = String.Empty
While GetPrivateProfileString(S_MATERIALS, K_MATERIAL & index, "", sMaterial, GetIniFile) > 0
Dim cMaterial As New Material(sMaterial)
m_MaterialsList.Add(cMaterial)
index += 1
End While
'Leggo materiale corrent da file ini
Dim sCurrentMaterial As String = String.Empty
GetPrivateProfileString(S_MATERIALS, K_CURRMATERIAL, "", sCurrentMaterial, GetIniFile)
For i As Integer = 0 To m_MaterialsList.Count - 1
If sCurrentMaterial = m_MaterialsList(i).Name Then
m_nCurrentMaterial = i
Exit For
End If
Next
'Imposto i messaggi letti dal file dei messaggi
WorkInProgressBtn.Content = EgtMsg(MSG_GENERAL + 1)
DirectCutBtn.Content = EgtMsg(MSG_GENERAL + 2)
CadCutBtn.Content = EgtMsg(MSG_GENERAL + 3)
FrameCutBtn.Content = EgtMsg(MSG_GENERAL + 4)
MachineBtn.Content = EgtMsg(MSG_GENERAL + 5)
OptionsBtn.Content = EgtMsg(MSG_GENERAL + 6)
End Sub
Private Sub ManageSingleIstance()
Dim bCreated As Boolean
Try
m_objMutex = New Mutex(False, "Global\OmagCut", bCreated)
Catch
bCreated = False
End Try
If Not bCreated Then
' porto in primo piano la prima istanza
Dim bFound As Boolean = False
' processi del programma a 32 bit
Dim localProc As Process() = Process.GetProcessesByName("OmagCutR32")
For Each p As Process In localProc
If p.Id <> Process.GetCurrentProcess().Id Then
bFound = True
ShowWindow(p.MainWindowHandle, 1)
Exit For
End If
Next
' se non trovati processi a 32 bit provo a 64 bit
If Not bFound Then
localProc = Process.GetProcessesByName("OmagCutR64")
For Each p As Process In localProc
If p.Id <> Process.GetCurrentProcess().Id Then
bFound = True
ShowWindow(p.MainWindowHandle, SW.RESTORE)
Exit For
End If
Next
End If
' esco dal programma
End
End If
End Sub
Private Sub Window_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
'Assegno AboutBoxWD come child della MainWindow
'm_AboutBoxWD.Owner = Me
'Aggiungo la MachineStatusBar alla MainWindow
MainWindowGrid.Children.Add(m_MachineStatusUC)
'Seleziono la Tab e la Page di apertura
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_CadCutPageUC)
m_ActivePage = Pages.CadCut
CadCutBtn.IsChecked = True
End Sub
Private Sub WorkInProgressBtn_Click(sender As Object, e As RoutedEventArgs) Handles WorkInProgressBtn.Click
Select Case m_ActivePage
Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = True
Case Pages.DirectCut
WorkInProgressBtn.IsChecked = True
DirectCutBtn.IsChecked = False
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_DirectCutPageUC)
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
MainWindowGrid.Children.Add(m_WorkInProgressPageUC)
m_ActivePage = Pages.WorkInProgress
Case Pages.CadCut
WorkInProgressBtn.IsChecked = True
CadCutBtn.IsChecked = False
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_CadCutPageUC)
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
MainWindowGrid.Children.Add(m_WorkInProgressPageUC)
m_ActivePage = Pages.WorkInProgress
Case Pages.RawPart
WorkInProgressBtn.IsChecked = False
CadCutBtn.IsChecked = True
Case Pages.Simulation
WorkInProgressBtn.IsChecked = False
CadCutBtn.IsChecked = True
Case Pages.Draw
WorkInProgressBtn.IsChecked = False
CadCutBtn.IsChecked = True
Case Pages.Import
WorkInProgressBtn.IsChecked = False
CadCutBtn.IsChecked = True
Case Pages.FrameCut
WorkInProgressBtn.IsChecked = True
FrameCutBtn.IsChecked = False
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_FrameCutPageUC)
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
MainWindowGrid.Children.Add(m_WorkInProgressPageUC)
m_ActivePage = Pages.WorkInProgress
Case Pages.Machine
WorkInProgressBtn.IsChecked = True
MachineBtn.IsChecked = False
MainWindowGrid.Children.Remove(m_MachinePageUC)
MainWindowGrid.Children.Add(m_WorkInProgressPageUC)
m_ActivePage = Pages.WorkInProgress
Case Pages.Options
WorkInProgressBtn.IsChecked = True
OptionsBtn.IsChecked = False
MainWindowGrid.Children.Remove(m_OptionsPageUC)
MainWindowGrid.Children.Add(m_WorkInProgressPageUC)
m_ActivePage = Pages.WorkInProgress
End Select
End Sub
Private Sub DirectCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles DirectCutBtn.Click
Select Case m_ActivePage
Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = False
DirectCutBtn.IsChecked = True
MainWindowGrid.Children.Remove(m_WorkInProgressPageUC)
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_DirectCutPageUC)
m_ActivePage = Pages.DirectCut
Case Pages.DirectCut
DirectCutBtn.IsChecked = True
Case Pages.CadCut
DirectCutBtn.IsChecked = True
CadCutBtn.IsChecked = False
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_CadCutPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_DirectCutPageUC)
m_ActivePage = Pages.DirectCut
Case Pages.RawPart
DirectCutBtn.IsChecked = False
CadCutBtn.IsChecked = True
Case Pages.Simulation
DirectCutBtn.IsChecked = False
CadCutBtn.IsChecked = True
Case Pages.Draw
DirectCutBtn.IsChecked = False
CadCutBtn.IsChecked = True
Case Pages.Import
DirectCutBtn.IsChecked = False
CadCutBtn.IsChecked = True
Case Pages.FrameCut
DirectCutBtn.IsChecked = True
FrameCutBtn.IsChecked = False
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_FrameCutPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_DirectCutPageUC)
m_ActivePage = Pages.DirectCut
Case Pages.Machine
DirectCutBtn.IsChecked = True
MachineBtn.IsChecked = False
MainWindowGrid.Children.Remove(m_MachinePageUC)
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_DirectCutPageUC)
m_ActivePage = Pages.DirectCut
Case Pages.Options
DirectCutBtn.IsChecked = True
OptionsBtn.IsChecked = False
MainWindowGrid.Children.Remove(m_OptionsPageUC)
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_DirectCutPageUC)
m_ActivePage = Pages.DirectCut
End Select
End Sub
Private Sub CadCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles CadCutBtn.Click
Select Case m_ActivePage
Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = False
CadCutBtn.IsChecked = True
MainWindowGrid.Children.Remove(m_WorkInProgressPageUC)
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_CadCutPageUC)
m_ActivePage = Pages.DirectCut
m_ActivePage = Pages.CadCut
Case Pages.DirectCut
DirectCutBtn.IsChecked = False
CadCutBtn.IsChecked = True
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_DirectCutPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_CadCutPageUC)
m_ActivePage = Pages.CadCut
Case Pages.CadCut
CadCutBtn.IsChecked = True
Case Pages.RawPart
CadCutBtn.IsChecked = True
Case Pages.Simulation
CadCutBtn.IsChecked = True
Case Pages.Draw
CadCutBtn.IsChecked = True
Case Pages.Import
CadCutBtn.IsChecked = True
Case Pages.FrameCut
CadCutBtn.IsChecked = True
FrameCutBtn.IsChecked = False
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_FrameCutPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_CadCutPageUC)
m_ActivePage = Pages.CadCut
Case Pages.Machine
CadCutBtn.IsChecked = True
MachineBtn.IsChecked = False
MainWindowGrid.Children.Remove(m_MachinePageUC)
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_CadCutPageUC)
m_ActivePage = Pages.CadCut
Case Pages.Options
CadCutBtn.IsChecked = True
OptionsBtn.IsChecked = False
MainWindowGrid.Children.Remove(m_OptionsPageUC)
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_CadCutPageUC)
m_ActivePage = Pages.CadCut
End Select
End Sub
Private Sub FrameCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles FrameCutBtn.Click
Select Case m_ActivePage
Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = False
FrameCutBtn.IsChecked = True
MainWindowGrid.Children.Remove(m_WorkInProgressPageUC)
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_FrameCutPageUC)
m_ActivePage = Pages.FrameCut
Case Pages.DirectCut
DirectCutBtn.IsChecked = False
FrameCutBtn.IsChecked = True
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_DirectCutPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_FrameCutPageUC)
m_ActivePage = Pages.FrameCut
Case Pages.CadCut
CadCutBtn.IsChecked = False
FrameCutBtn.IsChecked = True
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_CadCutPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_FrameCutPageUC)
m_ActivePage = Pages.FrameCut
Case Pages.RawPart
CadCutBtn.IsChecked = True
FrameCutBtn.IsChecked = False
Case Pages.Simulation
CadCutBtn.IsChecked = True
FrameCutBtn.IsChecked = False
Case Pages.Draw
CadCutBtn.IsChecked = True
FrameCutBtn.IsChecked = False
Case Pages.Import
CadCutBtn.IsChecked = True
FrameCutBtn.IsChecked = False
Case Pages.FrameCut
FrameCutBtn.IsChecked = True
Case Pages.Machine
FrameCutBtn.IsChecked = True
MachineBtn.IsChecked = False
MainWindowGrid.Children.Remove(m_MachinePageUC)
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_FrameCutPageUC)
m_ActivePage = Pages.FrameCut
Case Pages.Options
FrameCutBtn.IsChecked = True
OptionsBtn.IsChecked = False
MainWindowGrid.Children.Remove(m_OptionsPageUC)
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_FrameCutPageUC)
m_ActivePage = Pages.FrameCut
End Select
End Sub
Private Sub MachineBtn_Click(sender As Object, e As RoutedEventArgs) Handles MachineBtn.Click
Select Case m_ActivePage
Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = False
MachineBtn.IsChecked = True
MainWindowGrid.Children.Remove(m_WorkInProgressPageUC)
MainWindowGrid.Children.Add(m_MachinePageUC)
m_ActivePage = Pages.Machine
Case Pages.DirectCut
DirectCutBtn.IsChecked = False
MachineBtn.IsChecked = True
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_DirectCutPageUC)
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
MainWindowGrid.Children.Add(m_MachinePageUC)
m_ActivePage = Pages.Machine
Case Pages.CadCut
CadCutBtn.IsChecked = False
MachineBtn.IsChecked = True
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_CadCutPageUC)
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
MainWindowGrid.Children.Add(m_MachinePageUC)
m_ActivePage = Pages.Machine
Case Pages.RawPart
CadCutBtn.IsChecked = True
MachineBtn.IsChecked = False
Case Pages.Simulation
CadCutBtn.IsChecked = True
MachineBtn.IsChecked = False
Case Pages.Draw
CadCutBtn.IsChecked = True
MachineBtn.IsChecked = False
Case Pages.Import
CadCutBtn.IsChecked = True
MachineBtn.IsChecked = False
Case Pages.FrameCut
FrameCutBtn.IsChecked = False
MachineBtn.IsChecked = True
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_FrameCutPageUC)
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
MainWindowGrid.Children.Add(m_MachinePageUC)
m_ActivePage = Pages.Machine
Case Pages.Machine
MachineBtn.IsChecked = True
Case Pages.Options
MachineBtn.IsChecked = True
OptionsBtn.IsChecked = False
MainWindowGrid.Children.Remove(m_OptionsPageUC)
MainWindowGrid.Children.Add(m_MachinePageUC)
m_ActivePage = Pages.Machine
End Select
End Sub
Private Sub OptionsBtn_Click(sender As Object, e As RoutedEventArgs) Handles OptionsBtn.Click
Select Case m_ActivePage
Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = False
OptionsBtn.IsChecked = True
MainWindowGrid.Children.Remove(m_WorkInProgressPageUC)
MainWindowGrid.Children.Add(m_OptionsPageUC)
m_ActivePage = Pages.Options
Case Pages.DirectCut
DirectCutBtn.IsChecked = False
OptionsBtn.IsChecked = True
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_DirectCutPageUC)
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
MainWindowGrid.Children.Add(m_OptionsPageUC)
m_ActivePage = Pages.Options
Case Pages.CadCut
CadCutBtn.IsChecked = False
OptionsBtn.IsChecked = True
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_CadCutPageUC)
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
MainWindowGrid.Children.Add(m_OptionsPageUC)
m_ActivePage = Pages.Options
Case Pages.RawPart
CadCutBtn.IsChecked = True
OptionsBtn.IsChecked = False
Case Pages.Simulation
CadCutBtn.IsChecked = True
OptionsBtn.IsChecked = False
Case Pages.Draw
CadCutBtn.IsChecked = True
OptionsBtn.IsChecked = False
Case Pages.Import
CadCutBtn.IsChecked = True
OptionsBtn.IsChecked = False
Case Pages.FrameCut
FrameCutBtn.IsChecked = False
OptionsBtn.IsChecked = True
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_FrameCutPageUC)
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
MainWindowGrid.Children.Add(m_OptionsPageUC)
m_ActivePage = Pages.Options
Case Pages.Machine
MachineBtn.IsChecked = False
OptionsBtn.IsChecked = True
MainWindowGrid.Children.Remove(m_MachinePageUC)
MainWindowGrid.Children.Add(m_OptionsPageUC)
m_ActivePage = Pages.Options
Case Pages.Options
OptionsBtn.IsChecked = True
End Select
End Sub
'Impedisce di clickare fuori dal UC Componenti finchè questo è aperto
Private Sub MainWindow_PreviewMouseDown(sender As Object, e As MouseButtonEventArgs)
'If (m_ComponentiUC.IsVisible And Not m_ComponentiUC.IsMouseOver) Then
' e.Handled = True
'End If
'If (m_RawPartPage.IsVisible And MainTabGrid.IsMouseOver) Then
' e.Handled = True
'End If
If Not m_NumericKeyboardWD Is Nothing Then
If (m_NumericKeyboardWD.IsVisible And Not m_NumericKeyboardWD.IsMouseOver) Then
e.Handled = True
End If
End If
End Sub
Private Sub MainWindow_KeyDown(sender As Object, e As KeyEventArgs)
'If (m_NumericKeyboardWD.IsVisible And e.Key = Key.Enter) Then
' m_NumericKeyboardWD.Visibility = Windows.Visibility.Hidden
'End If
End Sub
Private Sub ExitBtn_Click(sender As Object, e As RoutedEventArgs)
MainWindow_Unloaded(sender, e)
Me.Close()
End Sub
Private Sub MainWindow_Unloaded(sender As Object, e As RoutedEventArgs)
If m_nCurrentMaterial >= 0 And m_nCurrentMaterial < m_MaterialsList.Count() Then
WritePrivateProfileString(S_MATERIALS, K_CURRMATERIAL, m_MaterialsList(m_nCurrentMaterial).Name, GetIniFile())
End If
' Terminazione generale di EgtInterface
EgtExit()
' Rilascio mutex
m_objMutex.Close()
End Sub
End Class
Friend Class Material
Private Shared pId As Integer = 0
Private m_iId As Integer
Private m_sName As String
Public ReadOnly Property Id() As Integer
Get
Return m_iId
End Get
End Property
Public Property Name() As String
Get
Return m_sName
End Get
Set(value As String)
m_sName = value
End Set
End Property
Sub New(sName As String)
m_iId = pId
Name = sName
pId += 1
End Sub
End Class