Files
OmagCUT/Project/StartLauncheWD.xaml.vb
Dario Sassi 6c7d27d9e9 OmagCUT :
- in gestione Split semplificata gestione FinalCut (IdTwinCut)
- in gestione Split estesa possibilità di allungare attacchi e uscite dei tagli.
2026-02-16 08:03:17 +01:00

158 lines
5.2 KiB
VB.net

Imports EgtUILib
Imports System.IO
Imports System.Collections.ObjectModel
Imports System.ComponentModel
Public Enum MODE_LAUNCHER
LastProject
NewProject
OpenFolder
ShowWindow
SelectedProject
End Enum
Public Class StartLauncherWD
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
' lista dei file recenti da visualizzare
Private m_RecentFileList As New ObservableCollection(Of FileNameLsBxItem)
Private m_CurrSelection As MODE_LAUNCHER
Public Property CurrSelection As MODE_LAUNCHER
Get
Return m_CurrSelection
End Get
Set(value As MODE_LAUNCHER)
m_CurrSelection = value
End Set
End Property
Private m_SelPath As String = String.Empty
Public ReadOnly Property SelPath As String
Get
Return m_SelPath
End Get
End Property
Public Sub New(Owner As Window)
Me.Owner = Owner
InitializeComponent()
End Sub
'--------------------------- lista dei file recenti -----------------------------------------------------------------------
Private Class FileNameLsBxItem
Implements INotifyPropertyChanged
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Private m_sDate As String
Private m_sName As String
Public Property sDate As String
Get
Return m_sDate
End Get
Set(value As String)
m_sDate = value
End Set
End Property
Public Property Name As String
Get
Return m_sName
End Get
Set(value As String)
If value <> m_sName Then
m_sName = value
NotifyPropertyChanged("Name")
End If
End Set
End Property
Public ReadOnly Property GraphicName As String
Get
' recupero il nome del file con estensione, altrimenti -> Path.GetFileNameWithoutExtension(m_sName)
Return Path.GetFileNameWithoutExtension(m_sName)
End Get
End Property
Sub New(Name As String, dDate As Date)
Me.m_sName = Name
Me.m_sDate = dDate.ToString
End Sub
Public Sub NotifyPropertyChanged(propName As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
End Sub
End Class
'--------------------------- lista dei file recenti -----------------------------------------------------------------------
' inizializzo la finestra
Private Sub StartLauncherWD_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
FilesLsBx.ItemsSource = m_RecentFileList
Dim ItemFile As String = String.Empty
'carico la liste dei file recenti
Dim sFileName As String = String.Empty
Dim MruFileListRemove As New List(Of String)
For Each ItemFile In m_MainWindow.m_CurrentProjectPageUC.m_MruFiles.FileNames
sFileName = ItemFile.Replace("__", "_")
If Not String.IsNullOrEmpty(sFileName) AndAlso File.Exists(sFileName) Then
m_RecentFileList.Add(New FileNameLsBxItem(sFileName, File.GetLastAccessTime(sFileName)))
m_RecentFileList.Add(New FileNameLsBxItem(sFileName, File.GetLastAccessTime(sFileName)))
Else
MruFileListRemove.Add(sFileName)
End If
Next
For Each ItemFileRemove As String In MruFileListRemove
m_MainWindow.m_CurrentProjectPageUC.m_MruFiles.Remove(ItemFileRemove)
EgtOutLog(" WARNING: File " & ItemFileRemove & " does not exist or is not accessible, it's been removed from MruFiles list")
Next
' posiziono la finestra in centro alla pagina
Me.Top = Owner.Top + Owner.Height / 2 - Me.Height / 2
Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2
' imopposto il messaggio di avvio
SlectLauncherTxbl.Text = EgtMsg(91010) ' Seleziona modalità di avvio
FileName.Text = EgtMsg(91011) ' Progetti recenti
DataFile.Text = EgtMsg(91012) ' Ultima apertura
LastProject.ToolTip = EgtMsg(91013) ' Ultimo progetto
NewProject.ToolTip = EgtMsg(91014) ' Nuovo progetto
OpenFolder.ToolTip = EgtMsg(91015) ' Apri cartella
End Sub
' lancio l'apertura della pagina dei progetti
Private Sub OpenFolder_Click(sender As Object, e As RoutedEventArgs) Handles OpenFolder.Click
m_CurrSelection = MODE_LAUNCHER.OpenFolder
EgtZoom(ZM.ALL)
Me.Close()
End Sub
' creo un progetto nuovo
Private Sub NewProject_Click(sender As Object, e As RoutedEventArgs) Handles NewProject.Click
m_CurrSelection = MODE_LAUNCHER.NewProject
EgtZoom(ZM.ALL)
Me.Close()
End Sub
' Ultimo progetto
Private Sub LastProject_Click(sender As Object, e As RoutedEventArgs) Handles LastProject.Click
m_CurrSelection = MODE_LAUNCHER.LastProject
EgtZoom(ZM.ALL)
Me.Close()
End Sub
' quando viene rilasciato il mouse
Private Sub SelectProject_MouseUp(sender As Object, e As RoutedEventArgs) Handles FilesLsBx.MouseDoubleClick, FilesLsBx.TouchUp
' recupero il nome selezionato
m_SelPath = FilesLsBx.SelectedItem.Name
m_CurrSelection = MODE_LAUNCHER.SelectedProject
EgtZoom(ZM.ALL)
Me.Close()
End Sub
End Class