EgtCAM5 :
- primo rilascio.
@@ -0,0 +1,9 @@
|
||||
<Application x:Class="Application"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<Application.Resources>
|
||||
<ResourceDictionary Source="EgtCAM5Resources.xaml" />
|
||||
</Application.Resources>
|
||||
|
||||
</Application>
|
||||
@@ -0,0 +1,126 @@
|
||||
Imports EgtCAM5.EgtCAM5
|
||||
Class Application
|
||||
|
||||
' Application-level events, such as Startup, Exit, and DispatcherUnhandledException
|
||||
' can be handled in this file.
|
||||
Protected Overrides Sub OnStartUp(e As System.Windows.StartupEventArgs)
|
||||
MyBase.OnStartup(e)
|
||||
' Creo la View principale
|
||||
Dim MainWndView As New MainWindow
|
||||
' Creo il ViewModel principale
|
||||
Dim MainWndViewModel As New MainWindowViewModel
|
||||
' Assegno il ViewModel alla View
|
||||
MainWndView.DataContext = MainWndViewModel
|
||||
' Mostro la View principale
|
||||
MainWndView.Show()
|
||||
End Sub
|
||||
|
||||
#Region "Messages"
|
||||
|
||||
' Generic messages
|
||||
Friend Const MAINWINDOW_CONTENTRENDERED As String = "MainWindow_ContentRendered"
|
||||
Friend Const MAINWINDOW_ACTIVATED As String = "MainWindow_Activated"
|
||||
Friend Const MAINWINDOW_DEACTIVATED As String = "MainWindow_Deactivated"
|
||||
Friend Const CLOSEAPPLICATION As String = "CloseApplication"
|
||||
Friend Const PROJECTPAGE_SELECTED As String = "ProjectPage_Selected"
|
||||
Friend Const PROJECTPAGE_DESELECTED As String = "ProjectPage_Deselected"
|
||||
|
||||
' ProjectPage messages
|
||||
Friend Const NOTIFYCURRPOSCHANGED As String = "ProjectPage_CurrPosChanged"
|
||||
Friend Const NOTIFYINPUTTEXT As String = "NotifyInputText"
|
||||
Friend Const REGISTERINPUTTEXT As String = "Register_InputText_Text"
|
||||
Friend Const NOTIFYSTATUSOUTPUT As String = "NotifyStatusOutput"
|
||||
Friend Const NOTIFYSTATUSPROGRESS As String = "NotifyStatusProgress"
|
||||
Friend Const NOTIFYSTATUSSTOP_ISENABLED As String = "NotifyStatusStop_IsEnabled"
|
||||
|
||||
' GridViewPanel messages
|
||||
Friend Const WIREFRAME As String = "Wireframe"
|
||||
Friend Const HIDDENLINE As String = "HiddenLine"
|
||||
Friend Const SHADING As String = "Shading"
|
||||
Friend Const ZOOMALL As String = "ZoomAll"
|
||||
Friend Const ZOOMIN As String = "ZoomIn"
|
||||
Friend Const ZOOMOUT As String = "ZoomOut"
|
||||
Friend Const TOPVIEW As String = "TopView"
|
||||
Friend Const FRONTVIEW As String = "FrontView"
|
||||
Friend Const LEFTVIEW As String = "LeftView"
|
||||
Friend Const BACKVIEW As String = "BackView"
|
||||
Friend Const RIGHTVIEW As String = "RightView"
|
||||
Friend Const ISOVIEWSW As String = "IsoViewSW"
|
||||
Friend Const ISOVIEWSE As String = "IsoViewSE"
|
||||
Friend Const ISOVIEWNE As String = "IsoViewNE"
|
||||
Friend Const ISOVIEWNW As String = "IsoViewNW"
|
||||
Friend Const CURVEDIR As String = "CurveDir"
|
||||
Friend Const ANALYZE As String = "Analyze"
|
||||
Friend Const GETDIST As String = "GetDist"
|
||||
Friend Const CPLANETOP As String = "CPlaneTop"
|
||||
Friend Const CPLANEFRONT As String = "CPlaneFront"
|
||||
Friend Const CPLANERIGHT As String = "CPlaneRight"
|
||||
Friend Const CPLANEBACK As String = "CPlaneBack"
|
||||
Friend Const CPLANELEFT As String = "CPlaneLeft"
|
||||
Friend Const CPLANEBOTTOM As String = "CPlaneBottom"
|
||||
Friend Const CPLANEVIEW As String = "CPlaneView"
|
||||
Friend Const CPLANEELEVATION As String = "CPlaneElevation"
|
||||
Friend Const CPLANEORIGIN As String = "CPlaneOrigin"
|
||||
Friend Const CPLANEROTATE As String = "CPlaneRotate"
|
||||
Friend Const CPLANE3P As String = "CPlane3P"
|
||||
Friend Const CPLANEPERPOBJ As String = "CPlanePerpObj"
|
||||
Friend Const CPLANEOBJ As String = "CPlaneObj"
|
||||
Friend Const POINT As String = "Point"
|
||||
Friend Const LINE2P As String = "Line2P"
|
||||
Friend Const LINEPDL As String = "LinePDL"
|
||||
Friend Const CIRCLE As String = "Circle"
|
||||
Friend Const ARCCSE As String = "ArcCSE"
|
||||
Friend Const ARC3P As String = "Arc3P"
|
||||
Friend Const ARCPDP As String = "ArcPDP"
|
||||
Friend Const FILLET As String = "Fillet"
|
||||
Friend Const RECTANGLE2P As String = "Rectangle2P"
|
||||
Friend Const POLYGON As String = "Polygon"
|
||||
Friend Const TEXT As String = "Text"
|
||||
Friend Const PLANE As String = "Plane"
|
||||
Friend Const EXTRUDE As String = "Extrude"
|
||||
Friend Const REVOLVE As String = "Revolve"
|
||||
Friend Const SCREW As String = "Screw"
|
||||
Friend Const RULED As String = "Ruled"
|
||||
Friend Const MERGESURF As String = "MergeSurf"
|
||||
Friend Const EXPLODESURF As String = "ExplodeSurf"
|
||||
Friend Const INVERTSURF As String = "InvertSurf"
|
||||
Friend Const DELETE As String = "Delete"
|
||||
Friend Const CHANGELAYER As String = "ChangeLayer"
|
||||
Friend Const CHANGECOLOR As String = "ChangeColor"
|
||||
Friend Const INVERTCURVE As String = "InvertCurve"
|
||||
Friend Const CHANGESTARTCURVE As String = "ChangeStartCurve"
|
||||
Friend Const EXTENDCURVE As String = "ExtendCurve"
|
||||
Friend Const BREAKCURVE As String = "BreakCurve"
|
||||
Friend Const JOINCURVE As String = "JoinCurve"
|
||||
Friend Const EXPLODECURVE As String = "ExplodeCurve"
|
||||
Friend Const SETCURVETH As String = "SetCurveTh"
|
||||
Friend Const MOVE As String = "Move"
|
||||
Friend Const ROTATE As String = "Rotate"
|
||||
Friend Const MIRROR As String = "Mirror"
|
||||
Friend Const SCALE As String = "Scale"
|
||||
Friend Const OFFSET As String = "Offset"
|
||||
|
||||
' ToolsDbPage messages
|
||||
Friend Const REMOVETOOL As String = "RemoveTool"
|
||||
Friend Const ERRORONTOOL As String = "ErrorOnTool"
|
||||
|
||||
' MachiningsDbPage messages
|
||||
Friend Const REMOVEMACHINING As String = "RemoveMachining"
|
||||
Friend Const ERRORONMACHINING As String = "ErrorOnMachining"
|
||||
|
||||
Shared ReadOnly _messenger As New Messenger()
|
||||
|
||||
Friend Shared ReadOnly Property Msn As Messenger
|
||||
Get
|
||||
Return _messenger
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private Sub Application_DispatcherUnhandledException(ByVal sender As System.Object, ByVal e As System.Windows.Threading.DispatcherUnhandledExceptionEventArgs)
|
||||
MessageBox.Show(e.Exception.Message)
|
||||
e.Handled = True
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,61 @@
|
||||
Public NotInheritable Class InputBindingsManager
|
||||
|
||||
Private Sub New()
|
||||
End Sub
|
||||
|
||||
Public Shared ReadOnly UpdatePropertySourceWhenEnterPressedProperty As DependencyProperty = DependencyProperty.RegisterAttached("UpdatePropertySourceWhenEnterPressed", GetType(DependencyProperty), GetType(InputBindingsManager), New PropertyMetadata(Nothing, AddressOf OnUpdatePropertySourceWhenEnterPressedPropertyChanged))
|
||||
|
||||
|
||||
Shared Sub New()
|
||||
End Sub
|
||||
|
||||
Public Shared Sub SetUpdatePropertySourceWhenEnterPressed(dp As DependencyObject, value As DependencyProperty)
|
||||
dp.SetValue(UpdatePropertySourceWhenEnterPressedProperty, value)
|
||||
End Sub
|
||||
|
||||
Public Shared Function GetUpdatePropertySourceWhenEnterPressed(dp As DependencyObject) As DependencyProperty
|
||||
Return DirectCast(dp.GetValue(UpdatePropertySourceWhenEnterPressedProperty), DependencyProperty)
|
||||
End Function
|
||||
|
||||
Private Shared Sub OnUpdatePropertySourceWhenEnterPressedPropertyChanged(dp As DependencyObject, e As DependencyPropertyChangedEventArgs)
|
||||
Dim element As UIElement = TryCast(dp, UIElement)
|
||||
|
||||
If element Is Nothing Then
|
||||
Return
|
||||
End If
|
||||
|
||||
If e.OldValue IsNot Nothing Then
|
||||
RemoveHandler element.PreviewKeyDown, AddressOf HandlePreviewKeyDown
|
||||
End If
|
||||
|
||||
If e.NewValue IsNot Nothing Then
|
||||
AddHandler element.PreviewKeyDown, New KeyEventHandler(AddressOf HandlePreviewKeyDown)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Shared Sub HandlePreviewKeyDown(sender As Object, e As KeyEventArgs)
|
||||
If e.Key = Key.Enter Then
|
||||
DoUpdateSource(e.Source)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Shared Sub DoUpdateSource(source As Object)
|
||||
Dim [property] As DependencyProperty = GetUpdatePropertySourceWhenEnterPressed(TryCast(source, DependencyObject))
|
||||
|
||||
If [property] Is Nothing Then
|
||||
Return
|
||||
End If
|
||||
|
||||
Dim elt As UIElement = TryCast(source, UIElement)
|
||||
|
||||
If elt Is Nothing Then
|
||||
Return
|
||||
End If
|
||||
|
||||
Dim binding As BindingExpression = BindingOperations.GetBindingExpression(elt, [property])
|
||||
|
||||
If binding IsNot Nothing Then
|
||||
binding.UpdateSource()
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
@@ -0,0 +1,12 @@
|
||||
<EgtWpfLib5:EgtPanelWindow x:Class="BaseWindowView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtWpfLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
Title="BaseWindowView"
|
||||
SizeToContent="WidthAndHeight"
|
||||
TitleBarOrientation="{Binding TitleBarOrientation}">
|
||||
|
||||
<!--ContentPresenter that contains the actual View-->
|
||||
<ContentPresenter Content="{Binding}"/>
|
||||
|
||||
</EgtWpfLib5:EgtPanelWindow>
|
||||
@@ -0,0 +1,24 @@
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class BaseWindowView
|
||||
Inherits EgtPanelWindow
|
||||
Sub New()
|
||||
|
||||
' This call is required by the designer.
|
||||
InitializeComponent()
|
||||
|
||||
' Add any initialization after the InitializeComponent() call.
|
||||
' Set this as owned by MainWindow, when this one is rendered
|
||||
Application.Msn.Register(Application.MAINWINDOW_CONTENTRENDERED, Sub()
|
||||
Me.Owner = Application.Current.MainWindow
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.MAINWINDOW_ACTIVATED, Sub()
|
||||
'Me.Topmost = True
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.MAINWINDOW_DEACTIVATED, Sub()
|
||||
'Me.Topmost = False
|
||||
End Sub)
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
Namespace EgtCAM5
|
||||
|
||||
Public Class TabViewModel
|
||||
Inherits ViewModelBase
|
||||
|
||||
Private m_sTabName As String
|
||||
Public Property sTabName As String
|
||||
Get
|
||||
Return m_sTabName
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sTabName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@@ -0,0 +1,195 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.ComponentModel
|
||||
|
||||
' Classe che definisce un elemento di base del TreeView
|
||||
Public Class TreeViewItemBase
|
||||
Implements INotifyPropertyChanged
|
||||
|
||||
Friend m_Name As String
|
||||
Public Overridable Property Name As String
|
||||
Get
|
||||
Return m_Name
|
||||
End Get
|
||||
Set(value As String)
|
||||
If (value <> m_Name) Then
|
||||
m_Name = value
|
||||
NotifyPropertyChanged("Name")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Friend m_isSelected As Boolean
|
||||
Public Overridable Property IsSelected As Boolean
|
||||
Get
|
||||
Return m_isSelected
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
If (value <> m_isSelected) Then
|
||||
m_isSelected = value
|
||||
NotifyPropertyChanged("IsSelected")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_isExpanded As Boolean
|
||||
Public Property IsExpanded As Boolean
|
||||
Get
|
||||
Return m_isExpanded
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
If (value <> m_isExpanded) Then
|
||||
m_isExpanded = value
|
||||
NotifyPropertyChanged("IsExpanded")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_IsActive As Boolean
|
||||
Public Property IsActive As Boolean
|
||||
Get
|
||||
Return m_IsActive
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
If value <> m_IsActive Then
|
||||
m_IsActive = value
|
||||
NotifyPropertyChanged("IsActive")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_IsEnabled As Boolean = True
|
||||
Public Property IsEnabled As Boolean
|
||||
Get
|
||||
Return m_IsEnabled
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_IsEnabled = value
|
||||
NotifyPropertyChanged("IsEnabled")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
|
||||
|
||||
Public Sub NotifyPropertyChanged(propName As String)
|
||||
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
|
||||
End Sub
|
||||
|
||||
Sub New(Name As String)
|
||||
m_Name = Name
|
||||
End Sub
|
||||
|
||||
Sub New(Name As String, IsSelected As Boolean, IsExpanded As Boolean, IsActive As Boolean)
|
||||
Me.Name = Name
|
||||
Me.IsSelected = IsSelected
|
||||
Me.IsExpanded = IsExpanded
|
||||
Me.IsActive = IsActive
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
' Elemento del treeview che ha sottoelementi del suo stesso tipo
|
||||
'Public Class TreeViewItem
|
||||
' Inherits TreeViewItemBase
|
||||
|
||||
' Private m_sPictureString As String
|
||||
' Private m_Items As ObservableCollection(Of TreeViewItem)
|
||||
|
||||
' Public Property PictureString As String
|
||||
' Get
|
||||
' Return m_sPictureString
|
||||
' End Get
|
||||
' Set(value As String)
|
||||
' If value <> m_sPictureString Then
|
||||
' m_sPictureString = value
|
||||
' NotifyPropertyChanged("PictureString")
|
||||
' End If
|
||||
' End Set
|
||||
' End Property
|
||||
|
||||
' Public Property Items As ObservableCollection(Of TreeViewItem)
|
||||
' Get
|
||||
' Return m_Items
|
||||
' End Get
|
||||
' Set(value As ObservableCollection(Of TreeViewItem))
|
||||
' m_Items = value
|
||||
' End Set
|
||||
' End Property
|
||||
|
||||
' Sub New(Name As String)
|
||||
' MyBase.New(Name)
|
||||
' Me.Items = New ObservableCollection(Of TreeViewItem)
|
||||
' End Sub
|
||||
|
||||
' Sub New(Name As String, IsSelected As Boolean, IsExpanded As Boolean, IsActive As Boolean)
|
||||
' MyBase.New(Name, IsSelected, IsExpanded, IsActive)
|
||||
' Me.Items = New ObservableCollection(Of TreeViewItem)
|
||||
' End Sub
|
||||
|
||||
'End Class
|
||||
|
||||
' Elemento che ha sottoelementi di tipo childitem
|
||||
Public Class ParentItem
|
||||
Inherits TreeViewItemBase
|
||||
|
||||
Private m_sPictureString As String
|
||||
Private m_Items As ObservableCollection(Of ChildItem)
|
||||
|
||||
Public Property PictureString As String
|
||||
Get
|
||||
Return m_sPictureString
|
||||
End Get
|
||||
Set(value As String)
|
||||
If value <> m_sPictureString Then
|
||||
m_sPictureString = value
|
||||
NotifyPropertyChanged("PictureString")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property Items As ObservableCollection(Of ChildItem)
|
||||
Get
|
||||
Return m_Items
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of ChildItem))
|
||||
m_Items = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(Name As String)
|
||||
MyBase.New(Name)
|
||||
Me.Items = New ObservableCollection(Of ChildItem)
|
||||
End Sub
|
||||
|
||||
Sub New(Name As String, IsSelected As Boolean, IsExpanded As Boolean, IsActive As Boolean)
|
||||
MyBase.New(Name, IsSelected, IsExpanded, IsActive)
|
||||
Me.Items = New ObservableCollection(Of ChildItem)
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
' Elemento presente solo come figlio di un ParentItem
|
||||
Public Class ChildItem
|
||||
Inherits TreeViewItemBase
|
||||
|
||||
Private m_sPictureString As String
|
||||
Public Property PictureString As String
|
||||
Get
|
||||
Return m_sPictureString
|
||||
End Get
|
||||
Set(value As String)
|
||||
If value <> m_sPictureString Then
|
||||
m_sPictureString = value
|
||||
NotifyPropertyChanged("PictureString")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(Name As String)
|
||||
MyBase.New(Name)
|
||||
End Sub
|
||||
|
||||
Sub New(Name As String, IsSelected As Boolean, IsExpanded As Boolean, IsActive As Boolean)
|
||||
MyBase.New(Name, IsSelected, IsExpanded, IsActive)
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,97 @@
|
||||
Imports System.ComponentModel
|
||||
|
||||
Namespace EgtCAM5
|
||||
|
||||
Public Class ViewModelBase
|
||||
Implements INotifyPropertyChanged
|
||||
|
||||
#Region "Constructor"
|
||||
|
||||
Protected Sub New()
|
||||
End Sub
|
||||
|
||||
#End Region ' Constructor
|
||||
|
||||
#Region "DisplayName"
|
||||
|
||||
''' <summary>
|
||||
''' Returns the user-friendly name of this object.
|
||||
''' Child classes can set this property to a new value,
|
||||
''' or override it to determine the value on-demand.
|
||||
''' </summary>
|
||||
Private m_sDisplayName As String
|
||||
Public Overridable Property sDisplayName() As String
|
||||
Get
|
||||
Return m_sDisplayName
|
||||
End Get
|
||||
Protected Set(ByVal value As String)
|
||||
m_sDisplayName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#End Region ' DisplayName
|
||||
|
||||
#Region "Debugging Aides"
|
||||
|
||||
''' <summary>
|
||||
''' Warns the developer if this object does not have
|
||||
''' a public property with the specified name. This
|
||||
''' method does not exist in a Release build.
|
||||
''' </summary>
|
||||
<Conditional("DEBUG"), DebuggerStepThrough()> _
|
||||
Public Sub VerifyPropertyName(ByVal sPropertyName As String)
|
||||
' Verify that the property name matches a real,
|
||||
' public, instance property on this object.
|
||||
If TypeDescriptor.GetProperties(Me)(sPropertyName) Is Nothing Then
|
||||
Dim msg As String = "Invalid property name: " & sPropertyName
|
||||
|
||||
If Me.ThrowOnInvalidPropertyName Then
|
||||
Throw New Exception(msg)
|
||||
Else
|
||||
Debug.Fail(msg)
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns whether an exception is thrown, or if a Debug.Fail() is used
|
||||
''' when an invalid property name is passed to the VerifyPropertyName method.
|
||||
''' The default value is false, but subclasses used by unit tests might
|
||||
''' override this property's getter to return true.
|
||||
''' </summary>
|
||||
Private privateThrowOnInvalidPropertyName As Boolean
|
||||
Protected Overridable Property ThrowOnInvalidPropertyName() As Boolean
|
||||
Get
|
||||
Return privateThrowOnInvalidPropertyName
|
||||
End Get
|
||||
Set(ByVal value As Boolean)
|
||||
privateThrowOnInvalidPropertyName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#End Region ' Debugging Aides
|
||||
|
||||
#Region "INotifyPropertyChanged Members"
|
||||
|
||||
''' <summary>
|
||||
''' Raised when a property on this object has a new value.
|
||||
''' </summary>
|
||||
Public Event PropertyChanged(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
|
||||
|
||||
''' <summary>
|
||||
''' Raises this object's PropertyChanged event.
|
||||
''' </summary>
|
||||
''' <param name="spropertyName">The property that has a new value.</param>
|
||||
Protected Overridable Sub OnPropertyChanged(ByVal sPropertyName As String)
|
||||
Me.VerifyPropertyName(sPropertyName)
|
||||
If Me.PropertyChangedEvent IsNot Nothing Then
|
||||
RaiseEvent PropertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(sPropertyName))
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
#End Region ' INotifyPropertyChanged Members
|
||||
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@@ -0,0 +1,71 @@
|
||||
Namespace EgtCAM5
|
||||
|
||||
''' <summary>
|
||||
''' A command whose sole purpose is to
|
||||
''' relay its functionality to other
|
||||
''' objects by invoking delegates. The
|
||||
''' default return value for the CanExecute
|
||||
''' method is 'true'.
|
||||
''' </summary>
|
||||
Public Class RelayCommand
|
||||
Implements ICommand
|
||||
|
||||
#Region "Fields"
|
||||
|
||||
Private ReadOnly _execute As Action(Of Object)
|
||||
Private ReadOnly _canExecute As Predicate(Of Object)
|
||||
|
||||
#End Region ' Fields
|
||||
|
||||
#Region "Constructors"
|
||||
|
||||
''' <summary>
|
||||
''' Creates a new command that can always execute.
|
||||
''' </summary>
|
||||
''' <param name="execute">The execution logic.</param>
|
||||
Public Sub New(ByVal execute As Action(Of Object))
|
||||
Me.New(execute, Nothing)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Creates a new command.
|
||||
''' </summary>
|
||||
''' <param name="execute">The execution logic.</param>
|
||||
''' <param name="canExecute">The execution status logic.</param>
|
||||
Public Sub New(ByVal execute As Action(Of Object), ByVal canExecute As Predicate(Of Object))
|
||||
If execute Is Nothing Then
|
||||
Throw New ArgumentNullException("execute")
|
||||
End If
|
||||
|
||||
_execute = execute
|
||||
_canExecute = canExecute
|
||||
End Sub
|
||||
|
||||
#End Region ' Constructors
|
||||
|
||||
#Region "ICommand Members"
|
||||
|
||||
<DebuggerStepThrough> _
|
||||
Public Function CanExecute(ByVal parameter As Object) As Boolean Implements ICommand.CanExecute
|
||||
Return If(_canExecute Is Nothing, True, _canExecute(parameter))
|
||||
End Function
|
||||
|
||||
Public Custom Event CanExecuteChanged As EventHandler Implements ICommand.CanExecuteChanged
|
||||
AddHandler(ByVal value As EventHandler)
|
||||
AddHandler CommandManager.RequerySuggested, value
|
||||
End AddHandler
|
||||
RemoveHandler(ByVal value As EventHandler)
|
||||
RemoveHandler CommandManager.RequerySuggested, value
|
||||
End RemoveHandler
|
||||
RaiseEvent(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
||||
End RaiseEvent
|
||||
End Event
|
||||
|
||||
Public Sub Execute(ByVal parameter As Object) Implements ICommand.Execute
|
||||
_execute(parameter)
|
||||
End Sub
|
||||
|
||||
#End Region ' ICommand Members
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@@ -0,0 +1,190 @@
|
||||
'----------------------------------------------------------------------------
|
||||
' EgalTech 2015-2015
|
||||
'----------------------------------------------------------------------------
|
||||
' File : ConstGen.vb Data : 12.02.15 Versione : 1.6b3
|
||||
' Contenuto : Modulo costanti generali.
|
||||
'
|
||||
'
|
||||
'
|
||||
' Modifiche : 12.02.15 DS Creazione modulo.
|
||||
'
|
||||
'
|
||||
'----------------------------------------------------------------------------
|
||||
Imports EgtUILib
|
||||
|
||||
Module ConstGen
|
||||
|
||||
' File con direttorio radice dei dati
|
||||
Public Const DAT_FILE_NAME As String = "DataRoot.Ini"
|
||||
Public Const S_DATA As String = "Data"
|
||||
Public Const K_DATAROOT As String = "DataRoot"
|
||||
|
||||
' File con dati di licenza
|
||||
Public Const LIC_FILE_NAME As String = "EgtCAM5.lic"
|
||||
Public Const S_LICENCE As String = "Licence"
|
||||
Public Const K_KEY As String = "Key"
|
||||
|
||||
' File di log generale
|
||||
Public Const GENLOG_FILE_NAME As String = "EgtCAM5Log.txt"
|
||||
' File di log dei comandi
|
||||
Public Const CMDLOG_FILE_NAME As String = "EgtCAM5Log.tua"
|
||||
|
||||
' Sottodirettorio di configurazione
|
||||
Public Const CONF_DIR As String = "Config"
|
||||
' Sottodirettorio delle risorse
|
||||
Public Const RES_DIR As String = "Resources"
|
||||
' Sottodirettorio temporaneo
|
||||
Public Const TEMP_DIR As String = "Temp"
|
||||
' Sottodirettorio per Cam automatico
|
||||
Public Const CAMAUTO_DIR As String = "CamAuto"
|
||||
' Sottodirettorio per Csv automatico
|
||||
Public Const CSVAUTO_DIR As String = "CsvAuto"
|
||||
' Sottodirettorio per file Cnc
|
||||
Public Const CNC_DIR As String = "CNC"
|
||||
' Sottodirettorio di default per il salvataggio
|
||||
Public Const SAVE_DFL_DIR As String = "Data"
|
||||
' Sottodirettorio di default per il salvataggio con nome
|
||||
Public Const SAVE_DFL_NAMEDIR As String = "MyProjects"
|
||||
' Sottodirettorio di default per le macchine
|
||||
Public Const MACHINES_DFL_DIR As String = "Machines"
|
||||
' Sottodirettorio con le dime salvate
|
||||
Public Const TEMPLATE_DFL_DIR As String = "CopyTemplate"
|
||||
|
||||
' Delta Z sovratavola per evitare problemi di visualizzazione texture
|
||||
Public Const DELTAZ_ADDTAB As Double = 0.1
|
||||
|
||||
' Nome testa con ventose per spostamento pezzi
|
||||
Public Const VACUUM_HEAD As String = "H4"
|
||||
' Nome gruppo layout in testa con ventose
|
||||
Public Const VACUUM_HEAD_LAYOUT As String = "LAYOUT"
|
||||
' Nome oggetto frame prima uscita di una testa
|
||||
Public Const HEAD_FIRST_EXIT As String = "_T1"
|
||||
|
||||
' Costanti per lavorazioni
|
||||
Public Const MACH_GROUP As String = "Mach01"
|
||||
Public Const MAIN_TAB As String = "MainTab"
|
||||
Public Const SECOND_TAB As String = "2ndTab"
|
||||
Public Const PHOTO_GRP As String = "Photos"
|
||||
Public Const PHOTO_NAME As String = "Raw"
|
||||
|
||||
' Nome della superficie del grezzo
|
||||
Public Const NAME_RAW_SOLID As String = "RawSolid"
|
||||
' Nome del centro del grezzo
|
||||
Public Const NAME_RAW_CENTER As String = "RawCenter"
|
||||
' Nome del contorno di kerf nel grezzo
|
||||
Public Const NAME_KERF As String = "Kerf"
|
||||
' Chiave per info di kerf nel grezzo
|
||||
Public Const KEY_KERF As String = "Kerf"
|
||||
' Nome del contorno del grezzo
|
||||
Public Const NAME_RAW_OUTLINE As String = "RawOutline"
|
||||
' Nome della regione del kerf grezzo
|
||||
Public Const NAME_KERF_REGION As String = "KerfRegion"
|
||||
' Nome della regione fuori kerf nel grezzo
|
||||
Public Const NAME_OUTKERF As String = "SheetOut"
|
||||
' Chiave per definizione del grezzo per punti
|
||||
Public Const KEY_RAWBYPOINTS As String = "Rbp"
|
||||
' Nome del contorno di un'area rovinata
|
||||
Public Const NAME_DAMAGED As String = "Damaged"
|
||||
' Nome della regione di un'area rovinata
|
||||
Public Const NAME_DAMAGED_REG As String = "DmgReg"
|
||||
|
||||
' Contrassegno di progetto OmagCut
|
||||
Public Const NAME_PROJMARK As String = "OmagCut"
|
||||
' Info per stato flag taglio ridotto
|
||||
Public Const INFO_REDUCEDCUT = "ReducedCut"
|
||||
' Info per lavorazioni già ordinate
|
||||
Public Const INFO_MACHORDER As String = "MachOrder"
|
||||
' Info per indice progetto
|
||||
Public Const INFO_PROJINDEX As String = "ProjIndex"
|
||||
|
||||
' Nome layer delle regioni
|
||||
Public Const NAME_REGION As String = "Region"
|
||||
' Delta Z regioni di pezzi per evitare problemi di visualizzazione con grezzi
|
||||
Public Const DELTAZ_REG As Double = 0.1
|
||||
' Nome layer contorni esterni
|
||||
Public Const NAME_OUTLOOP As String = "OutLoop"
|
||||
' Nome layer contorni interni
|
||||
Public Const NAME_INLOOP As String = "InLoop"
|
||||
' Nome layer percorsi sul pezzo
|
||||
Public Const NAME_ONPATH As String = "OnPath"
|
||||
' Nome layer preview
|
||||
Public Const NAME_PREVIEW As String = "PV"
|
||||
' Info in entità da tagliare per affondamento
|
||||
Public Const INFO_DEPTH As String = "Depth"
|
||||
' Info in entità da tagliare per angolo di lato
|
||||
Public Const INFO_SIDE_ANGLE As String = "SideAng"
|
||||
' Info in entità da tagliare per abilitare possibilità di inversione
|
||||
Public Const INFO_ENABLE_INVERT As String = "EnInv"
|
||||
' Info in preview lavorazione con identificativo layer preview spostato nel pezzo
|
||||
Public Const INFO_PV_ONPART_ID As String = "PvId"
|
||||
' Info in lavorazione con identificativo lavorazioni inglobate
|
||||
Public Const INFO_MCH_OTHMID As String = "OthMIds"
|
||||
' Info lavorazione disabilitata dall'utente
|
||||
Public Const INFO_MCH_USER_OFF As String = "UserOff"
|
||||
' Nome contorno taglio
|
||||
Public Const NAME_PV_CUT As String = "CUT"
|
||||
' Nome contorno pre-taglio
|
||||
Public Const NAME_PV_PRECUT As String = "PRC"
|
||||
' Nome contorno post-taglio
|
||||
Public Const NAME_PV_POSTCUT As String = "POC"
|
||||
' Nome contorno in basso taglio
|
||||
Public Const NAME_PV_DOWN_CUT As String = "DCUT"
|
||||
' Nome contorno in basso pre-taglio
|
||||
Public Const NAME_PV_DOWN_PRECUT As String = "DPRC"
|
||||
' Nome contorno in basso post-taglio
|
||||
Public Const NAME_PV_DOWN_POSTCUT As String = "DPOC"
|
||||
' Info in lavorazione taglio per attacco originale
|
||||
Public Const INFO_MCH_ORILEADIN As String = "OriLI"
|
||||
' Info in lavorazione taglio per uscita originale
|
||||
Public Const INFO_MCH_ORILEADOUT As String = "OriLO"
|
||||
' Info in pezzo con path di Csv di provenienza
|
||||
Public Const INFO_CSV_PATH As String = "CsvPath"
|
||||
' Info in pezzo con suo nome in Csv
|
||||
Public Const INFO_CSV_PART As String = "CsvPart"
|
||||
|
||||
' Nome di pezzo che è una cornice
|
||||
Public Const NAME_FRAME As String = "Frame"
|
||||
' Nome del layer con la sezione della cornice
|
||||
Public Const NAME_SECT As String = "Sect"
|
||||
' Nome del layer con la linea guida della cornice
|
||||
Public Const NAME_GUIDE As String = "Guide"
|
||||
' Nome del layer con la superficie della cornice
|
||||
Public Const NAME_SURF As String = "Surf"
|
||||
' Info con direzione della cornice (0=lungoX,1=lungoY)
|
||||
Public Const INFO_FRAME_DIR As String = "Dir"
|
||||
' Nome della lavorazione di sgrossatura cornici
|
||||
Public Const NAME_FRAME_SAWROU As String = "FrameSawRou"
|
||||
' Nome della lavorazione di finitura cornici
|
||||
Public Const NAME_FRAME_SAWFIN As String = "FrameSawFin"
|
||||
' Nome della lavorazione di spatolatura cornici
|
||||
Public Const NAME_FRAME_SAWSIDEFIN As String = "FrameSawSideFin"
|
||||
|
||||
' Nome di pezzo temporaneo che serve per copia dime
|
||||
Public Const NAME_COPYTEMPLATE As String = "CopyTemplate"
|
||||
|
||||
' Costante per flag di BBox
|
||||
Public Const BBFLAG As Integer = GDB_BB.ONLY_VISIBLE + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM
|
||||
|
||||
' Colori per lavorazioni
|
||||
Public Function COL_MCH_CUT() As Color3d
|
||||
Return New Color3d(0, 255, 0)
|
||||
End Function
|
||||
Public Function COL_MCH_DISABLED() As Color3d
|
||||
Return New Color3d(192, 192, 192)
|
||||
End Function
|
||||
Public Function COL_MCH_DIS_INTERF() As Color3d
|
||||
Return New Color3d(255, 128, 128)
|
||||
End Function
|
||||
Public Function COL_MCH_FREE() As Color3d
|
||||
Return New Color3d(0, 0, 255)
|
||||
End Function
|
||||
Public Function COL_MCH_INTERF() As Color3d
|
||||
Return New Color3d(255, 0, 0)
|
||||
End Function
|
||||
|
||||
' Colore superficie di cornice
|
||||
Public Function COL_FRAME() As Color3d
|
||||
Return New Color3d(128, 192, 96)
|
||||
End Function
|
||||
|
||||
End Module
|
||||
@@ -0,0 +1,93 @@
|
||||
'----------------------------------------------------------------------------
|
||||
' EgalTech 2015-2015
|
||||
'----------------------------------------------------------------------------
|
||||
' File : ConstIni.vb Data : 12.02.15 Versione : 1.6b3
|
||||
' Contenuto : Modulo costanti sezione e chiavi per file Ini.
|
||||
'
|
||||
'
|
||||
'
|
||||
' Modifiche : 12.02.15 DS Creazione modulo.
|
||||
'
|
||||
'
|
||||
'----------------------------------------------------------------------------
|
||||
|
||||
Module ConstIni
|
||||
|
||||
Public Const INI_FILE_NAME As String = "EgtCAM5.ini"
|
||||
|
||||
Public Const S_GENERAL As String = "General"
|
||||
Public Const K_DEBUG As String = "Debug"
|
||||
Public Const K_LICENCE As String = "Licence"
|
||||
Public Const K_USERLEVEL As String = "UserLevel"
|
||||
Public Const K_MAXINST As String = "MaxInstances"
|
||||
Public Const K_INSTANCES As String = "Instances"
|
||||
Public Const K_COMMANDLOG As String = "CommandLog"
|
||||
Public Const K_MESSAGESDIR As String = "MessagesDir"
|
||||
Public Const K_MESSAGES As String = "Messages"
|
||||
Public Const K_WINPLACE As String = "WinPlace"
|
||||
Public Const K_LASTNGEDIR As String = "LastNgeDir"
|
||||
Public Const K_LASTNGEOBJDIR As String = "LastNgeObjDir"
|
||||
Public Const K_LASTLUADIR As String = "LastLuaDir"
|
||||
Public Const K_LASTIMPDIR As String = "LastImpDir"
|
||||
Public Const K_LASTEXPDIR As String = "LastExpDir"
|
||||
|
||||
Public Const S_LUA As String = "Lua"
|
||||
Public Const K_LIBSDIR As String = "LibsDir"
|
||||
Public Const K_BASELIB As String = "BaseLib"
|
||||
|
||||
Public Const S_GEOMDB As String = "GeomDB"
|
||||
Public Const K_DEFAULTFONT As String = "DefaultFont"
|
||||
Public Const K_NFEFONTDIR As String = "NfeFontDir"
|
||||
Public Const K_DEFAULTCOLOR As String = "DefaultColor"
|
||||
Public Const K_SAVETYPE As String = "SaveType"
|
||||
|
||||
Public Const S_OPENGL As String = "OpenGL"
|
||||
Public Const K_DOUBLEBUFFER As String = "DoubleBuffer"
|
||||
Public Const K_COLORBITS As String = "ColorBits"
|
||||
Public Const K_DEPTHBITS As String = "DepthBits"
|
||||
Public Const K_DRIVER As String = "Driver"
|
||||
|
||||
Public Const S_SCENE As String = "Scene"
|
||||
Public Const K_BACKTOP As String = "BackTop"
|
||||
Public Const K_BACKBOTTOM As String = "BackBottom"
|
||||
Public Const K_SHOWGFRAME As String = "ShowGFrame"
|
||||
Public Const K_MARK As String = "Mark"
|
||||
Public Const K_SELSURF As String = "SelSurf"
|
||||
Public Const K_SHOWMODE As String = "ShowMode"
|
||||
Public Const K_CURVEDIR As String = "CurveDir"
|
||||
Public Const K_SHOWTRIAADV As String = "ShowTriaAdv"
|
||||
Public Const K_ZOOMWIN As String = "ZoomWin"
|
||||
Public Const K_DISTLINE As String = "DistLine"
|
||||
Public Const K_MMUNITS As String = "MmUnits"
|
||||
|
||||
Public Const S_GRID As String = "Grid"
|
||||
Public Const K_SHOWGRID As String = "ShowGrid"
|
||||
Public Const K_SHOWFRAME As String = "ShowFrame"
|
||||
Public Const K_SNAPSTEP As String = "SnapStep"
|
||||
Public Const K_SNAPSTEPINCH As String = "SnapStepInch"
|
||||
Public Const K_MINLINESSTEP As String = "MinLineSStep"
|
||||
Public Const K_MAJLINESSTEP As String = "MajLineSStep"
|
||||
Public Const K_EXTSSTEP As String = "ExtSStep"
|
||||
Public Const K_MINLNCOLOR As String = "MinLnColor"
|
||||
Public Const K_MAJLNCOLOR As String = "MajLnColor"
|
||||
|
||||
Public Const S_TABSPECIAL As String = "TabSpecial"
|
||||
Public Const K_TSSHOW As String = "Show"
|
||||
|
||||
Public Const S_COMPO As String = "Compo"
|
||||
Public Const K_CMPWINPLACE As String = "WinPlace"
|
||||
Public Const K_COMPODIR As String = "CompoDir"
|
||||
|
||||
Public Const S_FLATPARTS As String = "FlatParts"
|
||||
Public Const K_FLPWINPLACE As String = "WinPlace"
|
||||
Public Const K_FLPCURRDIR As String = "CurrDir"
|
||||
|
||||
Public Const S_MACH As String = "Mach"
|
||||
Public Const K_MACHINESDIR As String = "MachinesDir"
|
||||
Public Const K_TOOLMAKERSDIR As String = "ToolMakersDir"
|
||||
|
||||
Public Const S_MRUFILES As String = "MruFiles"
|
||||
Public Const S_MRUSCRIPTS As String = "MruScripts"
|
||||
Public Const K_FILE As String = "File"
|
||||
|
||||
End Module
|
||||
@@ -0,0 +1,38 @@
|
||||
Module ConstMachIni
|
||||
|
||||
Public Const S_TOOLS As String = "Tools"
|
||||
Public Const K_DRILLBIT As String = "Drillbit"
|
||||
Public Const K_SAWBLADE As String = "Sawblade"
|
||||
Public Const K_MILL As String = "Mill"
|
||||
Public Const K_MORTISE As String = "Mortise"
|
||||
Public Const K_COMPO As String = "Compo"
|
||||
Public Const K_SHOWTOOLCHANGER As String = "ShowToolChanger"
|
||||
Public Const K_SHOWHEADEXIT As String = "ShowHeadExit"
|
||||
Public Const K_DRILLHOLDER As String = "DrillHolder"
|
||||
Public Const K_SAWBLADEHOLDER As String = "SawBladeHolder"
|
||||
Public Const K_MILLHOLDER As String = "MillHolder"
|
||||
Public Const K_DRILLMAKER As String = "DrillMaker"
|
||||
Public Const K_SAWBLADEMAKER As String = "SawBladeMaker"
|
||||
Public Const K_MILLMAKER As String = "MillMaker"
|
||||
Public Const K_MOUNTEDTOOLCONFIG As String = "MountedToolConfig"
|
||||
|
||||
Public Const S_TOOLHOLDER As String = "ToolHolder"
|
||||
|
||||
Public Const S_MACHININGS As String = "Machinings"
|
||||
Public Const K_SAWING As String = "Sawing"
|
||||
Public Const K_DRILLING As String = "Drilling"
|
||||
Public Const K_MILLING As String = "Milling"
|
||||
Public Const K_POCKETING As String = "Pocketing"
|
||||
Public Const K_MORTISING As String = "Mortising"
|
||||
Public Const K_SAWROUGHING As String = "SawRoughing"
|
||||
Public Const K_SAWFINISHING As String = "SawFinishing"
|
||||
|
||||
Public Const S_TOOLCHANGER As String = "ToolChanger"
|
||||
Public Const K_NUMBER As String = "Number"
|
||||
Public Const K_POS As String = "Pos"
|
||||
Public Const K_NAME As String = "Name"
|
||||
Public Const K_MANUALNUMBER As String = "ManualNumber"
|
||||
Public Const K_MANUALPOS As String = "ManualPos"
|
||||
Public Const K_MANUALNAME As String = "ManualName"
|
||||
|
||||
End Module
|
||||
@@ -0,0 +1,33 @@
|
||||
Module ConstMsg
|
||||
|
||||
'Public Const MSG_MISSINGKEYWD As Integer = 10100
|
||||
'Public Const MSG_NUMERICKEYBOARDWD As Integer = 10200
|
||||
|
||||
Public Const MSG_EGTCAM5 As Integer = 5000
|
||||
Public Const MSG_MAINWINDOW As Integer = MSG_EGTCAM5
|
||||
Public Const MSG_TOOLSDBPAGE As Integer = MSG_EGTCAM5 + 1000
|
||||
Public Const MSG_MACHININGSDBPAGE As Integer = MSG_EGTCAM5 + 1100
|
||||
'Public Const MSG_MANUALAXESMOVEPAGEUC As Integer = MSG_OMAGCUT + 220
|
||||
'Public Const MSG_CADCUTPAGEUC As Integer = MSG_OMAGCUT + 300
|
||||
'Public Const MSG_NESTPAGEUC As Integer = MSG_OMAGCUT + 330
|
||||
'Public Const MSG_SPLITPAGEUC As Integer = MSG_OMAGCUT + 340
|
||||
'Public Const MSG_MOVERAWPAGEUC As Integer = MSG_OMAGCUT + 360
|
||||
'Public Const MSG_DRAWPAGEUC As Integer = MSG_OMAGCUT + 380
|
||||
'Public Const MSG_COMPONENTPAGEUC As Integer = MSG_OMAGCUT + 400
|
||||
'Public Const MSG_IMPORTPAGEUC As Integer = MSG_OMAGCUT + 450
|
||||
'Public Const MSG_OPENPAGEUC As Integer = MSG_OMAGCUT + 490
|
||||
'Public Const MSG_RAWPARTPAGEUC As Integer = MSG_OMAGCUT + 500
|
||||
'Public Const MSG_CHOOSEMACHININGPAGEUC As Integer = MSG_OMAGCUT + 535
|
||||
'Public Const MSG_SIMULATIONPAGEUC As Integer = MSG_OMAGCUT + 550
|
||||
'Public Const MSG_FRAMECUTPAGEUC As Integer = MSG_OMAGCUT + 600
|
||||
'Public Const MSG_MACHINEPAGEUC As Integer = MSG_OMAGCUT + 700
|
||||
'Public Const MSG_TOOLSDBPAGEUC As Integer = MSG_OMAGCUT + 720
|
||||
'Public Const MSG_MACHININGSDBPAGEUC As Integer = MSG_OMAGCUT + 760
|
||||
'Public Const MSG_COMBOBOXPARAM As Integer = MSG_OMAGCUT + 800
|
||||
'Public Const MSG_ALARMSPAGEUC As Integer = MSG_OMAGCUT + 900
|
||||
'Public Const MSG_MACHINECNPAGEUC As Integer = MSG_OMAGCUT + 930
|
||||
'Public Const MSG_OPTIONSPAGEUC As Integer = MSG_OMAGCUT + 950
|
||||
'Public Const MSG_EGTMSGBOX As Integer = MSG_OMAGCUT + 1100
|
||||
'Public Const MSG_CSVPAGEUC As Integer = MSG_OMAGCUT + 1200
|
||||
|
||||
End Module
|
||||
@@ -0,0 +1,28 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.40629.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EgtCAM5", "EgtCAM5.vbproj", "{D8543E3E-F5E1-44F3-813C-94E3A91677BC}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Debug|x64.Build.0 = Debug|x64
|
||||
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Debug|x86.Build.0 = Debug|x86
|
||||
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Release|x64.ActiveCfg = Release|x64
|
||||
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Release|x64.Build.0 = Release|x64
|
||||
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Release|x86.ActiveCfg = Release|x86
|
||||
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Release|x86.Build.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,364 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{D8543E3E-F5E1-44F3-813C-94E3A91677BC}</ProjectGuid>
|
||||
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>EgtCAM5</RootNamespace>
|
||||
<AssemblyName>EgtCAM5</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<MyType>Custom</MyType>
|
||||
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionExplicit>On</OptionExplicit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionCompare>Text</OptionCompare>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionStrict>Off</OptionStrict>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionInfer>On</OptionInfer>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DocumentationFile>EgtCAM5.xml</DocumentationFile>
|
||||
<NoWarn>
|
||||
</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<DocumentationFile>EgtCAM5.xml</DocumentationFile>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>
|
||||
</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DocumentationFile>EgtCAM5.xml</DocumentationFile>
|
||||
<NoWarn>
|
||||
</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DocumentationFile>EgtCAM5.xml</DocumentationFile>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>
|
||||
</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="EgtUILib">
|
||||
<HintPath>..\..\EgtProg\DllD32\EgtUILib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EgtWPFLib5">
|
||||
<HintPath>..\EgtWPFLib5\bin\Debug\EgtWPFLib5.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Xaml">
|
||||
<RequiredTargetFramework>4.0</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="UIAutomationProvider" />
|
||||
<Reference Include="WindowsBase" />
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="WindowsFormsIntegration" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ApplicationDefinition Include="Application.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</ApplicationDefinition>
|
||||
<Compile Include="AttachedBehaviours\InputBindingsManager.vb" />
|
||||
<Compile Include="Base\BaseWindow\BaseWindowView.xaml.vb">
|
||||
<DependentUpon>BaseWindowView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Base\TabViewModel.vb" />
|
||||
<Compile Include="Base\TreeView\TreeViewItemBase.vb" />
|
||||
<Compile Include="Base\ViewModelBase.vb" />
|
||||
<Compile Include="Command\RelayCommand.vb" />
|
||||
<Compile Include="Constants\ConstGen.vb" />
|
||||
<Compile Include="Constants\ConstIni.vb" />
|
||||
<Compile Include="Constants\ConstMachIni.vb" />
|
||||
<Compile Include="Constants\ConstMsg.vb" />
|
||||
<Compile Include="EgtCAM5Params.vb" />
|
||||
<Compile Include="MachiningsDbPage\MachiningsDbView.xaml.vb">
|
||||
<DependentUpon>MachiningsDbView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MachiningsDbPage\MachiningsDbViewModel.vb" />
|
||||
<Compile Include="MachiningsDbPage\MachiningTreeView.vb" />
|
||||
<Compile Include="MainWindow\MainWindowViewModel.vb" />
|
||||
<Compile Include="Messenger.vb" />
|
||||
<Compile Include="ProjectPage\DrawPanel\DrawPanelView.xaml.vb">
|
||||
<DependentUpon>DrawPanelView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ProjectPage\DrawPanel\DrawPanelViewModel.vb" />
|
||||
<Compile Include="ProjectPage\GridViewPanel\GridViewPanelView.xaml.vb">
|
||||
<DependentUpon>GridViewPanelView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ProjectPage\GridViewPanel\GridViewPanelViewModel.vb" />
|
||||
<Compile Include="IniFile.vb" />
|
||||
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\DrawOptionPanelView.xaml.vb">
|
||||
<DependentUpon>DrawOptionPanelView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\DrawOptionPanelViewModel.vb" />
|
||||
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\InfoExpander\InfoExpanderView.xaml.vb">
|
||||
<DependentUpon>InfoExpanderView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\InfoExpander\InfoExpanderViewModel.vb" />
|
||||
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\InputExpander\InputExpanderView.xaml.vb">
|
||||
<DependentUpon>InputExpanderView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\InputExpander\InputExpanderViewModel.vb" />
|
||||
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\ManageLayerExpander\ManageLayerExpanderView.xaml.vb">
|
||||
<DependentUpon>ManageLayerExpanderView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\ManageLayerExpander\ManageLayerExpanderViewModel.vb" />
|
||||
<Compile Include="ProjectPage\ProjectView.xaml.vb">
|
||||
<DependentUpon>ProjectView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ProjectPage\ProjectViewModel.vb" />
|
||||
<Compile Include="StatusBar\StatusBarView.xaml.vb">
|
||||
<DependentUpon>StatusBarView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="StatusBar\StatusBarViewModel.vb" />
|
||||
<Compile Include="SharedFieldsClass.vb" />
|
||||
<Compile Include="ToolsDbPage\ToolsDbView.xaml.vb">
|
||||
<DependentUpon>ToolsDbView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ToolsDbPage\ToolsDbViewModel.vb" />
|
||||
<Compile Include="ToolsDbPage\ToolTreeView.vb" />
|
||||
<Compile Include="Utility.vb" />
|
||||
<Page Include="Base\BaseWindow\BaseWindowView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="MachiningsDbPage\MachiningsDbView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="MainWindow\MainWindow.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Compile Include="Application.xaml.vb">
|
||||
<DependentUpon>Application.xaml</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainWindow\MainWindow.xaml.vb">
|
||||
<DependentUpon>MainWindow.xaml</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Page Include="EgtCAM5Resources.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="ProjectPage\DrawPanel\DrawPanelView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="ProjectPage\GridViewPanel\GridViewPanelView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="ProjectPage\OptionPanel\DrawOptionPanel\DrawOptionPanelView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="ProjectPage\OptionPanel\DrawOptionPanel\InfoExpander\InfoExpanderView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="ProjectPage\OptionPanel\DrawOptionPanel\InputExpander\InputExpanderView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="ProjectPage\OptionPanel\DrawOptionPanel\ManageLayerExpander\ManageLayerExpanderView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="ProjectPage\ProjectView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="StatusBar\StatusBarView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="ToolsDbPage\ToolsDbView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Import Include="System.Linq" />
|
||||
<Import Include="System.Xml.Linq" />
|
||||
<Import Include="Microsoft.VisualBasic" />
|
||||
<Import Include="System" />
|
||||
<Import Include="System.Collections" />
|
||||
<Import Include="System.Collections.Generic" />
|
||||
<Import Include="System.Diagnostics" />
|
||||
<Import Include="System.Windows" />
|
||||
<Import Include="System.Windows.Controls" />
|
||||
<Import Include="System.Windows.Data" />
|
||||
<Import Include="System.Windows.Documents" />
|
||||
<Import Include="System.Windows.Input" />
|
||||
<Import Include="System.Windows.Shapes" />
|
||||
<Import Include="System.Windows.Media" />
|
||||
<Import Include="System.Windows.Media.Imaging" />
|
||||
<Import Include="System.Windows.Navigation" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="My Project\AssemblyInfo.vb">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="My Project\MyExtensions\MyWpfExtension.vb">
|
||||
<VBMyExtensionTemplateID>Microsoft.VisualBasic.WPF.MyExtension</VBMyExtensionTemplateID>
|
||||
<VBMyExtensionTemplateVersion>1.0.0.0</VBMyExtensionTemplateVersion>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Resources.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Settings.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="My Project\Resources.resx">
|
||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
</EmbeddedResource>
|
||||
<None Include="app.config" />
|
||||
<None Include="My Project\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<AppDesigner Include="My Project\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Internals\" />
|
||||
<Folder Include="ProjectPage\OptionPanel\MachiningOptionPanel\" />
|
||||
<Folder Include="Resources\OptionPanel\DrawOptionPanel\" />
|
||||
<Folder Include="Resources\OptionPanel\MachiningOptionPanel\" />
|
||||
<Folder Include="Resources\ProjectPage\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\DrawPanel\Arc3P.png" />
|
||||
<Resource Include="Resources\DrawPanel\ArcCSE.png" />
|
||||
<Resource Include="Resources\DrawPanel\ArcPDP.png" />
|
||||
<Resource Include="Resources\DrawPanel\BreakCurve.png" />
|
||||
<Resource Include="Resources\DrawPanel\ChangeColor.png" />
|
||||
<Resource Include="Resources\DrawPanel\ChangeLayer.png" />
|
||||
<Resource Include="Resources\DrawPanel\ChangeStart.png" />
|
||||
<Resource Include="Resources\DrawPanel\Circle.png" />
|
||||
<Resource Include="Resources\DrawPanel\Delete.png" />
|
||||
<Resource Include="Resources\DrawPanel\ExplodeCurve.png" />
|
||||
<Resource Include="Resources\DrawPanel\ExplodeSurf.png" />
|
||||
<Resource Include="Resources\DrawPanel\ExtendCurve.png" />
|
||||
<Resource Include="Resources\DrawPanel\Extrude.png" />
|
||||
<Resource Include="Resources\DrawPanel\Fillet.png" />
|
||||
<Resource Include="Resources\DrawPanel\InvertCurve.png" />
|
||||
<Resource Include="Resources\DrawPanel\InvertSurf.png" />
|
||||
<Resource Include="Resources\DrawPanel\JoinCurve.png" />
|
||||
<Resource Include="Resources\DrawPanel\Line2P.png" />
|
||||
<Resource Include="Resources\DrawPanel\LinePDL.png" />
|
||||
<Resource Include="Resources\DrawPanel\MergeSurf.png" />
|
||||
<Resource Include="Resources\DrawPanel\Mirror.png" />
|
||||
<Resource Include="Resources\DrawPanel\Move.png" />
|
||||
<Resource Include="Resources\DrawPanel\Offset.png" />
|
||||
<Resource Include="Resources\DrawPanel\Plane.png" />
|
||||
<Resource Include="Resources\DrawPanel\Point.png" />
|
||||
<Resource Include="Resources\DrawPanel\Polygon.png" />
|
||||
<Resource Include="Resources\DrawPanel\Rectangle2P.png" />
|
||||
<Resource Include="Resources\DrawPanel\Revolve.png" />
|
||||
<Resource Include="Resources\DrawPanel\Rotate.png" />
|
||||
<Resource Include="Resources\DrawPanel\Ruled.png" />
|
||||
<Resource Include="Resources\DrawPanel\Scale.png" />
|
||||
<Resource Include="Resources\DrawPanel\Screw.png" />
|
||||
<Resource Include="Resources\DrawPanel\Text.png" />
|
||||
<Resource Include="Resources\DrawPanel\ThickCurve.png" />
|
||||
<Resource Include="Resources\GridViewPanel\Analyze.png" />
|
||||
<Resource Include="Resources\GridViewPanel\CurveDir.png" />
|
||||
<Resource Include="Resources\GridViewPanel\GetDist.png" />
|
||||
<Resource Include="Resources\GridViewPanel\LookFromGrid.png" />
|
||||
<Resource Include="Resources\GridViewPanel\LookFromISO_SO.png" />
|
||||
<Resource Include="Resources\GridViewPanel\ZoomAll.png" />
|
||||
<Resource Include="Resources\GridViewPanel\ZoomIn.png" />
|
||||
<Resource Include="Resources\GridViewPanel\ZoomOut.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\GridViewPanel\Cplane3POINTS.png" />
|
||||
<Resource Include="Resources\GridViewPanel\CplaneBACK.png" />
|
||||
<Resource Include="Resources\GridViewPanel\CplaneBOTTOM.png" />
|
||||
<Resource Include="Resources\GridViewPanel\CplaneELEVATION.png" />
|
||||
<Resource Include="Resources\GridViewPanel\CplaneFRONT.png" />
|
||||
<Resource Include="Resources\GridViewPanel\CplaneLEFT.png" />
|
||||
<Resource Include="Resources\GridViewPanel\CplaneOBJECT.png" />
|
||||
<Resource Include="Resources\GridViewPanel\CplaneORIGIN.png" />
|
||||
<Resource Include="Resources\GridViewPanel\CplanePERPCURVE.png" />
|
||||
<Resource Include="Resources\GridViewPanel\CplaneRIGHT.png" />
|
||||
<Resource Include="Resources\GridViewPanel\CplaneROTATE.png" />
|
||||
<Resource Include="Resources\GridViewPanel\CplaneTOP.png" />
|
||||
<Resource Include="Resources\GridViewPanel\CplaneView.png" />
|
||||
<Resource Include="Resources\GridViewPanel\LookFromBACK.png" />
|
||||
<Resource Include="Resources\GridViewPanel\LookFromBOTTOM.png" />
|
||||
<Resource Include="Resources\GridViewPanel\LookFromFRONT.png" />
|
||||
<Resource Include="Resources\GridViewPanel\LookFromISO_NE.png" />
|
||||
<Resource Include="Resources\GridViewPanel\LookFromISO_NW.png" />
|
||||
<Resource Include="Resources\GridViewPanel\LookFromISO_SE.png" />
|
||||
<Resource Include="Resources\GridViewPanel\LookFromISO_SW.png" />
|
||||
<Resource Include="Resources\GridViewPanel\LookFromLEFT.png" />
|
||||
<Resource Include="Resources\GridViewPanel\LookFromRIGHT.png" />
|
||||
<Resource Include="Resources\GridViewPanel\LookFromTOP.png" />
|
||||
<Resource Include="Resources\GridViewPanel\LookToCplane.png" />
|
||||
<Resource Include="Resources\GridViewPanel\RenderingHL.png" />
|
||||
<Resource Include="Resources\GridViewPanel\RenderingSH.png" />
|
||||
<Resource Include="Resources\GridViewPanel\RenderingWF.png" />
|
||||
<Resource Include="Resources\TreeView\Folder.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtCAM5\EgtCAM5R32.exe
|
||||
IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Debug" copy $(TargetPath) c:\EgtProg\EgtCAM5\EgtCAM5D32.exe
|
||||
IF "$(PlatformName)"=="x64" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtCAM5\EgtCAM5R64.exe
|
||||
IF "$(PlatformName)"=="x64" IF "$(ConfigurationName)" == "Debug" copy $(TargetPath) c:\EgtProg\EgtCAM5\EgtCAM5D64.exe</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,4 @@
|
||||
Module EgtCAM5Params
|
||||
|
||||
|
||||
End Module
|
||||
@@ -0,0 +1,155 @@
|
||||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="clr-namespace:EgtCAM5"
|
||||
xmlns:ViewModel="clr-namespace:EgtCAM5.EgtCAM5">
|
||||
|
||||
<!--
|
||||
This template applies a ProjectView to an instance
|
||||
of the ProjectViewModel class shown in the main window.
|
||||
-->
|
||||
<DataTemplate DataType="{x:Type ViewModel:ProjectViewModel}">
|
||||
<local:ProjectView />
|
||||
</DataTemplate>
|
||||
|
||||
<!--
|
||||
This template applies a ToolsDbView to an instance
|
||||
of the ToolsDbViewModel class shown in the main window.
|
||||
-->
|
||||
<DataTemplate DataType="{x:Type ViewModel:ToolsDbViewModel}">
|
||||
<local:ToolsDbView />
|
||||
</DataTemplate>
|
||||
|
||||
<!--
|
||||
This template applies a MachiningsDbView to an instance
|
||||
of the MachiningsDbViewModel class shown in the main window.
|
||||
-->
|
||||
<DataTemplate DataType="{x:Type ViewModel:MachiningsDbViewModel}">
|
||||
<local:MachiningsDbView />
|
||||
</DataTemplate>
|
||||
|
||||
<!--
|
||||
This template applies an GridViewPanelView to an instance
|
||||
of the GridViewPanelViewModel class shown in the ProjectPage.
|
||||
-->
|
||||
<DataTemplate DataType="{x:Type ViewModel:GridViewPanelViewModel}">
|
||||
<local:GridViewPanelView />
|
||||
</DataTemplate>
|
||||
|
||||
<!--
|
||||
This template applies an DrawPanelView to an instance
|
||||
of the DrawPanelViewModel class shown in the ProjectPage.
|
||||
-->
|
||||
<DataTemplate DataType="{x:Type ViewModel:DrawPanelViewModel}">
|
||||
<local:DrawPanelView />
|
||||
</DataTemplate>
|
||||
|
||||
<!--
|
||||
This template applies an DrawOptionPanelView to an instance
|
||||
of the DrawOptionPanelViewModel class shown in the ProjectPage.
|
||||
-->
|
||||
<DataTemplate DataType="{x:Type ViewModel:DrawOptionPanelViewModel}">
|
||||
<local:DrawOptionPanelView />
|
||||
</DataTemplate>
|
||||
|
||||
<!--
|
||||
This template applies an DrawOptionPanelView to an instance
|
||||
of the DrawOptionPanelViewModel class shown in the ProjectPage.
|
||||
-->
|
||||
<DataTemplate DataType="{x:Type ViewModel:InputExpanderViewModel}">
|
||||
<local:InputExpanderView />
|
||||
</DataTemplate>
|
||||
|
||||
<!--
|
||||
This template applies an StatusBarView to an instance
|
||||
of the StatusBarViewModel class shown in the main window.
|
||||
-->
|
||||
<DataTemplate DataType="{x:Type ViewModel:StatusBarViewModel}">
|
||||
<local:StatusBarView />
|
||||
</DataTemplate>
|
||||
|
||||
<!--Style for the EgtTabControl that permit to select new tab without cancel the older one--><!--
|
||||
<SolidColorBrush x:Key="TabControlNormalBorderBrush" Color="#8C8E94"/>
|
||||
<Style TargetType="{x:Type local:EgtTabControl}">
|
||||
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
|
||||
<Setter Property="Padding" Value="4,4,4,4"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource TabControlNormalBorderBrush}"/>
|
||||
<Setter Property="Background" Value="#F9F9F9"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type local:EgtTabControl}">
|
||||
<Grid ClipToBounds="true" SnapsToDevicePixels="true" KeyboardNavigation.TabNavigation="Local">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition x:Name="ColumnDefinition0"/>
|
||||
<ColumnDefinition x:Name="ColumnDefinition1" Width="0"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition x:Name="RowDefinition0" Height="Auto"/>
|
||||
<RowDefinition x:Name="RowDefinition1" Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<TabPanel x:Name="HeaderPanel" Grid.Column="0" IsItemsHost="true" Margin="2,2,2,0" Grid.Row="0" KeyboardNavigation.TabIndex="1" Panel.ZIndex="1"/>
|
||||
<Border x:Name="ContentPanel" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.Column="0" KeyboardNavigation.DirectionalNavigation="Contained" Grid.Row="1" KeyboardNavigation.TabIndex="2" KeyboardNavigation.TabNavigation="Local">
|
||||
<Grid x:Name="PART_ItemsHolder" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
|
||||
|
||||
--><!--<ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>--><!--
|
||||
|
||||
</Border>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="TabStripPlacement" Value="Bottom">
|
||||
<Setter Property="Grid.Row" TargetName="HeaderPanel" Value="1"/>
|
||||
<Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/>
|
||||
<Setter Property="Height" TargetName="RowDefinition0" Value="*"/>
|
||||
<Setter Property="Height" TargetName="RowDefinition1" Value="Auto"/>
|
||||
<Setter Property="Margin" TargetName="HeaderPanel" Value="2,0,2,2"/>
|
||||
</Trigger>
|
||||
<Trigger Property="TabStripPlacement" Value="Left">
|
||||
<Setter Property="Grid.Row" TargetName="HeaderPanel" Value="0"/>
|
||||
<Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/>
|
||||
<Setter Property="Grid.Column" TargetName="HeaderPanel" Value="0"/>
|
||||
<Setter Property="Grid.Column" TargetName="ContentPanel" Value="1"/>
|
||||
<Setter Property="Width" TargetName="ColumnDefinition0" Value="Auto"/>
|
||||
<Setter Property="Width" TargetName="ColumnDefinition1" Value="*"/>
|
||||
<Setter Property="Height" TargetName="RowDefinition0" Value="*"/>
|
||||
<Setter Property="Height" TargetName="RowDefinition1" Value="0"/>
|
||||
<Setter Property="Margin" TargetName="HeaderPanel" Value="2,2,0,2"/>
|
||||
</Trigger>
|
||||
<Trigger Property="TabStripPlacement" Value="Right">
|
||||
<Setter Property="Grid.Row" TargetName="HeaderPanel" Value="0"/>
|
||||
<Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/>
|
||||
<Setter Property="Grid.Column" TargetName="HeaderPanel" Value="1"/>
|
||||
<Setter Property="Grid.Column" TargetName="ContentPanel" Value="0"/>
|
||||
<Setter Property="Width" TargetName="ColumnDefinition0" Value="*"/>
|
||||
<Setter Property="Width" TargetName="ColumnDefinition1" Value="Auto"/>
|
||||
<Setter Property="Height" TargetName="RowDefinition0" Value="*"/>
|
||||
<Setter Property="Height" TargetName="RowDefinition1" Value="0"/>
|
||||
<Setter Property="Margin" TargetName="HeaderPanel" Value="0,2,2,2"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="false">
|
||||
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>-->
|
||||
|
||||
<!--GridViewPanel-->
|
||||
|
||||
<Style x:Key="EgtCAM5_Button" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
|
||||
<Setter Property="Height" Value="30"/>
|
||||
<Setter Property="Width" Value="30"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="EgtCAM5_ToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
|
||||
<Setter Property="Height" Value="30"/>
|
||||
<Setter Property="Width" Value="30"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="EgtCAM5_RadioButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource EgtCAM5_ToggleButton}">
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -0,0 +1,45 @@
|
||||
Imports EgtUILib
|
||||
|
||||
Module IniFile
|
||||
|
||||
' MainWindow Page
|
||||
Friend m_sIniFilePath As String
|
||||
Friend m_sMachinesRoot As String
|
||||
' Project Page
|
||||
Friend m_ProjectSceneContext As Integer
|
||||
' TOOLS DB PAGE
|
||||
Friend m_sDbsCurrMachIniFilePath As String 'IniFile della macchina correntemente selezionata nella pagina di Db selezionata (Tools o Machinings)
|
||||
Friend m_sTdbCurrMachToolsDirPath As String
|
||||
' Variabile che contiene la path della cartella che contiene i ToolMaker
|
||||
Friend m_sToolMakersDir As String = String.Empty
|
||||
' Variabile che contiene il contesto della scena presente nel database utensili
|
||||
Friend m_ToolsDbSceneContext As Integer
|
||||
|
||||
Public Function GetPrivateProfileInt(IpAppName As String, IpKeyName As String, nDefault As Integer) As Integer
|
||||
Return EgtUILib.GetPrivateProfileInt(IpAppName, IpKeyName, nDefault, m_sIniFilePath)
|
||||
End Function
|
||||
|
||||
Public Function GetPrivateProfileDouble(IpAppName As String, IpKeyName As String, nDefault As Integer) As Double
|
||||
Return EgtUILib.GetPrivateProfileDouble(IpAppName, IpKeyName, nDefault, m_sIniFilePath)
|
||||
End Function
|
||||
|
||||
Public Function GetPrivateProfileString(IpAppName As String, IpKeyName As String, IpDefault As String, ByRef IpString As String) As Integer
|
||||
Return EgtUILib.GetPrivateProfileString(IpAppName, IpKeyName, IpDefault, IpString, m_sIniFilePath)
|
||||
End Function
|
||||
|
||||
Public Function GetPrivateProfileColor(IpAppName As String, IpKeyName As String, ByRef Col As EgtUILib.EgtInterface.Color3d) As Boolean
|
||||
Return EgtUILib.GetPrivateProfileColor(IpAppName, IpKeyName, Col, m_sIniFilePath)
|
||||
End Function
|
||||
|
||||
Public Function GetPrivateProfileWinPos(IpAppName As String, IpKeyName As String, ByRef nFlag As Integer, ByRef nLeft As Integer, ByRef nTop As Integer, ByRef nWidth As Integer, ByRef nHeight As Integer) As Boolean
|
||||
Return EgtUILib.GetPrivateProfileWinPos(IpAppName, IpKeyName, nFlag, nLeft, nTop, nWidth, nHeight, m_sIniFilePath)
|
||||
End Function
|
||||
|
||||
Public Function GetPrivateProfileZoomWin(IpAppName As String, IpKeyName As String, ByRef bOutline As Boolean, ByRef Col As EgtUILib.EgtInterface.Color3d) As Boolean
|
||||
Return EgtUILib.GetPrivateProfileZoomWin(IpAppName, IpKeyName, bOutline, Col, m_sIniFilePath)
|
||||
End Function
|
||||
|
||||
Public Function WritePrivateProfileString(IpAppName As String, IpKeyName As String, ByRef IpString As String) As Boolean
|
||||
Return EgtUILib.WritePrivateProfileString(IpAppName, IpKeyName, IpString, m_sIniFilePath)
|
||||
End Function
|
||||
End Module
|
||||
@@ -0,0 +1,3 @@
|
||||
Public Class MachiningsDbView
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,641 @@
|
||||
Imports System.Windows.Forms.Integration
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.IO
|
||||
Imports EgtUILib
|
||||
|
||||
Namespace EgtCAM5
|
||||
|
||||
Public Class MachiningsDbViewModel
|
||||
Inherits TabViewModel
|
||||
|
||||
' Lista delle macchine disponibili nel programma
|
||||
Private m_MachinesList As New ObservableCollection(Of Machine)
|
||||
Public Property MachinesList As ObservableCollection(Of Machine)
|
||||
Get
|
||||
Return m_MachinesList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of Machine))
|
||||
m_MachinesList = value
|
||||
End Set
|
||||
End Property
|
||||
' Macchina correntemente selezionata e quindi attiva
|
||||
Private m_SelectedMachine As Machine
|
||||
Public Property SelectedMachine As Machine
|
||||
Get
|
||||
Return m_SelectedMachine
|
||||
End Get
|
||||
Set(value As Machine)
|
||||
If value IsNot m_SelectedMachine Then
|
||||
m_SelectedMachine = value
|
||||
'EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
|
||||
EgtSetCurrMachine(m_SelectedMachine.Name)
|
||||
IniFile.m_sDbsCurrMachIniFilePath = m_SelectedMachine.MachineDirPath & "\" & m_SelectedMachine.Name & ".ini"
|
||||
'IniFile.m_sTdbCurrMachToolsDirPath = m_SelectedMachine.MachineDirPath & "\Tools"
|
||||
m_MachiningsList.Clear()
|
||||
LoadSelectedMachineMachinings()
|
||||
OnPropertyChanged("SelectedMachine")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Lista delle lavorazioni
|
||||
Private m_MachiningsList As New ObservableCollection(Of FamilyMachiningTreeViewItem)
|
||||
Public Property MachiningsList As ObservableCollection(Of FamilyMachiningTreeViewItem)
|
||||
Get
|
||||
Return m_MachiningsList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of FamilyMachiningTreeViewItem))
|
||||
m_MachiningsList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdNew As ICommand
|
||||
Private m_cmdSave As ICommand
|
||||
Private m_cmdRemove As ICommand
|
||||
|
||||
'Definizione dei messaggi della pagina
|
||||
Public ReadOnly Property InvertTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 51)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property LeaveTabTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 52)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property WorkSideTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 54)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property HeadSideTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 55)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property LeadInTypeTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 56)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ExtLinkTypeTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 57)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property LeadOutTypeTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 58)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property CurveUseTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 59)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property StepTypeTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 60)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property LeadLinkTypeTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 62)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property SpeedTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 63)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property FeedTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 64)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property StartFeedTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 65)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property EndFeedTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 66)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property TipFeedTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 67)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property OffSrTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 68)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property OffSlTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 69)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property SideAngleTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 71)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ApproxTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 72)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property StartPosTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 73)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property StartSlowLenTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 74)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property EndSlowLenTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 75)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ThrouAddLenTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 76)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property StepParTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 77)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ReturnPosTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 78)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property TabLenTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 80)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property TabDistTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 81)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property TabHeightTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 82)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property TabAngleTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 83)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property LiTangTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 84)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property LiPerpTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 85)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property LiElevTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 86)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property LiCompLenTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 87)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property LoTangTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 88)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property LoPerpTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 89)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property LoElevTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 90)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property LoCompLenTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 91)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property StartAddLenTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 92)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property EndAddLenTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 93)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property StepExtArcTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 95)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property StepIntArcTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 96)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property SideStepTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 97)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property VertFeedTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 98)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property NameParTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 99)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ToolTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 100)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property DepthStrTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 101)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property UserNotesTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 104)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property OverLapStrTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 105)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property OffsetStrTxBl As String
|
||||
Get
|
||||
Return EgtMsg(MSG_MACHININGSDBPAGE + 106)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' Constructor
|
||||
''' </summary>
|
||||
Sub New()
|
||||
Me.sTabName = EgtMsg(MSG_MAINWINDOW + 4)
|
||||
SearchMachine()
|
||||
|
||||
Application.Msn.Register(Application.REMOVEMACHINING, Sub(MachiningToRemove As MachiningTreeViewItem)
|
||||
Remove(MachiningToRemove)
|
||||
End Sub)
|
||||
' Quando chiamato, disattiva tutti gli item dell'albero o li riattiva a seconda che ci sia o meno un errore
|
||||
Application.Msn.Register(Application.ERRORONMACHINING, Sub(WrongMachining As MachiningTreeViewItem)
|
||||
For Each FamilyMachiningItem In MachiningsList
|
||||
If IsNothing(WrongMachining) Then
|
||||
FamilyMachiningItem.IsEnabled = True
|
||||
Else
|
||||
FamilyMachiningItem.IsEnabled = False
|
||||
End If
|
||||
For Each MachiningItem In FamilyMachiningItem.Items
|
||||
If IsNothing(WrongMachining) Then
|
||||
MachiningItem.IsEnabled = True
|
||||
ElseIf MachiningItem IsNot WrongMachining Then
|
||||
MachiningItem.IsEnabled = False
|
||||
Else
|
||||
MachiningItem.IsEnabled = True
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
End Sub)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Method that search the machines in the correct folder and add to the MachinesList those valid.
|
||||
''' </summary>
|
||||
Private Sub SearchMachine()
|
||||
Dim TempArray As String() = Directory.GetDirectories(IniFile.m_sMachinesRoot)
|
||||
For i As Integer = 0 To TempArray.Count - 1
|
||||
Dim MachinePathIni As String = TempArray(i) & "\" & Path.GetFileName(TempArray(i)) & ".ini"
|
||||
If File.Exists(MachinePathIni) Then
|
||||
m_MachinesList.Add(New Machine With {.Name = Path.GetFileName(TempArray(i)), .MachineDirPath = TempArray(i)})
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Class that create the association Name/IniPath for the machine's
|
||||
''' </summary>
|
||||
Class Machine
|
||||
|
||||
Private m_sName As String
|
||||
Public Property Name As String
|
||||
Get
|
||||
Return m_sName
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Friend MachineDirPath As String
|
||||
|
||||
End Class
|
||||
|
||||
''' <summary>
|
||||
''' Method that search the machines in the correct folder and add to the MachinesList those valid.
|
||||
''' </summary>
|
||||
Private Sub LoadSelectedMachineMachinings()
|
||||
Dim ActiveMachiningsTypes() As MachiningsType = ReadActiveMachiningsFamilies()
|
||||
For Each MachiningsType In ActiveMachiningsTypes
|
||||
Dim FamilyTreeView As New FamilyMachiningTreeViewItem(MachiningsType.TypeName, MachiningsType.TypeId)
|
||||
MachiningsList.Add(FamilyTreeView)
|
||||
Dim MachiningName As String = String.Empty
|
||||
If EgtMdbGetFirstMachining(MachiningsType.TypeId, MachiningName) Then
|
||||
FamilyTreeView.Items.Add(New MachiningTreeViewItem(MachiningName, MachiningsType.TypeId))
|
||||
While EgtMdbGetNextMachining(MachiningsType.TypeId, MachiningName)
|
||||
FamilyTreeView.Items.Add(New MachiningTreeViewItem(MachiningName, MachiningsType.TypeId))
|
||||
End While
|
||||
End If
|
||||
Next
|
||||
' Se esiste almeno una famiglia di lavorazioni, la seleziono
|
||||
If MachiningsList.Count > 0 Then
|
||||
MachiningsList(0).IsSelected = True
|
||||
MachiningsList(0).NotifyPropertyChanged("IsSelected")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Method that search the machines in the correct folder and add to the MachinesList those valid.
|
||||
''' </summary>
|
||||
Private Function ReadActiveMachiningsFamilies() As MachiningsType()
|
||||
Dim ActiveMachiningsFamiliesList As New List(Of MachiningsType)
|
||||
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_DRILLING, 0, m_sDbsCurrMachIniFilePath) <> 0 Then
|
||||
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.DRILLING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 1)})
|
||||
End If
|
||||
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SAWING, 0, m_sDbsCurrMachIniFilePath) <> 0 Then
|
||||
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.SAWING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 2)})
|
||||
End If
|
||||
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_MILLING, 0, m_sDbsCurrMachIniFilePath) <> 0 Then
|
||||
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.MILLING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 3)})
|
||||
End If
|
||||
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_POCKETING, 0, m_sDbsCurrMachIniFilePath) <> 0 Then
|
||||
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.POCKETING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 4)})
|
||||
End If
|
||||
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_MORTISING, 0, m_sDbsCurrMachIniFilePath) <> 0 Then
|
||||
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.MORTISING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 5)})
|
||||
End If
|
||||
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SAWROUGHING, 0, m_sDbsCurrMachIniFilePath) <> 0 Then
|
||||
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.SAWROUGHING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 6)})
|
||||
End If
|
||||
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SAWFINISHING, 0, m_sDbsCurrMachIniFilePath) <> 0 Then
|
||||
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.SAWFINISHING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 7)})
|
||||
End If
|
||||
Return ActiveMachiningsFamiliesList.ToArray
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Structure that represent a tool's family, containing family type and family name
|
||||
''' </summary>
|
||||
Structure MachiningsType
|
||||
|
||||
Friend TypeId As MCH_MY
|
||||
Friend TypeName As String
|
||||
|
||||
End Structure
|
||||
|
||||
#Region "NewCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that create a new machining.
|
||||
''' </summary>
|
||||
Public ReadOnly Property NewCommand As ICommand
|
||||
Get
|
||||
If m_cmdNew Is Nothing Then
|
||||
m_cmdNew = New RelayCommand(AddressOf NewPar, AddressOf CanNew)
|
||||
End If
|
||||
Return m_cmdNew
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Creata the new machining. This method is invoked by the NewCommand.
|
||||
''' </summary>
|
||||
Public Sub NewPar(ByVal param As Object)
|
||||
' Verifico se sia selezionata una famiglia
|
||||
Dim NewMachiningItem As MachiningTreeViewItem
|
||||
If TypeOf param Is FamilyMachiningTreeViewItem Then
|
||||
Dim MachiningFamily As FamilyMachiningTreeViewItem = DirectCast(param, FamilyMachiningTreeViewItem)
|
||||
Dim NewName As String = MachiningFamily.Name
|
||||
EgtMdbGetMachiningNewName(NewName)
|
||||
If EgtMdbAddMachining(NewName, MachiningFamily.MachiningType) Then
|
||||
NewMachiningItem = New MachiningTreeViewItem(NewName, DirectCast(MachiningFamily.Type, MCH_MY))
|
||||
MachiningFamily.Items.Add(NewMachiningItem)
|
||||
EgtMdbSaveCurrMachining()
|
||||
NewMachiningItem.NewMachining = True
|
||||
If Not MachiningFamily.IsExpanded Then MachiningFamily.IsExpanded = True
|
||||
NewMachiningItem.IsSelected = True
|
||||
NewMachiningItem.NotifyPropertyChanged("IsSelected")
|
||||
End If
|
||||
' Verifico se sia selezionata una lavorazione
|
||||
ElseIf TypeOf param Is MachiningTreeViewItem Then
|
||||
Dim MachiningCopied As MachiningTreeViewItem = DirectCast(param, MachiningTreeViewItem)
|
||||
Dim NewName As String = MachiningCopied.Name
|
||||
EgtMdbGetMachiningNewName(NewName)
|
||||
If EgtMdbCopyMachining(MachiningCopied.Name, NewName) Then
|
||||
Dim CurrType As Integer
|
||||
EgtMdbGetCurrMachiningParam(MCH_MP.TYPE, CurrType)
|
||||
For Each MachiningFamily In MachiningsList
|
||||
If (MachiningFamily.MachiningType And CurrType) <> 0 Then
|
||||
NewMachiningItem = New MachiningTreeViewItem(NewName, DirectCast(MachiningFamily.Type, MCH_MY))
|
||||
MachiningFamily.Items.Add(NewMachiningItem)
|
||||
EgtMdbSaveCurrMachining()
|
||||
NewMachiningItem.IsSelected = True
|
||||
NewMachiningItem.NotifyPropertyChanged("IsSelected")
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns true if the selected treeviewitem is valid for new tool creation.
|
||||
''' </summary>
|
||||
Private Function CanNew(ByVal param As Object) As Boolean
|
||||
' Verifico se sia selezionata una famiglia
|
||||
If TypeOf param Is FamilyMachiningTreeViewItem Then
|
||||
Return True
|
||||
' Verifico se sia selezionata una lavorazione
|
||||
ElseIf TypeOf param Is MachiningTreeViewItem Then
|
||||
' Verifico che i parametri della lavorazione siano validi
|
||||
Return DirectCast(param, MachiningTreeViewItem).IsValid
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
End Function
|
||||
|
||||
#End Region ' NewCommand
|
||||
|
||||
#Region "SaveCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that save the current selected machining.
|
||||
''' </summary>
|
||||
Public ReadOnly Property SaveCommand() As ICommand
|
||||
Get
|
||||
If m_cmdSave Is Nothing Then
|
||||
m_cmdSave = New RelayCommand(AddressOf Save, AddressOf CanSave)
|
||||
End If
|
||||
Return m_cmdSave
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Saves the current machining. This method is invoked by the SaveCommand.
|
||||
''' </summary>
|
||||
Public Sub Save(ByVal param As Object)
|
||||
EgtMdbSaveCurrMachining()
|
||||
EgtMdbSave()
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns true if the selected machining is valid and can be saved.
|
||||
''' </summary>
|
||||
Private Function CanSave(ByVal param As Object) As Boolean
|
||||
' Verifico che sia selezionata una lavorazione
|
||||
If TypeOf param Is ToolTreeViewItem Then
|
||||
' Verifico che i parametri della lavorazione siano validi
|
||||
Return DirectCast(param, ToolTreeViewItem).IsValid And EgtMdbIsCurrMachiningModified()
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
End Function
|
||||
|
||||
#End Region ' SaveCommand
|
||||
|
||||
#Region "RemoveCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that remove the current selected machining.
|
||||
''' </summary>
|
||||
Public ReadOnly Property RemoveCommand() As ICommand
|
||||
Get
|
||||
If m_cmdRemove Is Nothing Then
|
||||
m_cmdRemove = New RelayCommand(AddressOf Remove, AddressOf CanRemove)
|
||||
End If
|
||||
Return m_cmdRemove
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Remove the current selected machining from Db and TreeView. This method is invoked by the RemoveCommand.
|
||||
''' </summary>
|
||||
Public Sub Remove(ByVal param As Object)
|
||||
Dim MachiningToRemove As MachiningTreeViewItem = DirectCast(param, MachiningTreeViewItem)
|
||||
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
|
||||
' Salvo il tipo di lavorazione per poterla cancellare
|
||||
Dim MachiningType As Integer = MachiningToRemove.Type
|
||||
' Cancello la lavorazione
|
||||
EgtMdbRemoveMachining(MachiningToRemove.Name)
|
||||
' Rimuovo il nome dell'albero
|
||||
For Each MachiningFamily In MachiningsList
|
||||
If (MachiningFamily.MachiningType And MachiningType) <> 0 Then
|
||||
MachiningFamily.Items.Remove(MachiningToRemove)
|
||||
End If
|
||||
Next
|
||||
Application.Msn.NotifyColleagues(Application.ERRORONMACHINING, Nothing)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns true if the selected machining can be removed.
|
||||
''' </summary>
|
||||
Private Function CanRemove(ByVal param As Object) As Boolean
|
||||
' Verifico se sia selezionata una famiglia
|
||||
If TypeOf param Is FamilyMachiningTreeViewItem Then
|
||||
Return False
|
||||
' Verifico se sia selezionata una lavorazione
|
||||
ElseIf TypeOf param Is MachiningTreeViewItem Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
End Function
|
||||
|
||||
#End Region ' RemoveCommand
|
||||
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@@ -0,0 +1,53 @@
|
||||
<Window x:Class="MainWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
xmlns:local="clr-namespace:EgtCAM5"
|
||||
Title="MainWindow" Height="768" Width="1366">
|
||||
|
||||
<interactivity:Interaction.Triggers>
|
||||
<interactivity:EventTrigger EventName="ContentRendered">
|
||||
<interactivity:InvokeCommandAction Command="{Binding cmdMainWindow_ContentRendered}"/>
|
||||
</interactivity:EventTrigger>
|
||||
<interactivity:EventTrigger EventName="Activated">
|
||||
<interactivity:InvokeCommandAction Command="{Binding cmdMainWindow_ContentRendered}"/>
|
||||
</interactivity:EventTrigger>
|
||||
<interactivity:EventTrigger EventName="Deactivated">
|
||||
<interactivity:InvokeCommandAction Command="{Binding cmdMainWindow_ContentRendered}"/>
|
||||
</interactivity:EventTrigger>
|
||||
<interactivity:EventTrigger EventName="Closing">
|
||||
<interactivity:InvokeCommandAction Command="{Binding cmdMainWindow_Closing}"/>
|
||||
</interactivity:EventTrigger>
|
||||
</interactivity:Interaction.Triggers>
|
||||
|
||||
<!--Pannello principale che permette di disporre la barra superiore e il tabcontrol-->
|
||||
<DockPanel>
|
||||
|
||||
<!--Barra superiore dei comandi-->
|
||||
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Height="30">
|
||||
<Button Content="New" Command="{Binding NewCommand}"/>
|
||||
<Button Content="Open" />
|
||||
<Button Content="Save" />
|
||||
<Button Content="Save as..." />
|
||||
<Button Content="Import" />
|
||||
<Button Content="Export" />
|
||||
<Button Content="Execute" />
|
||||
</StackPanel>
|
||||
|
||||
<!--StatusBar-->
|
||||
<ContentControl DockPanel.Dock="Bottom" Content="{Binding StatusBar}"/>
|
||||
|
||||
<!--EgtTabControl che contiene le pagine e permette di non cancellarle quando non sono
|
||||
selezionate per non doverle ricaricare ogni volta (la scena non funzionerebbe!!!)-->
|
||||
<EgtWPFLib5:EgtTabControl ItemsSource="{Binding TabList}" ContentTemplate="{Binding}"
|
||||
SelectedItem="{Binding SelectedTab}">
|
||||
<TabControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding sTabName}"/>
|
||||
</DataTemplate>
|
||||
</TabControl.ItemTemplate>
|
||||
</EgtWPFLib5:EgtTabControl>
|
||||
|
||||
</DockPanel>
|
||||
</Window>
|
||||
@@ -0,0 +1,3 @@
|
||||
Class MainWindow
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,499 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.Threading
|
||||
Imports System.Math
|
||||
Imports EgtUILib
|
||||
|
||||
Namespace EgtCAM5
|
||||
|
||||
Public Class MainWindowViewModel
|
||||
Inherits ViewModelBase
|
||||
|
||||
#Region "FIELDS"
|
||||
|
||||
' EGALTECH ENVIRONMENT FIELDS
|
||||
|
||||
Private m_objMutex As New Mutex
|
||||
Private m_nInstance As Integer = 0
|
||||
Private m_sDataRoot As String = String.Empty
|
||||
Private m_sConfigDir As String = String.Empty
|
||||
Private m_sTempDir As String = String.Empty
|
||||
Private m_sMachinesRoot As String = String.Empty
|
||||
Private m_sIniFile As String = String.Empty
|
||||
Private m_nDebug As Integer = 0
|
||||
Private m_nUserLevel As Integer = 1
|
||||
'Private m_bShowGrid As Boolean
|
||||
'Private m_bShowGridFrame As Boolean
|
||||
'Private m_bCPlaneTypePos As Boolean
|
||||
'Private m_bMmUnits As Boolean
|
||||
'Private WithEvents m_Controller As New Controller
|
||||
'Private m_MruFiles As New MruList
|
||||
'Private m_MruScripts As New MruList
|
||||
'Private m_bStopExec As Boolean = False
|
||||
'Private m_ProcEventsCallback As New ProcessEventsCallback(AddressOf ProcessEvents)
|
||||
'Private m_OutTextCallback As New OutTextCallback(AddressOf OutText)
|
||||
|
||||
' EGALTECH ENVIRONMENT FIELDS WITH PROPERTY
|
||||
|
||||
' GRAPHICAL FIELDS
|
||||
' Event commands
|
||||
' MainWindow ContentRendered Event
|
||||
Private m_cmdMainWindow_ContentRendered As ICommand
|
||||
' MainWindow Activated Event
|
||||
Private m_cmdMainWindow_Activated As ICommand
|
||||
' MainWindow Deactivated Event
|
||||
Private m_cmdMainWindow_Deactivated As ICommand
|
||||
' MainWindow Closing Event
|
||||
Private m_cmdMainWindow_Closing As ICommand
|
||||
|
||||
' GRAPHICAL FIELDS WITH PROPERTY
|
||||
|
||||
' ObservableCollection that contains all the main TabControl pages
|
||||
Private m_TabList As New ObservableCollection(Of TabViewModel)
|
||||
Public Property TabList As ObservableCollection(Of TabViewModel)
|
||||
Get
|
||||
Return m_TabList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of TabViewModel))
|
||||
m_TabList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Fields that contains current selected page in the main TabControl
|
||||
Private m_SelectedTab As TabViewModel
|
||||
Public Property SelectedTab As TabViewModel
|
||||
Get
|
||||
Return m_SelectedTab
|
||||
End Get
|
||||
Set(value As TabViewModel)
|
||||
If value IsNot m_SelectedTab Then
|
||||
m_SelectedTab = value
|
||||
OnPropertyChanged("SelectedTab")
|
||||
If TypeOf value Is ProjectViewModel Then
|
||||
ProjectPageSelected = True
|
||||
Else
|
||||
ProjectPageSelected = False
|
||||
End If
|
||||
If TypeOf value Is ToolsDbViewModel Then
|
||||
' Esce dal gruppo di lavorazione corrente per poter aprire le macchine del database
|
||||
EgtResetCurrMachGroup()
|
||||
End If
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Fields that know if the ProjectPage is currently selected
|
||||
Private m_ProjectPageSelected As Boolean
|
||||
Public Property ProjectPageSelected As Boolean
|
||||
Get
|
||||
Return m_ProjectPageSelected
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
If value <> m_ProjectPageSelected Then
|
||||
m_ProjectPageSelected = value
|
||||
If value Then
|
||||
Application.Msn.NotifyColleagues(Application.PROJECTPAGE_SELECTED)
|
||||
Else
|
||||
Application.Msn.NotifyColleagues(Application.PROJECTPAGE_DESELECTED)
|
||||
End If
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
'
|
||||
Private m_StatusBar As New StatusBarView
|
||||
Private m_bfirst As Boolean = True
|
||||
Public ReadOnly Property StatusBar As StatusBarView
|
||||
Get
|
||||
If m_bfirst Then
|
||||
m_StatusBar.DataContext = New StatusBarViewModel
|
||||
m_bfirst = False
|
||||
End If
|
||||
Return m_StatusBar
|
||||
End Get
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Sub New()
|
||||
'
|
||||
Application.Msn.Register(Application.CLOSEAPPLICATION, Sub()
|
||||
'Application.Current.MainWindow.Close()
|
||||
End Sub)
|
||||
' INITIALIZE EGALTECH ENVIRONMENT
|
||||
InitializeEgtEnvironment()
|
||||
|
||||
|
||||
' INITIALIZE GRAPHICS
|
||||
TabList.Add(New ProjectViewModel)
|
||||
TabList.Add(New ToolsDbViewModel)
|
||||
TabList.Add(New MachiningsDbViewModel)
|
||||
SelectedTab = TabList(0)
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "COMMANDS"
|
||||
|
||||
#Region "cmdMainWindow_Closing"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that manage the MainWindow_Unloaded command
|
||||
''' </summary>
|
||||
Public ReadOnly Property cmdMainWindow_Closing() As ICommand
|
||||
Get
|
||||
If m_cmdMainWindow_Closing Is Nothing Then
|
||||
m_cmdMainWindow_Closing = New RelayCommand(AddressOf MainWindow_Closing, AddressOf CanMainWindow_Closing)
|
||||
End If
|
||||
Return m_cmdMainWindow_Closing
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
|
||||
''' </summary>
|
||||
Public Sub MainWindow_Closing(ByVal param As Object)
|
||||
'' Gestisco eventuale file corrente modificato
|
||||
'If Not m_Controller.ManageModified() Then
|
||||
' E.Cancel = True
|
||||
' Return
|
||||
'End If
|
||||
'' Salvo modo di visualizzazione
|
||||
'WritePrivateProfileString(S_SCENE, K_SHOWMODE, EgtGetShowMode(), m_sIniFile)
|
||||
'' Salvo stato visualizzazione direzione curve
|
||||
'WritePrivateProfileString(S_SCENE, K_CURVEDIR, If(EgtGetShowCurveDirection(), 1, 0), m_sIniFile)
|
||||
'' Salvo stato visualizzazione griglia
|
||||
'WritePrivateProfileString(S_GRID, K_SHOWGRID, If(m_bShowGrid, 1, 0), m_sIniFile)
|
||||
'' Salvo stato unità di misura per interfaccia utente
|
||||
'WritePrivateProfileString(S_SCENE, K_MMUNITS, If(m_bMmUnits, 1, 0), m_sIniFile)
|
||||
' Salvo posizione Form (se non minimizzato)
|
||||
'If Me.WindowState <> FormWindowState.Minimized Then
|
||||
' Dim nFlag As Integer = If(Me.WindowState = FormWindowState.Maximized, 1, 0)
|
||||
' WritePrivateProfileWinPos(S_GENERAL, K_WINPLACE, nFlag, Me.Left, Me.Top, Me.Width, Me.Height, m_sIniFile)
|
||||
'End If
|
||||
' Terminazione generale di EgtInterface
|
||||
EgtExit()
|
||||
' Rilascio mutex
|
||||
m_objMutex.Close()
|
||||
' Aggiorno istanze usate
|
||||
Dim nTmp As Integer = GetPrivateProfileInt(S_GENERAL, K_INSTANCES, 0)
|
||||
nTmp -= (1 << (m_nInstance - 1))
|
||||
WritePrivateProfileString(S_GENERAL, K_INSTANCES, nTmp)
|
||||
'' Disabilito gestore Idle
|
||||
'RemoveHandler Application.Idle, AddressOf Application_Idle
|
||||
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns true if the application can be closed
|
||||
''' </summary>
|
||||
Private Function CanMainWindow_Closing(ByVal param As Object) As Boolean
|
||||
'' Impedisco uscita se script in esecuzione
|
||||
'If m_bScriptRunning Then
|
||||
' m_bStopScript = True
|
||||
' E.Cancel = True
|
||||
' Return
|
||||
'End If
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' Closing Command
|
||||
|
||||
#Region "cmdMainWindow_ContentRendered"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that manage the MainWindow_ContentRendered command
|
||||
''' </summary>
|
||||
Public ReadOnly Property cmdMainWindow_ContentRendered() As ICommand
|
||||
Get
|
||||
If m_cmdMainWindow_ContentRendered Is Nothing Then
|
||||
m_cmdMainWindow_ContentRendered = New RelayCommand(AddressOf MainWindow_ContentRendered)
|
||||
End If
|
||||
Return m_cmdMainWindow_ContentRendered
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Manage the MainWindow_ContentRendered event. This method is invoked by the cmdMainWindow_ContentRendered.
|
||||
''' </summary>
|
||||
Public Sub MainWindow_ContentRendered(ByVal param As Object)
|
||||
' Notify the ContentRendered event
|
||||
Application.Msn.NotifyColleagues(Application.MAINWINDOW_CONTENTRENDERED)
|
||||
End Sub
|
||||
|
||||
#End Region ' ContentRendered Command
|
||||
|
||||
#Region "cmdMainWindow_Activated"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that manage the MainWindow_ContentRendered command
|
||||
''' </summary>
|
||||
Public ReadOnly Property cmdMainWindow_Activated() As ICommand
|
||||
Get
|
||||
If m_cmdMainWindow_Activated Is Nothing Then
|
||||
m_cmdMainWindow_Activated = New RelayCommand(AddressOf MainWindow_Activated)
|
||||
End If
|
||||
Return m_cmdMainWindow_Activated
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Manage the MainWindow_ContentRendered event. This method is invoked by the cmdMainWindow_ContentRendered.
|
||||
''' </summary>
|
||||
Public Sub MainWindow_Activated(ByVal param As Object)
|
||||
' Notify the ContentRendered event
|
||||
Application.Msn.NotifyColleagues(Application.MAINWINDOW_ACTIVATED)
|
||||
End Sub
|
||||
|
||||
#End Region ' Activated Command
|
||||
|
||||
#Region "cmdMainWindow_Deactivated"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that manage the MainWindow_ContentRendered command
|
||||
''' </summary>
|
||||
Public ReadOnly Property cmdMainWindow_Deactivated() As ICommand
|
||||
Get
|
||||
If m_cmdMainWindow_Deactivated Is Nothing Then
|
||||
m_cmdMainWindow_Deactivated = New RelayCommand(AddressOf MainWindow_Deactivated)
|
||||
End If
|
||||
Return m_cmdMainWindow_Deactivated
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Manage the MainWindow_ContentRendered event. This method is invoked by the cmdMainWindow_ContentRendered.
|
||||
''' </summary>
|
||||
Public Sub MainWindow_Deactivated(ByVal param As Object)
|
||||
' Notify the ContentRendered event
|
||||
Application.Msn.NotifyColleagues(Application.MAINWINDOW_DEACTIVATED)
|
||||
End Sub
|
||||
|
||||
#End Region ' Deactivated Command
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
''' <summary>
|
||||
''' Method that initialize EgalTech environment
|
||||
''' </summary>
|
||||
Private Sub InitializeEgtEnvironment()
|
||||
'' Installo aggiornamento interfaccia
|
||||
'AddHandler System.Windows.Forms.Application.Idle, AddressOf Application_Idle
|
||||
'' Abilito drag and drop
|
||||
'Me.AllowDrop = True
|
||||
'' Title
|
||||
'EmitTitle()
|
||||
' Impostazione path radice per i dati
|
||||
m_sDataRoot = System.AppDomain.CurrentDomain.BaseDirectory
|
||||
If EgtUILib.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 per file temporanei
|
||||
m_sTempDir = m_sDataRoot & "\" & TEMP_DIR
|
||||
' Impostazione path Ini file
|
||||
m_sIniFile = m_sConfigDir & "\" & INI_FILE_NAME
|
||||
' Lo riporto nel modulo IniFile
|
||||
IniFile.m_sIniFilePath = m_sIniFile
|
||||
' Impostazione direttorio per le macchine
|
||||
If GetPrivateProfileString(S_MACH, K_MACHINESDIR, "", m_sMachinesRoot) = 0 Then
|
||||
m_sMachinesRoot = m_sDataRoot & "\" & MACHINES_DFL_DIR
|
||||
End If
|
||||
IniFile.m_sMachinesRoot = m_sMachinesRoot
|
||||
' Verifico indice di istanza
|
||||
ManageIstance()
|
||||
' Leggo e imposto chiave di protezione
|
||||
Dim sLicFileName As String = String.Empty
|
||||
GetPrivateProfileString(S_GENERAL, K_LICENCE, LIC_FILE_NAME, sLicFileName)
|
||||
Dim sLicFile As String = m_sConfigDir & "\" & sLicFileName
|
||||
Dim sKey As String = String.Empty
|
||||
EgtUILib.GetPrivateProfileString(S_LICENCE, K_KEY, "", sKey, sLicFile)
|
||||
EgtSetKey(sKey)
|
||||
' Inizializzazione generale di EgtInterface
|
||||
m_nDebug = GetPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
|
||||
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) = 0 Then
|
||||
sMsgDir = m_sConfigDir
|
||||
End If
|
||||
' Leggo file messaggi
|
||||
Dim sMsgFile As String = String.Empty
|
||||
GetPrivateProfileString(S_GENERAL, K_MESSAGES, "", sMsgFile)
|
||||
Dim sMsgFilePath As String = sMsgDir & "\" & sMsgFile
|
||||
If Not EgtLoadMessages(sMsgFilePath) Then
|
||||
EgtOutLog("Error in EgtLoadMessages")
|
||||
End If
|
||||
' Leggo e imposto livello utilizzatore
|
||||
m_nUserLevel = GetPrivateProfileInt(S_GENERAL, K_USERLEVEL, 1)
|
||||
' imposto dir font Nfe e font default
|
||||
Dim sNfeDir As String = String.Empty
|
||||
GetPrivateProfileString(S_GEOMDB, K_NFEFONTDIR, "", sNfeDir)
|
||||
Dim sDefFont As String = String.Empty
|
||||
GetPrivateProfileString(S_GEOMDB, K_DEFAULTFONT, "", sDefFont)
|
||||
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)
|
||||
EgtSetLuaLibs(sLuaLibsDir)
|
||||
Dim sLuaBaseLib As String = String.Empty
|
||||
GetPrivateProfileString(S_LUA, K_BASELIB, "EgtBase", sLuaBaseLib)
|
||||
EgtLuaRequire(sLuaBaseLib)
|
||||
'' imposto unità di misura per interfaccia utente
|
||||
'm_bMmUnits = (GetPrivateProfileInt(S_SCENE, K_MMUNITS, 1, m_sIniFile) <> 0)
|
||||
'UpdateStatusUnits()
|
||||
'' imposto visualizzazione riferimento globale
|
||||
'Dim bShowGlobFrame As Boolean = (GetPrivateProfileInt(S_SCENE, K_SHOWGFRAME, 1, m_sIniFile) <> 0)
|
||||
'EgtSetGlobFrameShow(bShowGlobFrame)
|
||||
'' imposto i dati della griglia
|
||||
'LoadGridData()
|
||||
'' imposto stato di visualizzazione della griglia
|
||||
'm_bShowGrid = (GetPrivateProfileInt(S_GRID, K_SHOWGRID, 1, m_sIniFile) <> 0)
|
||||
'm_bShowGridFrame = (GetPrivateProfileInt(S_GRID, K_SHOWFRAME, 1, m_sIniFile) <> 0)
|
||||
'UpdateStatusGrid()
|
||||
'' imposto tipo coordinate
|
||||
'm_bCPlaneTypePos = True
|
||||
'Scene1.SetGridCursorPos(m_bCPlaneTypePos)
|
||||
'' modo di visualizzazione
|
||||
'Dim nShowMode As Integer = GetPrivateProfileInt(S_SCENE, K_SHOWMODE, SM.SHADING, m_sIniFile)
|
||||
'If nShowMode = SM.WIREFRAME Then
|
||||
' btnWireFrame.Checked = True
|
||||
'ElseIf nShowMode = SM.HIDDENLINE Then
|
||||
' btnHiddenLine.Checked = True
|
||||
'Else
|
||||
' btnShading.Checked = True
|
||||
'End If
|
||||
'' visualizzazione direzione curve
|
||||
'Dim nShowCurveDir As Integer = GetPrivateProfileInt(S_SCENE, K_CURVEDIR, 0, m_sIniFile)
|
||||
'chkCurveDir.Checked = (nShowCurveDir <> 0)
|
||||
'' visualizzazione avanzata dei triangoli costituenti le superfici
|
||||
'Dim bShowTriaAdv As Boolean = (GetPrivateProfileInt(S_SCENE, K_SHOWTRIAADV, 1, m_sIniFile) <> 0)
|
||||
'EgtSetShowTriaAdv(bShowTriaAdv)
|
||||
'' ObjTree non selezionato
|
||||
'm_nObjTreeOldId = GDB_ID.NULL
|
||||
'' nascondo input box
|
||||
'ResetInputBox()
|
||||
'' aggiungo voce per about box nel menù di sistema
|
||||
'Dim hSysMenu As IntPtr = GetSystemMenu(Handle, False)
|
||||
'If hSysMenu <> IntPtr.Zero Then
|
||||
' AppendMenu(hSysMenu, MF_SEPARATOR, 0, "")
|
||||
' AppendMenu(hSysMenu, MF_STRING, IDM_ABOUTBOX, "About TestEIn...")
|
||||
'End If
|
||||
'' Visualizzo o nascondo TabTest
|
||||
'Dim bShowTabTest As Boolean = (GetPrivateProfileInt(S_TABSPECIAL, K_TSSHOW, 0, m_sIniFile) <> 0)
|
||||
'If Not bShowTabTest Then
|
||||
' TabControl2.TabPages.Remove(TabSpecial)
|
||||
'End If
|
||||
'' Posizione e dimensioni del Form
|
||||
'If ModifierKeys <> Keys.Shift Then
|
||||
' 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.StartPosition = System.Windows.Forms.FormStartPosition.Manual
|
||||
' Me.Location = New Point(nLeft, nTop)
|
||||
' Me.Size = New Size(nWidth, nHeight)
|
||||
' WindowState = If(nFlag = 1, FormWindowState.Maximized, FormWindowState.Normal)
|
||||
'End If
|
||||
'' Impostazioni controller
|
||||
'm_Controller.SetScene(Scene1)
|
||||
'Dim bLuaReg As Boolean = (GetPrivateProfileInt(S_GENERAL, K_COMMANDLOG, 0, m_sIniFile) <> 0)
|
||||
'Dim sCmdLogFile As String = CMDLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
|
||||
'If Not m_Controller.SetCommandLog(bLuaReg, m_sTempDir, sCmdLogFile) Then
|
||||
' EgtOutLog("Command log not started")
|
||||
' If My.Application.CommandLineArgs.Count() = 0 Then
|
||||
' MessageBox.Show("Command log not started", "TestEIn Warning",
|
||||
' MessageBoxButtons.OK, MessageBoxIcon.Warning)
|
||||
' End If
|
||||
'End If
|
||||
'If m_Controller.GetCommandLog() Then
|
||||
' tsStatusReg.BackColor = Color.Lime
|
||||
'ElseIf bLuaReg Then
|
||||
' tsStatusReg.BackColor = Color.Red
|
||||
'End If
|
||||
'' Impostazioni MruLists
|
||||
'm_MruFiles.Init(m_sIniFile, S_MRUFILES, 8)
|
||||
'm_MruScripts.Init(m_sIniFile, S_MRUSCRIPTS, 8)
|
||||
'' Apro progetto vuoto
|
||||
'm_Controller.NewProject(True)
|
||||
'' Impostazione Testi e ToolTips
|
||||
'SetMessages()
|
||||
'' Installo funzione gestione eventi per lua
|
||||
'EgtSetProcessEvents(m_ProcEventsCallback)
|
||||
'' Installo funzione output testo su status per lua
|
||||
'EgtSetOutText(m_OutTextCallback)
|
||||
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Funzione che permette di gestire il numero di istanze del programma attive contemporaneamente
|
||||
''' </summary>
|
||||
Private Sub ManageIstance()
|
||||
Dim bCreated As Boolean
|
||||
Try
|
||||
m_objMutex = New Mutex(False, "Global\EgtCAM5", bCreated)
|
||||
Catch
|
||||
bCreated = False
|
||||
End Try
|
||||
If bCreated Then
|
||||
' Prima istanza
|
||||
m_nInstance = 1
|
||||
' Aggiorno stato istanze attive
|
||||
WritePrivateProfileString(S_GENERAL, K_INSTANCES, m_nInstance.ToString)
|
||||
Else
|
||||
' Leggo il massimo numero di istanze ammesse
|
||||
Dim nMaxInst As Integer = GetPrivateProfileInt(S_GENERAL, K_MAXINST, 1)
|
||||
nMaxInst = Max(1, Min(nMaxInst, 32))
|
||||
' Cerco il primo indice di istanza libero (max 32)
|
||||
Dim nTmp As Integer = GetPrivateProfileInt(S_GENERAL, K_INSTANCES, 0)
|
||||
m_nInstance = 1
|
||||
Dim nMask As Integer = 1
|
||||
While (nTmp And nMask) <> 0 And m_nInstance <= m_nInstance
|
||||
m_nInstance += 1
|
||||
nMask *= 2
|
||||
End While
|
||||
' Se l'indice supera il massimo
|
||||
If m_nInstance > nMaxInst 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("EgtCAM5R32")
|
||||
For Each p As Process In localProc
|
||||
If p.Id <> Process.GetCurrentProcess().Id Then
|
||||
bFound = True
|
||||
ShowWindow(p.MainWindowHandle, SW.SHOWMAXIMIZED)
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
' se non trovati processi a 32 bit provo a 64 bit
|
||||
If Not bFound Then
|
||||
localProc = Process.GetProcessesByName("EgtCAM5R64")
|
||||
For Each p As Process In localProc
|
||||
If p.Id <> Process.GetCurrentProcess().Id Then
|
||||
bFound = True
|
||||
ShowWindow(p.MainWindowHandle, SW.SHOWMAXIMIZED)
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
' esco dal programma
|
||||
End
|
||||
End If
|
||||
' Aggiorno stato istanze attive
|
||||
nTmp += (1 << (m_nInstance - 1))
|
||||
WritePrivateProfileString(S_GENERAL, K_INSTANCES, nTmp)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@@ -0,0 +1,229 @@
|
||||
Imports System.Reflection
|
||||
|
||||
''' <summary>
|
||||
''' Provides loosely-coupled messaging between
|
||||
''' various colleague objects. All references to objects
|
||||
''' are stored weakly, to prevent memory leaks.
|
||||
''' </summary>
|
||||
Public Class Messenger
|
||||
|
||||
Public Sub New()
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Registers a callback method to be invoked when a specific message is broadcasted.
|
||||
''' </summary>
|
||||
''' <param name="message">The message to register for.</param>
|
||||
''' <param name="callback">The callback to be called when this message is broadcasted.</param>
|
||||
Public Sub Register(ByVal message As String, ByVal callback As [Delegate])
|
||||
|
||||
If String.IsNullOrEmpty(message) Then
|
||||
Throw New ArgumentException("'message' cannot be null or empty.")
|
||||
End If
|
||||
|
||||
If callback Is Nothing Then
|
||||
Throw New ArgumentNullException("callback")
|
||||
End If
|
||||
|
||||
Dim parameters As ParameterInfo() = callback.Method.GetParameters()
|
||||
|
||||
If parameters IsNot Nothing AndAlso parameters.Length > 1 Then
|
||||
Throw New InvalidOperationException("The registered delegate can have no more than one parameter.")
|
||||
End If
|
||||
|
||||
Dim parameterType As Type = If((parameters Is Nothing OrElse parameters.Length = 0), Nothing, parameters(0).ParameterType)
|
||||
_messageToActionsMap.AddAction(message, callback.Target, callback.Method, parameterType)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Notifies all registered parties that a message is being broadcasted.
|
||||
''' </summary>
|
||||
''' <param name="message">The message to broadcast.</param>
|
||||
Public Sub NotifyColleagues(ByVal message As String)
|
||||
|
||||
If String.IsNullOrEmpty(message) Then
|
||||
Throw New ArgumentException("'message' cannot be null or empty.")
|
||||
End If
|
||||
|
||||
Dim actions = _messageToActionsMap.GetActions(message)
|
||||
|
||||
If actions IsNot Nothing Then
|
||||
actions.ForEach(Function(action) action.DynamicInvoke())
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Notifies all registered parties that a message is being broadcasted.
|
||||
''' </summary>
|
||||
''' <param name="message">The message to broadcast</param>
|
||||
''' <param name="parameter">The parameter to pass together with the message</param>
|
||||
Public Sub NotifyColleagues(ByVal message As String, ByVal parameter As Object)
|
||||
|
||||
If String.IsNullOrEmpty(message) Then
|
||||
Throw New ArgumentException("'message' cannot be null or empty.")
|
||||
End If
|
||||
|
||||
Dim actions = _messageToActionsMap.GetActions(message)
|
||||
|
||||
If actions IsNot Nothing Then
|
||||
actions.ForEach(Function(action) action.DynamicInvoke(parameter))
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' This class is an implementation detail of the Messenger class.
|
||||
''' </summary>
|
||||
Private Class MessageToActionsMap
|
||||
' Stores a hash where the key is the message and the value is the list of callbacks to invoke.
|
||||
ReadOnly _map As New Dictionary(Of String, List(Of WeakAction))()
|
||||
|
||||
Friend Sub New()
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Adds an action to the list.
|
||||
''' </summary>
|
||||
''' <param name="message">The message to register.</param>
|
||||
''' <param name="target">The target object to invoke, or null.</param>
|
||||
''' <param name="method">The method to invoke.</param>
|
||||
''' <param name="actionType">The type of the Action delegate.</param>
|
||||
Friend Sub AddAction(ByVal message As String, ByVal target As Object, ByVal method As MethodInfo, ByVal actionType As Type)
|
||||
|
||||
If message Is Nothing Then
|
||||
Throw New ArgumentNullException("message")
|
||||
End If
|
||||
|
||||
If method Is Nothing Then
|
||||
Throw New ArgumentNullException("method")
|
||||
End If
|
||||
|
||||
SyncLock _map
|
||||
|
||||
If Not _map.ContainsKey(message) Then
|
||||
_map(message) = New List(Of WeakAction)()
|
||||
End If
|
||||
|
||||
_map(message).Add(New WeakAction(target, method, actionType))
|
||||
End SyncLock
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Gets the list of actions to be invoked for the specified message
|
||||
''' </summary>
|
||||
''' <param name="message">The message to get the actions for</param>
|
||||
''' <returns>Returns a list of actions that are registered to the specified message</returns>
|
||||
Friend Function GetActions(ByVal message As String) As List(Of [Delegate])
|
||||
|
||||
If message Is Nothing Then
|
||||
Throw New ArgumentNullException("message")
|
||||
End If
|
||||
|
||||
Dim actions As List(Of [Delegate])
|
||||
SyncLock _map
|
||||
|
||||
If Not _map.ContainsKey(message) Then
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
Dim weakActions As List(Of WeakAction) = _map(message)
|
||||
actions = New List(Of [Delegate])(weakActions.Count)
|
||||
|
||||
For i As Integer = weakActions.Count - 1 To -1 + 1 Step -1
|
||||
|
||||
Dim weakAction As WeakAction = weakActions(i)
|
||||
|
||||
If weakAction Is Nothing Then
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Dim action As [Delegate] = weakAction.CreateAction()
|
||||
|
||||
If action IsNot Nothing Then
|
||||
actions.Add(action)
|
||||
|
||||
Else
|
||||
' The target object is dead, so get rid of the weak action.
|
||||
weakActions.Remove(weakAction)
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
' Delete the list from the map if it is now empty.
|
||||
If weakActions.Count = 0 Then
|
||||
_map.Remove(message)
|
||||
End If
|
||||
|
||||
End SyncLock
|
||||
Return actions
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
''' <summary>
|
||||
''' This class is an implementation detail of the MessageToActionsMap class.
|
||||
''' </summary>
|
||||
Private Class WeakAction
|
||||
ReadOnly _delegateType As Type
|
||||
ReadOnly _method As MethodInfo
|
||||
ReadOnly _targetRef As WeakReference
|
||||
|
||||
''' <summary>
|
||||
''' Constructs a WeakAction.
|
||||
''' </summary>
|
||||
''' <param name="target">The object on which the target method is invoked, or null if the method is static.</param>
|
||||
''' <param name="method">The MethodInfo used to create the Action.</param>
|
||||
''' <param name="parameterType">The type of parameter to be passed to the action. Pass null if there is no parameter.</param>
|
||||
Friend Sub New(ByVal target As Object, ByVal method As MethodInfo, ByVal parameterType As Type)
|
||||
|
||||
If target Is Nothing Then
|
||||
_targetRef = Nothing
|
||||
|
||||
Else
|
||||
_targetRef = New WeakReference(target)
|
||||
End If
|
||||
|
||||
_method = method
|
||||
|
||||
If parameterType Is Nothing Then
|
||||
_delegateType = GetType(Action)
|
||||
|
||||
Else
|
||||
_delegateType = GetType(Action(Of )).MakeGenericType(parameterType)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Creates a "throw away" delegate to invoke the method on the target, or null if the target object is dead.
|
||||
''' </summary>
|
||||
Friend Function CreateAction() As [Delegate]
|
||||
|
||||
' Rehydrate into a real Action object, so that the method can be invoked.
|
||||
If _targetRef Is Nothing Then
|
||||
Return [Delegate].CreateDelegate(_delegateType, _method)
|
||||
|
||||
Else
|
||||
|
||||
Try
|
||||
|
||||
Dim target As Object = _targetRef.Target
|
||||
|
||||
If target IsNot Nothing Then
|
||||
Return [Delegate].CreateDelegate(_delegateType, target, _method)
|
||||
End If
|
||||
|
||||
Catch
|
||||
End Try
|
||||
|
||||
End If
|
||||
|
||||
Return Nothing
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
ReadOnly _messageToActionsMap As New MessageToActionsMap()
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,59 @@
|
||||
Imports System
|
||||
Imports System.Reflection
|
||||
Imports System.Runtime.InteropServices
|
||||
Imports System.Globalization
|
||||
Imports System.Resources
|
||||
Imports System.Windows
|
||||
|
||||
' General Information about an assembly is controlled through the following
|
||||
' set of attributes. Change these attribute values to modify the information
|
||||
' associated with an assembly.
|
||||
|
||||
' Review the values of the assembly attributes
|
||||
|
||||
<Assembly: AssemblyTitle("EgtCAM5")>
|
||||
<Assembly: AssemblyDescription("")>
|
||||
<Assembly: AssemblyCompany("")>
|
||||
<Assembly: AssemblyProduct("EgtCAM5")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2016")>
|
||||
<Assembly: AssemblyTrademark("")>
|
||||
<Assembly: ComVisible(false)>
|
||||
|
||||
'In order to begin building localizable applications, set
|
||||
'<UICulture>CultureYouAreCodingWith</UICulture> in your .vbproj file
|
||||
'inside a <PropertyGroup>. For example, if you are using US english
|
||||
'in your source files, set the <UICulture> to "en-US". Then uncomment the
|
||||
'NeutralResourceLanguage attribute below. Update the "en-US" in the line
|
||||
'below to match the UICulture setting in the project file.
|
||||
|
||||
'<Assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>
|
||||
|
||||
|
||||
'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found.
|
||||
'1st parameter: where theme specific resource dictionaries are located
|
||||
'(used if a resource is not found in the page,
|
||||
' or application resource dictionaries)
|
||||
|
||||
'2nd parameter: where the generic resource dictionary is located
|
||||
'(used if a resource is not found in the page,
|
||||
'app, and any theme specific resource dictionaries)
|
||||
<Assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)>
|
||||
|
||||
|
||||
|
||||
'The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
<Assembly: Guid("cee22c87-86ab-49a3-afe4-cb73e6743c09")>
|
||||
|
||||
' Version information for an assembly consists of the following four values:
|
||||
'
|
||||
' Major Version
|
||||
' Minor Version
|
||||
' Build Number
|
||||
' Revision
|
||||
'
|
||||
' You can specify all the values or you can default the Build and Revision Numbers
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("1.0.0.0")>
|
||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||
@@ -0,0 +1,121 @@
|
||||
#If _MyType <> "Empty" Then
|
||||
|
||||
Namespace My
|
||||
''' <summary>
|
||||
''' Module used to define the properties that are available in the My Namespace for WPF
|
||||
''' </summary>
|
||||
''' <remarks></remarks>
|
||||
<Global.Microsoft.VisualBasic.HideModuleName()> _
|
||||
Module MyWpfExtension
|
||||
Private s_Computer As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Devices.Computer)
|
||||
Private s_User As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.ApplicationServices.User)
|
||||
Private s_Windows As New ThreadSafeObjectProvider(Of MyWindows)
|
||||
Private s_Log As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Logging.Log)
|
||||
''' <summary>
|
||||
''' Returns the application object for the running application
|
||||
''' </summary>
|
||||
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
|
||||
Friend ReadOnly Property Application() As Application
|
||||
Get
|
||||
Return CType(Global.System.Windows.Application.Current, Application)
|
||||
End Get
|
||||
End Property
|
||||
''' <summary>
|
||||
''' Returns information about the host computer.
|
||||
''' </summary>
|
||||
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
|
||||
Friend ReadOnly Property Computer() As Global.Microsoft.VisualBasic.Devices.Computer
|
||||
Get
|
||||
Return s_Computer.GetInstance()
|
||||
End Get
|
||||
End Property
|
||||
''' <summary>
|
||||
''' Returns information for the current user. If you wish to run the application with the current
|
||||
''' Windows user credentials, call My.User.InitializeWithWindowsUser().
|
||||
''' </summary>
|
||||
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
|
||||
Friend ReadOnly Property User() As Global.Microsoft.VisualBasic.ApplicationServices.User
|
||||
Get
|
||||
Return s_User.GetInstance()
|
||||
End Get
|
||||
End Property
|
||||
''' <summary>
|
||||
''' Returns the application log. The listeners can be configured by the application's configuration file.
|
||||
''' </summary>
|
||||
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
|
||||
Friend ReadOnly Property Log() As Global.Microsoft.VisualBasic.Logging.Log
|
||||
Get
|
||||
Return s_Log.GetInstance()
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Returns the collection of Windows defined in the project.
|
||||
''' </summary>
|
||||
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
|
||||
Friend ReadOnly Property Windows() As MyWindows
|
||||
<Global.System.Diagnostics.DebuggerHidden()> _
|
||||
Get
|
||||
Return s_Windows.GetInstance()
|
||||
End Get
|
||||
End Property
|
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Never)> _
|
||||
<Global.Microsoft.VisualBasic.MyGroupCollection("System.Windows.Window", "Create__Instance__", "Dispose__Instance__", "My.MyWpfExtenstionModule.Windows")> _
|
||||
Friend NotInheritable Class MyWindows
|
||||
<Global.System.Diagnostics.DebuggerHidden()> _
|
||||
Private Shared Function Create__Instance__(Of T As {New, Global.System.Windows.Window})(ByVal Instance As T) As T
|
||||
If Instance Is Nothing Then
|
||||
If s_WindowBeingCreated IsNot Nothing Then
|
||||
If s_WindowBeingCreated.ContainsKey(GetType(T)) = True Then
|
||||
Throw New Global.System.InvalidOperationException("The window cannot be accessed via My.Windows from the Window constructor.")
|
||||
End If
|
||||
Else
|
||||
s_WindowBeingCreated = New Global.System.Collections.Hashtable()
|
||||
End If
|
||||
s_WindowBeingCreated.Add(GetType(T), Nothing)
|
||||
Return New T()
|
||||
s_WindowBeingCreated.Remove(GetType(T))
|
||||
Else
|
||||
Return Instance
|
||||
End If
|
||||
End Function
|
||||
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")> _
|
||||
<Global.System.Diagnostics.DebuggerHidden()> _
|
||||
Private Sub Dispose__Instance__(Of T As Global.System.Windows.Window)(ByRef instance As T)
|
||||
instance = Nothing
|
||||
End Sub
|
||||
<Global.System.Diagnostics.DebuggerHidden()> _
|
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Never)> _
|
||||
Public Sub New()
|
||||
MyBase.New()
|
||||
End Sub
|
||||
<Global.System.ThreadStatic()> Private Shared s_WindowBeingCreated As Global.System.Collections.Hashtable
|
||||
<Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> Public Overrides Function Equals(ByVal o As Object) As Boolean
|
||||
Return MyBase.Equals(o)
|
||||
End Function
|
||||
<Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> Public Overrides Function GetHashCode() As Integer
|
||||
Return MyBase.GetHashCode
|
||||
End Function
|
||||
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")> _
|
||||
<Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> _
|
||||
Friend Overloads Function [GetType]() As Global.System.Type
|
||||
Return GetType(MyWindows)
|
||||
End Function
|
||||
<Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> Public Overrides Function ToString() As String
|
||||
Return MyBase.ToString
|
||||
End Function
|
||||
End Class
|
||||
End Module
|
||||
End Namespace
|
||||
Partial Class Application
|
||||
Inherits Global.System.Windows.Application
|
||||
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
|
||||
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")> _
|
||||
Friend ReadOnly Property Info() As Global.Microsoft.VisualBasic.ApplicationServices.AssemblyInfo
|
||||
<Global.System.Diagnostics.DebuggerHidden()> _
|
||||
Get
|
||||
Return New Global.Microsoft.VisualBasic.ApplicationServices.AssemblyInfo(Global.System.Reflection.Assembly.GetExecutingAssembly())
|
||||
End Get
|
||||
End Property
|
||||
End Class
|
||||
#End If
|
||||
@@ -0,0 +1,63 @@
|
||||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' This code was generated by a tool.
|
||||
' Runtime Version:4.0.30319.34209
|
||||
'
|
||||
' Changes to this file may cause incorrect behavior and will be lost if
|
||||
' the code is regenerated.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
Imports System
|
||||
|
||||
Namespace My.Resources
|
||||
|
||||
'This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
'class via a tool like ResGen or Visual Studio.
|
||||
'To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
'with the /str option, or rebuild your VS project.
|
||||
'''<summary>
|
||||
''' A strongly-typed resource class, for looking up localized strings, etc.
|
||||
'''</summary>
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
||||
Friend Module Resources
|
||||
|
||||
Private resourceMan As Global.System.Resources.ResourceManager
|
||||
|
||||
Private resourceCulture As Global.System.Globalization.CultureInfo
|
||||
|
||||
'''<summary>
|
||||
''' Returns the cached ResourceManager instance used by this class.
|
||||
'''</summary>
|
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
||||
Get
|
||||
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("EgtCAM5.Resources", GetType(Resources).Assembly)
|
||||
resourceMan = temp
|
||||
End If
|
||||
Return resourceMan
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Overrides the current thread's CurrentUICulture property for all
|
||||
''' resource lookups using this strongly typed resource class.
|
||||
'''</summary>
|
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
||||
Get
|
||||
Return resourceCulture
|
||||
End Get
|
||||
Set
|
||||
resourceCulture = value
|
||||
End Set
|
||||
End Property
|
||||
End Module
|
||||
End Namespace
|
||||
@@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -0,0 +1,71 @@
|
||||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' This code was generated by a tool.
|
||||
' Runtime Version:4.0.30319.34209
|
||||
'
|
||||
' Changes to this file may cause incorrect behavior and will be lost if
|
||||
' the code is regenerated.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
|
||||
|
||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0"), _
|
||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Partial Friend NotInheritable Class MySettings
|
||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
||||
|
||||
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
|
||||
|
||||
#Region "My.Settings Auto-Save Functionality"
|
||||
#If _MyType = "WindowsForms" Then
|
||||
Private Shared addedHandler As Boolean
|
||||
|
||||
Private Shared addedHandlerLockObject As New Object
|
||||
|
||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
|
||||
If My.Application.SaveMySettingsOnExit Then
|
||||
My.Settings.Save()
|
||||
End If
|
||||
End Sub
|
||||
#End If
|
||||
#End Region
|
||||
|
||||
Public Shared ReadOnly Property [Default]() As MySettings
|
||||
Get
|
||||
|
||||
#If _MyType = "WindowsForms" Then
|
||||
If Not addedHandler Then
|
||||
SyncLock addedHandlerLockObject
|
||||
If Not addedHandler Then
|
||||
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
|
||||
addedHandler = True
|
||||
End If
|
||||
End SyncLock
|
||||
End If
|
||||
#End If
|
||||
Return defaultInstance
|
||||
End Get
|
||||
End Property
|
||||
End Class
|
||||
|
||||
Namespace My
|
||||
|
||||
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
||||
Friend Module MySettingsProperty
|
||||
|
||||
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
||||
Friend ReadOnly Property Settings() As Global.EgtCAM5.MySettings
|
||||
Get
|
||||
Return Global.EgtCAM5.MySettings.Default
|
||||
End Get
|
||||
End Property
|
||||
End Module
|
||||
End Namespace
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
@@ -0,0 +1,134 @@
|
||||
<UserControl x:Class="DrawPanelView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<Grid Background="DarkGray">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Expander Header="2D Draw" Grid.Row="0">
|
||||
<UniformGrid Columns="2">
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding PointCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Point.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding Line2PCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Line2P.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding LinePDLCommand}">
|
||||
<Image Source="/Resources/DrawPanel/LinePDL.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CircleCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Circle.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ArcCSECommand}">
|
||||
<Image Source="/Resources/DrawPanel/ArcCSE.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding Arc3PCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Arc3P.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ArcPDPCommand}">
|
||||
<Image Source="/Resources/DrawPanel/ArcPDP.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding FilletCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Fillet.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding Rectangle2PCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Rectangle2P.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding PolygonCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Polygon.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding TextCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Text.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
</UniformGrid>
|
||||
</Expander>
|
||||
<Expander Header="3D Draw" Grid.Row="1">
|
||||
<UniformGrid Columns="2">
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding PlaneCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Plane.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ExtrudeCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Extrude.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding RevolveCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Revolve.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ScrewCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Screw.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding RuledCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Ruled.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding MergeSurfCommand}">
|
||||
<Image Source="/Resources/DrawPanel/MergeSurf.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ExplodeSurfCommand}">
|
||||
<Image Source="/Resources/DrawPanel/ExplodeSurf.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding InvertSurfCommand}">
|
||||
<Image Source="/Resources/DrawPanel/InvertSurf.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
|
||||
</UniformGrid>
|
||||
</Expander>
|
||||
<Expander Header="Modify" Grid.Row="2">
|
||||
<UniformGrid Columns="2">
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding DeleteCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Delete.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ChangeLayerCommand}">
|
||||
<Image Source="/Resources/DrawPanel/ChangeLayer.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ChangeColorCommand}">
|
||||
<Image Source="/Resources/DrawPanel/ChangeColor.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding InvertCurveCommand}">
|
||||
<Image Source="/Resources/DrawPanel/InvertCurve.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ChangeStartCurveCommand}">
|
||||
<Image Source="/Resources/DrawPanel/ChangeStart.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ExtendCurveCommand}">
|
||||
<Image Source="/Resources/DrawPanel/ExtendCurve.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding BreakCurveCommand}">
|
||||
<Image Source="/Resources/DrawPanel/BreakCurve.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding JoinCurveCommand}">
|
||||
<Image Source="/Resources/DrawPanel/JoinCurve.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ExplodeCurveCommand}">
|
||||
<Image Source="/Resources/DrawPanel/ExplodeCurve.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding SetCurveThCommand}">
|
||||
<Image Source="/Resources/DrawPanel/ThickCurve.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
|
||||
</UniformGrid>
|
||||
</Expander>
|
||||
<Expander Header="Transform" Grid.Row="3">
|
||||
<UniformGrid Columns="2">
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding MoveCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Move.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding RotateCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Rotate.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding MirrorCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Mirror.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ScaleCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Scale.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding OffsetCommand}">
|
||||
<Image Source="/Resources/DrawPanel/Offset.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
|
||||
</UniformGrid>
|
||||
</Expander>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,3 @@
|
||||
Public Class DrawPanelView
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,103 @@
|
||||
<UserControl x:Class="GridViewPanelView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<StackPanel Background="Gray" Orientation="Horizontal">
|
||||
<RadioButton Style="{StaticResource EgtCAM5_RadioButton}" Command="{Binding WireframeCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/RenderingWF.png" Stretch="Uniform"/>
|
||||
</RadioButton>
|
||||
<RadioButton Style="{StaticResource EgtCAM5_RadioButton}" Command="{Binding HiddenLineCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/RenderingHL.png" Stretch="Uniform"/>
|
||||
</RadioButton>
|
||||
<RadioButton Style="{StaticResource EgtCAM5_RadioButton}" Command="{Binding ShadingCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/RenderingSH.png" Stretch="Uniform"/>
|
||||
</RadioButton>
|
||||
<Separator Style="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" Background="LightGray"/>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ZoomAllCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/ZoomAll.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ZoomInCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/ZoomIn.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ZoomOutCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/ZoomOut.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding TopViewCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/LookFromTOP.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding FrontViewCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/LookFromFRONT.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding LeftViewCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/LookFromLEFT.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding BackViewCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/LookFromBACK.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding RightViewCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/LookFromRIGHT.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding IsoViewSWCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/LookFromISO_SW.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding IsoViewSECommand}">
|
||||
<Image Source="/Resources/GridViewPanel/LookFromISO_SE.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding IsoViewNECommand}">
|
||||
<Image Source="/Resources/GridViewPanel/LookFromISO_NE.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding IsoViewNWCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/LookFromISO_NW.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<ToggleButton Style="{StaticResource EgtCAM5_ToggleButton}" Command="{Binding CurveDirCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/CurveDir.png" Stretch="Uniform"/>
|
||||
</ToggleButton>
|
||||
<ToggleButton Style="{StaticResource EgtCAM5_ToggleButton}" Command="{Binding AnalyzeCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/Analyze.png" Stretch="Uniform"/>
|
||||
</ToggleButton>
|
||||
<ToggleButton Style="{StaticResource EgtCAM5_ToggleButton}" Command="{Binding GetDistCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/GetDist.png" Stretch="Uniform"/>
|
||||
</ToggleButton>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneTopCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/CplaneTOP.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneFrontCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/CplaneFRONT.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneRightCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/CplaneRIGHT.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneBackCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/CplaneBACK.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneLeftCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/CplaneLEFT.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneBottomCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/CplaneBOTTOM.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneViewCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/CplaneView.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneElevationCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/CplaneELEVATION.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneOriginCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/CplaneORIGIN.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneRotateCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/CplaneROTATE.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlane3PCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/Cplane3POINTS.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlanePerpObjCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/CplanePERPCURVE.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneObjCommand}">
|
||||
<Image Source="/Resources/GridViewPanel/CplaneOBJECT.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
@@ -0,0 +1,3 @@
|
||||
Public Class GridViewPanelView
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,981 @@
|
||||
Namespace EgtCAM5
|
||||
|
||||
Public Class GridViewPanelViewModel
|
||||
Inherits ViewModelBase
|
||||
|
||||
Private m_TitleBarOrientation As Orientation
|
||||
Public Property TitleBarOrientation As Orientation
|
||||
Get
|
||||
Return m_TitleBarOrientation
|
||||
End Get
|
||||
Set(value As Orientation)
|
||||
m_TitleBarOrientation = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdWireframe As ICommand
|
||||
Private m_cmdHiddenLine As ICommand
|
||||
Private m_cmdShading As ICommand
|
||||
Private m_cmdZoomAll As ICommand
|
||||
Private m_cmdZoomIn As ICommand
|
||||
Private m_cmdZoomOut As ICommand
|
||||
Private m_cmdTopView As ICommand
|
||||
Private m_cmdFrontView As ICommand
|
||||
Private m_cmdLeftView As ICommand
|
||||
Private m_cmdBackView As ICommand
|
||||
Private m_cmdRightView As ICommand
|
||||
Private m_cmdIsoViewSW As ICommand
|
||||
Private m_cmdIsoViewSE As ICommand
|
||||
Private m_cmdIsoViewNE As ICommand
|
||||
Private m_cmdIsoViewNW As ICommand
|
||||
Private m_cmdCurveDir As ICommand
|
||||
Private m_cmdAnalyze As ICommand
|
||||
Private m_cmdGetDist As ICommand
|
||||
Private m_cmdCPlaneTop As ICommand
|
||||
Private m_cmdCPlaneFront As ICommand
|
||||
Private m_cmdCPlaneRight As ICommand
|
||||
Private m_cmdCPlaneBack As ICommand
|
||||
Private m_cmdCPlaneLeft As ICommand
|
||||
Private m_cmdCPlaneBottom As ICommand
|
||||
Private m_cmdCPlaneView As ICommand
|
||||
Private m_cmdCPlaneElevation As ICommand
|
||||
Private m_cmdCPlaneOrigin As ICommand
|
||||
Private m_cmdCPlaneRotate As ICommand
|
||||
Private m_cmdCPlane3P As ICommand
|
||||
Private m_cmdCPlanePerpObj As ICommand
|
||||
Private m_cmdCPlaneObj As ICommand
|
||||
|
||||
|
||||
' Costruttore
|
||||
Sub New()
|
||||
|
||||
End Sub
|
||||
|
||||
#Region "WireframeCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that manage the MainWindow_ContentRendered command
|
||||
''' </summary>
|
||||
Public ReadOnly Property WireframeCommand() As ICommand
|
||||
Get
|
||||
If m_cmdWireframe Is Nothing Then
|
||||
m_cmdWireframe = New RelayCommand(AddressOf Wireframe)
|
||||
End If
|
||||
Return m_cmdWireframe
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Manage the MainWindow_ContentRendered event. This method is invoked by the cmdMainWindow_ContentRendered.
|
||||
''' </summary>
|
||||
Public Sub Wireframe(ByVal param As Object)
|
||||
' Notify the ContentRendered event
|
||||
Application.Msn.NotifyColleagues(Application.WIREFRAME)
|
||||
End Sub
|
||||
|
||||
#End Region ' WireframeCommand
|
||||
|
||||
#Region "HiddenLineCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that swith the view mode to HiddenLine.
|
||||
''' </summary>
|
||||
Public ReadOnly Property HiddenLineCommand As ICommand
|
||||
Get
|
||||
If m_cmdHiddenLine Is Nothing Then
|
||||
m_cmdHiddenLine = New RelayCommand(AddressOf HiddenLine, AddressOf CanHiddenLine)
|
||||
End If
|
||||
Return m_cmdHiddenLine
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Swith the view mode to HiddenLine. This method is invoked by the HiddenLineCommand.
|
||||
''' </summary>
|
||||
Public Sub HiddenLine(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.HIDDENLINE)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanHiddenLine(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' HiddenLineCommand
|
||||
|
||||
#Region "ShadingCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that swith the view mode to Shading.
|
||||
''' </summary>
|
||||
Public ReadOnly Property ShadingCommand As ICommand
|
||||
Get
|
||||
If m_cmdShading Is Nothing Then
|
||||
m_cmdShading = New RelayCommand(AddressOf Shading, AddressOf CanShading)
|
||||
End If
|
||||
Return m_cmdShading
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Swith the view mode to Shading. This method is invoked by the ShadingCommand.
|
||||
''' </summary>
|
||||
Public Sub Shading(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.SHADING)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanShading(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' ShadingCommand
|
||||
|
||||
#Region "ZoomAllCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do ZoomAll.
|
||||
''' </summary>
|
||||
Public ReadOnly Property ZoomAllCommand As ICommand
|
||||
Get
|
||||
If m_cmdZoomAll Is Nothing Then
|
||||
m_cmdZoomAll = New RelayCommand(AddressOf ZoomAll, AddressOf CanZoomAll)
|
||||
End If
|
||||
Return m_cmdZoomAll
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the ZoomAll. This method is invoked by the ZoomAllCommand.
|
||||
''' </summary>
|
||||
Public Sub ZoomAll(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.ZOOMALL)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanZoomAll(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' ZoomAllCommand
|
||||
|
||||
#Region "ZoomInCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do ZoomIn.
|
||||
''' </summary>
|
||||
Public ReadOnly Property ZoomInCommand As ICommand
|
||||
Get
|
||||
If m_cmdZoomIn Is Nothing Then
|
||||
m_cmdZoomIn = New RelayCommand(AddressOf ZoomIn, AddressOf CanZoomIn)
|
||||
End If
|
||||
Return m_cmdZoomIn
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the ZoomIn. This method is invoked by the ZoomInCommand.
|
||||
''' </summary>
|
||||
Public Sub ZoomIn(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.ZOOMIN)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanZoomIn(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' ZoomInCommand
|
||||
|
||||
#Region "ZoomOutCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do ZoomOut.
|
||||
''' </summary>
|
||||
Public ReadOnly Property ZoomOutCommand As ICommand
|
||||
Get
|
||||
If m_cmdZoomOut Is Nothing Then
|
||||
m_cmdZoomOut = New RelayCommand(AddressOf ZoomOut, AddressOf CanZoomOut)
|
||||
End If
|
||||
Return m_cmdZoomOut
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the ZoomOut. This method is invoked by the ZoomOutCommand.
|
||||
''' </summary>
|
||||
Public Sub ZoomOut(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.ZOOMOUT)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanZoomOut(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' ZoomOutCommand
|
||||
|
||||
#Region "TopViewCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do TopView.
|
||||
''' </summary>
|
||||
Public ReadOnly Property TopViewCommand As ICommand
|
||||
Get
|
||||
If m_cmdTopView Is Nothing Then
|
||||
m_cmdTopView = New RelayCommand(AddressOf TopView, AddressOf CanTopView)
|
||||
End If
|
||||
Return m_cmdTopView
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the TopView. This method is invoked by the TopViewCommand.
|
||||
''' </summary>
|
||||
Public Sub TopView(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.TOPVIEW)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanTopView(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' TopViewCommand
|
||||
|
||||
#Region "FrontViewCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do FrontView.
|
||||
''' </summary>
|
||||
Public ReadOnly Property FrontViewCommand As ICommand
|
||||
Get
|
||||
If m_cmdFrontView Is Nothing Then
|
||||
m_cmdFrontView = New RelayCommand(AddressOf FrontView, AddressOf CanFrontView)
|
||||
End If
|
||||
Return m_cmdFrontView
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the FrontView. This method is invoked by the FrontViewCommand.
|
||||
''' </summary>
|
||||
Public Sub FrontView(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.FRONTVIEW)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanFrontView(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' FrontViewCommand
|
||||
|
||||
#Region "LeftViewCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do LeftView.
|
||||
''' </summary>
|
||||
Public ReadOnly Property LeftViewCommand As ICommand
|
||||
Get
|
||||
If m_cmdLeftView Is Nothing Then
|
||||
m_cmdLeftView = New RelayCommand(AddressOf LeftView, AddressOf CanLeftView)
|
||||
End If
|
||||
Return m_cmdLeftView
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the LeftView. This method is invoked by the LeftViewCommand.
|
||||
''' </summary>
|
||||
Public Sub LeftView(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.LEFTVIEW)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanLeftView(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' LeftViewCommand
|
||||
|
||||
#Region "BackViewCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do BackView.
|
||||
''' </summary>
|
||||
Public ReadOnly Property BackViewCommand As ICommand
|
||||
Get
|
||||
If m_cmdBackView Is Nothing Then
|
||||
m_cmdBackView = New RelayCommand(AddressOf BackView, AddressOf CanBackView)
|
||||
End If
|
||||
Return m_cmdBackView
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the BackView. This method is invoked by the BackViewCommand.
|
||||
''' </summary>
|
||||
Public Sub BackView(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.BACKVIEW)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanBackView(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' BackViewCommand
|
||||
|
||||
#Region "RightViewCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do RightView.
|
||||
''' </summary>
|
||||
Public ReadOnly Property RightViewCommand As ICommand
|
||||
Get
|
||||
If m_cmdRightView Is Nothing Then
|
||||
m_cmdRightView = New RelayCommand(AddressOf RightView, AddressOf CanRightView)
|
||||
End If
|
||||
Return m_cmdRightView
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the RightView. This method is invoked by the RightViewCommand.
|
||||
''' </summary>
|
||||
Public Sub RightView(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.RIGHTVIEW)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanRightView(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' RightViewCommand
|
||||
|
||||
#Region "IsoViewSWCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do IsoViewSW.
|
||||
''' </summary>
|
||||
Public ReadOnly Property IsoViewSWCommand As ICommand
|
||||
Get
|
||||
If m_cmdIsoViewSW Is Nothing Then
|
||||
m_cmdIsoViewSW = New RelayCommand(AddressOf IsoViewSW, AddressOf CanIsoViewSW)
|
||||
End If
|
||||
Return m_cmdIsoViewSW
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the IsoViewSW. This method is invoked by the IsoViewSWCommand.
|
||||
''' </summary>
|
||||
Public Sub IsoViewSW(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.ISOVIEWSW)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanIsoViewSW(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' IsoViewSWCommand
|
||||
|
||||
#Region "IsoViewSECommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do IsoViewSE.
|
||||
''' </summary>
|
||||
Public ReadOnly Property IsoViewSECommand As ICommand
|
||||
Get
|
||||
If m_cmdIsoViewSE Is Nothing Then
|
||||
m_cmdIsoViewSE = New RelayCommand(AddressOf IsoViewSE, AddressOf CanIsoViewSE)
|
||||
End If
|
||||
Return m_cmdIsoViewSE
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the IsoViewSE. This method is invoked by the IsoViewSECommand.
|
||||
''' </summary>
|
||||
Public Sub IsoViewSE(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.ISOVIEWSE)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanIsoViewSE(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' IsoViewSECommand
|
||||
|
||||
#Region "IsoViewNECommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do IsoViewNE.
|
||||
''' </summary>
|
||||
Public ReadOnly Property IsoViewNECommand As ICommand
|
||||
Get
|
||||
If m_cmdIsoViewNE Is Nothing Then
|
||||
m_cmdIsoViewNE = New RelayCommand(AddressOf IsoViewNE, AddressOf CanIsoViewNE)
|
||||
End If
|
||||
Return m_cmdIsoViewNE
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the IsoViewNE. This method is invoked by the IsoViewNECommand.
|
||||
''' </summary>
|
||||
Public Sub IsoViewNE(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.ISOVIEWNE)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanIsoViewNE(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' IsoViewNECommand
|
||||
|
||||
#Region "IsoViewNWCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do IsoViewNW.
|
||||
''' </summary>
|
||||
Public ReadOnly Property IsoViewNWCommand As ICommand
|
||||
Get
|
||||
If m_cmdIsoViewNW Is Nothing Then
|
||||
m_cmdIsoViewNW = New RelayCommand(AddressOf IsoViewNW, AddressOf CanIsoViewNW)
|
||||
End If
|
||||
Return m_cmdIsoViewNW
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the IsoViewNW. This method is invoked by the IsoViewNWCommand.
|
||||
''' </summary>
|
||||
Public Sub IsoViewNW(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.ISOVIEWNW)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanIsoViewNW(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' IsoViewNWCommand
|
||||
|
||||
#Region "CurveDirCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do CurveDir.
|
||||
''' </summary>
|
||||
Public ReadOnly Property CurveDirCommand As ICommand
|
||||
Get
|
||||
If m_cmdCurveDir Is Nothing Then
|
||||
m_cmdCurveDir = New RelayCommand(AddressOf CurveDir, AddressOf CanCurveDir)
|
||||
End If
|
||||
Return m_cmdCurveDir
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the CurveDir. This method is invoked by the CurveDirCommand.
|
||||
''' </summary>
|
||||
Public Sub CurveDir(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.CURVEDIR)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanCurveDir(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' CurveDirCommand
|
||||
|
||||
#Region "AnalyzeCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do Analyze.
|
||||
''' </summary>
|
||||
Public ReadOnly Property AnalyzeCommand As ICommand
|
||||
Get
|
||||
If m_cmdAnalyze Is Nothing Then
|
||||
m_cmdAnalyze = New RelayCommand(AddressOf Analyze, AddressOf CanAnalyze)
|
||||
End If
|
||||
Return m_cmdAnalyze
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the Analyze. This method is invoked by the AnalyzeCommand.
|
||||
''' </summary>
|
||||
Public Sub Analyze(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.ANALYZE)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanAnalyze(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' AnalyzeCommand
|
||||
|
||||
#Region "GetDistCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do GetDist.
|
||||
''' </summary>
|
||||
Public ReadOnly Property GetDistCommand As ICommand
|
||||
Get
|
||||
If m_cmdGetDist Is Nothing Then
|
||||
m_cmdGetDist = New RelayCommand(AddressOf GetDist, AddressOf CanGetDist)
|
||||
End If
|
||||
Return m_cmdGetDist
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the GetDist. This method is invoked by the GetDistCommand.
|
||||
''' </summary>
|
||||
Public Sub GetDist(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.GETDIST)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanGetDist(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' GetDistCommand
|
||||
|
||||
#Region "CPlaneTopCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do CPlaneTop.
|
||||
''' </summary>
|
||||
Public ReadOnly Property CPlaneTopCommand As ICommand
|
||||
Get
|
||||
If m_cmdCPlaneTop Is Nothing Then
|
||||
m_cmdCPlaneTop = New RelayCommand(AddressOf CPlaneTop, AddressOf CanCPlaneTop)
|
||||
End If
|
||||
Return m_cmdCPlaneTop
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the CPlaneTop. This method is invoked by the CPlaneTopCommand.
|
||||
''' </summary>
|
||||
Public Sub CPlaneTop(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.CPLANETOP)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanCPlaneTop(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' CPlaneTopCommand
|
||||
|
||||
#Region "CPlaneFrontCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do CPlaneFront.
|
||||
''' </summary>
|
||||
Public ReadOnly Property CPlaneFrontCommand As ICommand
|
||||
Get
|
||||
If m_cmdCPlaneFront Is Nothing Then
|
||||
m_cmdCPlaneFront = New RelayCommand(AddressOf CPlaneFront, AddressOf CanCPlaneFront)
|
||||
End If
|
||||
Return m_cmdCPlaneFront
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the CPlaneFront. This method is invoked by the CPlaneFrontCommand.
|
||||
''' </summary>
|
||||
Public Sub CPlaneFront(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.CPLANEFRONT)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanCPlaneFront(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' CPlaneFrontCommand
|
||||
|
||||
#Region "CPlaneRightCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do CPlaneRight.
|
||||
''' </summary>
|
||||
Public ReadOnly Property CPlaneRightCommand As ICommand
|
||||
Get
|
||||
If m_cmdCPlaneRight Is Nothing Then
|
||||
m_cmdCPlaneRight = New RelayCommand(AddressOf CPlaneRight, AddressOf CanCPlaneRight)
|
||||
End If
|
||||
Return m_cmdCPlaneRight
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the CPlaneRight. This method is invoked by the CPlaneRightCommand.
|
||||
''' </summary>
|
||||
Public Sub CPlaneRight(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.CPLANERIGHT)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanCPlaneRight(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' CPlaneRightCommand
|
||||
|
||||
#Region "CPlaneBackCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do CPlaneBack.
|
||||
''' </summary>
|
||||
Public ReadOnly Property CPlaneBackCommand As ICommand
|
||||
Get
|
||||
If m_cmdCPlaneBack Is Nothing Then
|
||||
m_cmdCPlaneBack = New RelayCommand(AddressOf CPlaneBack, AddressOf CanCPlaneBack)
|
||||
End If
|
||||
Return m_cmdCPlaneBack
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the CPlaneBack. This method is invoked by the CPlaneBackCommand.
|
||||
''' </summary>
|
||||
Public Sub CPlaneBack(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.CPLANEBACK)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanCPlaneBack(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' CPlaneBackCommand
|
||||
|
||||
#Region "CPlaneLeftCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do CPlaneLeft.
|
||||
''' </summary>
|
||||
Public ReadOnly Property CPlaneLeftCommand As ICommand
|
||||
Get
|
||||
If m_cmdCPlaneLeft Is Nothing Then
|
||||
m_cmdCPlaneLeft = New RelayCommand(AddressOf CPlaneLeft, AddressOf CanCPlaneLeft)
|
||||
End If
|
||||
Return m_cmdCPlaneLeft
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the CPlaneLeft. This method is invoked by the CPlaneLeftCommand.
|
||||
''' </summary>
|
||||
Public Sub CPlaneLeft(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.CPLANELEFT)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanCPlaneLeft(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' CPlaneLeftCommand
|
||||
|
||||
#Region "CPlaneBottomCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do CPlaneBottom.
|
||||
''' </summary>
|
||||
Public ReadOnly Property CPlaneBottomCommand As ICommand
|
||||
Get
|
||||
If m_cmdCPlaneBottom Is Nothing Then
|
||||
m_cmdCPlaneBottom = New RelayCommand(AddressOf CPlaneBottom, AddressOf CanCPlaneBottom)
|
||||
End If
|
||||
Return m_cmdCPlaneBottom
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the CPlaneBottom. This method is invoked by the CPlaneBottomCommand.
|
||||
''' </summary>
|
||||
Public Sub CPlaneBottom(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.CPLANEBOTTOM)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanCPlaneBottom(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' CPlaneBottomCommand
|
||||
|
||||
#Region "CPlaneViewCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do CPlaneView.
|
||||
''' </summary>
|
||||
Public ReadOnly Property CPlaneViewCommand As ICommand
|
||||
Get
|
||||
If m_cmdCPlaneView Is Nothing Then
|
||||
m_cmdCPlaneView = New RelayCommand(AddressOf CPlaneView, AddressOf CanCPlaneView)
|
||||
End If
|
||||
Return m_cmdCPlaneView
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the CPlaneView. This method is invoked by the CPlaneViewCommand.
|
||||
''' </summary>
|
||||
Public Sub CPlaneView(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.CPLANEVIEW)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanCPlaneView(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' CPlaneViewCommand
|
||||
|
||||
#Region "CPlaneElevationCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do CPlaneElevation.
|
||||
''' </summary>
|
||||
Public ReadOnly Property CPlaneElevationCommand As ICommand
|
||||
Get
|
||||
If m_cmdCPlaneElevation Is Nothing Then
|
||||
m_cmdCPlaneElevation = New RelayCommand(AddressOf CPlaneElevation, AddressOf CanCPlaneElevation)
|
||||
End If
|
||||
Return m_cmdCPlaneElevation
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the CPlaneElevation. This method is invoked by the CPlaneElevationCommand.
|
||||
''' </summary>
|
||||
Public Sub CPlaneElevation(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.CPLANEELEVATION)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanCPlaneElevation(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' CPlaneElevationCommand
|
||||
|
||||
#Region "CPlaneOriginCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do CPlaneOrigin.
|
||||
''' </summary>
|
||||
Public ReadOnly Property CPlaneOriginCommand As ICommand
|
||||
Get
|
||||
If m_cmdCPlaneOrigin Is Nothing Then
|
||||
m_cmdCPlaneOrigin = New RelayCommand(AddressOf CPlaneOrigin, AddressOf CanCPlaneOrigin)
|
||||
End If
|
||||
Return m_cmdCPlaneOrigin
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the CPlaneOrigin. This method is invoked by the CPlaneOriginCommand.
|
||||
''' </summary>
|
||||
Public Sub CPlaneOrigin(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.CPLANEORIGIN)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanCPlaneOrigin(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' CPlaneOriginCommand
|
||||
|
||||
#Region "CPlaneRotateCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do CPlaneRotate.
|
||||
''' </summary>
|
||||
Public ReadOnly Property CPlaneRotateCommand As ICommand
|
||||
Get
|
||||
If m_cmdCPlaneRotate Is Nothing Then
|
||||
m_cmdCPlaneRotate = New RelayCommand(AddressOf CPlaneRotate, AddressOf CanCPlaneRotate)
|
||||
End If
|
||||
Return m_cmdCPlaneRotate
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the CPlaneRotate. This method is invoked by the CPlaneRotateCommand.
|
||||
''' </summary>
|
||||
Public Sub CPlaneRotate(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.CPLANEROTATE)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanCPlaneRotate(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' CPlaneRotateCommand
|
||||
|
||||
#Region "CPlane3PCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do CPlane3P.
|
||||
''' </summary>
|
||||
Public ReadOnly Property CPlane3PCommand As ICommand
|
||||
Get
|
||||
If m_cmdCPlane3P Is Nothing Then
|
||||
m_cmdCPlane3P = New RelayCommand(AddressOf CPlane3P, AddressOf CanCPlane3P)
|
||||
End If
|
||||
Return m_cmdCPlane3P
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the CPlane3P. This method is invoked by the CPlane3PCommand.
|
||||
''' </summary>
|
||||
Public Sub CPlane3P(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.CPLANE3P)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanCPlane3P(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' CPlane3PCommand
|
||||
|
||||
#Region "CPlanePerpObjCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do CPlanePerpObj.
|
||||
''' </summary>
|
||||
Public ReadOnly Property CPlanePerpObjCommand As ICommand
|
||||
Get
|
||||
If m_cmdCPlanePerpObj Is Nothing Then
|
||||
m_cmdCPlanePerpObj = New RelayCommand(AddressOf CPlanePerpObj, AddressOf CanCPlanePerpObj)
|
||||
End If
|
||||
Return m_cmdCPlanePerpObj
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the CPlanePerpObj. This method is invoked by the CPlanePerpObjCommand.
|
||||
''' </summary>
|
||||
Public Sub CPlanePerpObj(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.CPLANEPERPOBJ)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanCPlanePerpObj(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' CPlanePerpObjCommand
|
||||
|
||||
#Region "CPlaneObjCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do CPlanepObj.
|
||||
''' </summary>
|
||||
Public ReadOnly Property CPlaneObjCommand As ICommand
|
||||
Get
|
||||
If m_cmdCPlaneObj Is Nothing Then
|
||||
m_cmdCPlaneObj = New RelayCommand(AddressOf CPlaneObj, AddressOf CanCPlaneObj)
|
||||
End If
|
||||
Return m_cmdCPlaneObj
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the CPlaneObj. This method is invoked by the CPlaneObjCommand.
|
||||
''' </summary>
|
||||
Public Sub CPlaneObj(ByVal param As Object)
|
||||
Application.Msn.NotifyColleagues(Application.CPLANEOBJ)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns always true.
|
||||
''' </summary>
|
||||
Private Function CanCPlaneObj(ByVal param As Object) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#End Region ' CPlaneObjCommand
|
||||
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@@ -0,0 +1,14 @@
|
||||
<UserControl x:Class="DrawOptionPanelView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<StackPanel Background="DarkGray">
|
||||
<!--ContentPresenter that contains the ManageLayerExpander-->
|
||||
<ContentPresenter Content="{Binding ManageLayerExpander}"/>
|
||||
<!--ContentPresenter that contains the InfoExpander-->
|
||||
<ContentPresenter Content="{Binding InfoExpander}"/>
|
||||
<!--ContentPresenter that contains the InputExpander-->
|
||||
<ContentPresenter Content="{Binding InputExpander}"/>
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
@@ -0,0 +1,3 @@
|
||||
Public Class DrawOptionPanelView
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,150 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
|
||||
Namespace EgtCAM5
|
||||
|
||||
Public Class DrawOptionPanelViewModel
|
||||
Inherits ViewModelBase
|
||||
|
||||
' GRAPHICAL ELEMENTS
|
||||
Private m_ManageLayerExpander As ManageLayerExpanderView
|
||||
Public ReadOnly Property ManageLayerExpander As ManageLayerExpanderView
|
||||
Get
|
||||
If IsNothing(m_ManageLayerExpander) Then
|
||||
m_ManageLayerExpander = New ManageLayerExpanderView
|
||||
m_ManageLayerExpander.DataContext = New ManageLayerExpanderViewModel
|
||||
End If
|
||||
Return m_ManageLayerExpander
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_InputExpander As InputExpanderView
|
||||
Public ReadOnly Property InputExpander As InputExpanderView
|
||||
Get
|
||||
If IsNothing(m_InputExpander) Then
|
||||
m_InputExpander = New InputExpanderView
|
||||
m_InputExpander.DataContext = New InputExpanderViewModel
|
||||
End If
|
||||
Return m_InputExpander
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_InfoExpander As InfoExpanderView
|
||||
Public ReadOnly Property InfoExpander As InfoExpanderView
|
||||
Get
|
||||
If IsNothing(m_InfoExpander) Then
|
||||
m_InfoExpander = New InfoExpanderView
|
||||
m_InfoExpander.DataContext = New InfoExpanderViewModel
|
||||
End If
|
||||
Return m_InfoExpander
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_Title As String
|
||||
Public Property Title As String
|
||||
Get
|
||||
Return m_Title
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_Title = value
|
||||
OnPropertyChanged("Title")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_TextBlock As String
|
||||
Public Property TextBlock As String
|
||||
Get
|
||||
Return m_TextBlock
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_TextBlock = value
|
||||
OnPropertyChanged("TextBlock")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_TextBox As String
|
||||
Public Property TextBox As String
|
||||
Get
|
||||
Return m_TextBox
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_TextBox = value
|
||||
OnPropertyChanged("TextBox")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_CheckBoxText As String
|
||||
Public Property CheckBoxText As String
|
||||
Get
|
||||
Return m_CheckBoxText
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_CheckBoxText = value
|
||||
OnPropertyChanged("CheckBoxText")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_ComboItemsList As ObservableCollection(Of String)
|
||||
Public Property ComboItemsList As ObservableCollection(Of String)
|
||||
Get
|
||||
Return m_ComboItemsList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of String))
|
||||
m_ComboItemsList = value
|
||||
OnPropertyChanged("ComboItemsList")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_ComboSelectedItem As String
|
||||
Public Property ComboSelectedItem As String
|
||||
Get
|
||||
Return m_ComboSelectedItem
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_ComboSelectedItem = value
|
||||
OnPropertyChanged("ComboSelectedItem")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_ShowVisibility As Boolean
|
||||
Public Property ShowVisibility As Boolean
|
||||
Get
|
||||
Return m_ShowVisibility
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_ShowVisibility = value
|
||||
OnPropertyChanged("ShowVisibility")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New()
|
||||
Application.Msn.NotifyColleagues(Application.NOTIFYINPUTTEXT, TextBox)
|
||||
End Sub
|
||||
|
||||
Private Sub PrepareInputBox(ByRef sTitle As String, ByRef sLabel As String, ByRef sCheckLabel As String,
|
||||
ByVal bShowCombo As Boolean, ByVal bShowBtn As Boolean)
|
||||
Title = sTitle
|
||||
TextBlock = sLabel
|
||||
TextBox = ""
|
||||
If sCheckLabel <> "" Then
|
||||
CheckBoxText = sCheckLabel
|
||||
End If
|
||||
If bShowCombo Then
|
||||
ComboItemsList.Clear()
|
||||
End If
|
||||
If bShowBtn Then
|
||||
ShowVisibility = True
|
||||
End If
|
||||
'InputText.Focus()
|
||||
End Sub
|
||||
|
||||
Private Sub ResetInputBox()
|
||||
'InputBox.Hide()
|
||||
'InputCheck.Hide()
|
||||
'InputCombo.Hide()
|
||||
'btnShow.Hide()
|
||||
'Scene1.Focus()
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@@ -0,0 +1,9 @@
|
||||
<UserControl x:Class="InfoExpanderView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
<Expander Header="Properties">
|
||||
<UniformGrid>
|
||||
<TextBox/>
|
||||
</UniformGrid>
|
||||
</Expander>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,3 @@
|
||||
Public Class InfoExpanderView
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,7 @@
|
||||
Namespace EgtCAM5
|
||||
|
||||
Public Class InfoExpanderViewModel
|
||||
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@@ -0,0 +1,18 @@
|
||||
<UserControl x:Class="InputExpanderView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<Expander Header="{Binding Title}" IsExpanded="{Binding IsExpanded}" IsEnabled="{Binding }" Grid.Row="2">
|
||||
<StackPanel>
|
||||
|
||||
<TextBlock Text="{Binding TextBlock}"/>
|
||||
<TextBox Text="{Binding TextBox}" FocusManager.FocusedElement="{Binding }"/>
|
||||
<CheckBox Content="{Binding CheckBoxText}"/>
|
||||
<ComboBox ItemsSource="{Binding ComboItemsList}" SelectedIndex="{Binding ComboSelectedItem}"/>
|
||||
<UniformGrid>
|
||||
<Button Visibility="{Binding ShowVisibility}" Content="Show" Style="{StaticResource EgtCAM5_Button}"/>
|
||||
<Button Content="Done" Style="{StaticResource EgtCAM5_Button}"/>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,3 @@
|
||||
Public Class InputExpanderView
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,7 @@
|
||||
Namespace EgtCAM5
|
||||
|
||||
Public Class InputExpanderViewModel
|
||||
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@@ -0,0 +1,16 @@
|
||||
<UserControl x:Class="ManageLayerExpanderView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
>
|
||||
<Expander Header="Layers" Grid.Row="0">
|
||||
<StackPanel>
|
||||
<TextBox/>
|
||||
<UniformGrid Rows="1">
|
||||
<Button Content="Button4" Width="40" Height="40"/>
|
||||
<Button Content="Button5" Width="40" Height="40"/>
|
||||
<Button Content="Button6" Width="40" Height="40"/>
|
||||
</UniformGrid>
|
||||
<TreeView/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,3 @@
|
||||
Public Class ManageLayerExpanderView
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,7 @@
|
||||
Namespace EgtCAM5
|
||||
|
||||
Public Class ManageLayerExpanderViewModel
|
||||
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@@ -0,0 +1,13 @@
|
||||
<UserControl x:Class="ProjectView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtUILib="clr-namespace:EgtUILib;assembly=EgtUILib"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300" d:DesignWidth="300" Loaded="UserControl_Loaded">
|
||||
|
||||
<!--ContentControl che ospita la scena restituita sotto forma di WindowsFormsHost-->
|
||||
<ContentControl Content="{Binding ProjectSceneHost}"/>
|
||||
|
||||
</UserControl>
|
||||
@@ -0,0 +1,12 @@
|
||||
Imports EgtUILib
|
||||
|
||||
Public Class ProjectView
|
||||
|
||||
Private Sub UserControl_Loaded(sender As Object, e As RoutedEventArgs)
|
||||
' Inizializzo la scena
|
||||
'If Not ProjectScene.Init() Then
|
||||
' EgtOutLog("Errore nella creazione della scena")
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,605 @@
|
||||
Imports System.Windows.Forms.Integration
|
||||
Imports System.IO
|
||||
Imports EgtUILib
|
||||
|
||||
Namespace EgtCAM5
|
||||
|
||||
Public Class ProjectViewModel
|
||||
Inherits TabViewModel
|
||||
|
||||
#Region "FIELDS"
|
||||
|
||||
'PROJECT PAGE'S PANELS
|
||||
Private m_GridViewPanel As BaseWindowView
|
||||
Private m_DrawPanel As BaseWindowView
|
||||
Private m_DrawOptionPanel As BaseWindowView
|
||||
|
||||
'PROJECT PAGE'S SCENE FIELDS AND PROPERTIES
|
||||
' Reference to the ProjectScene
|
||||
Private WithEvents m_ProjectScene As New Scene
|
||||
' Reference to the ProjectSceneHost
|
||||
Private SceneHost As WindowsFormsHost
|
||||
' Property used to bind the scene to the WindowsFormsHost in XAML
|
||||
Private m_bfirst As Boolean = True
|
||||
Public ReadOnly Property ProjectSceneHost As WindowsFormsHost
|
||||
Get
|
||||
If m_bfirst Then
|
||||
SceneHost = New WindowsFormsHost() With {.Child = m_ProjectScene}
|
||||
If Not m_ProjectScene.Init() Then
|
||||
EgtOutLog("Error in Project scene creation")
|
||||
' Chiudo il programma
|
||||
Application.Msn.NotifyColleagues(Application.CLOSEAPPLICATION)
|
||||
End If
|
||||
IniFile.m_ProjectSceneContext = m_ProjectScene.GetCtx
|
||||
' inizializzo gestore lavorazioni
|
||||
EgtInitMachMgr(IniFile.m_sMachinesRoot)
|
||||
EgtOpenFile("c:\EgtData\Varie\Temp\Fiera02.Nge")
|
||||
EgtZoom(ZM.ALL)
|
||||
m_bfirst = False
|
||||
End If
|
||||
Return SceneHost
|
||||
End Get
|
||||
End Property
|
||||
' Scene controller
|
||||
Private WithEvents m_Controller As New Controller
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "EGTUILIB FIELDS"
|
||||
|
||||
Private m_bScriptRunning As Boolean = False
|
||||
|
||||
' Variabile per implementazione eventi
|
||||
Private m_InputText As String
|
||||
#End Region
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Sub New()
|
||||
Me.sTabName = EgtMsg(MSG_MAINWINDOW + 1)
|
||||
m_GridViewPanel = New BaseWindowView
|
||||
m_GridViewPanel.DataContext = New GridViewPanelViewModel
|
||||
m_GridViewPanel.Show()
|
||||
m_DrawPanel = New BaseWindowView
|
||||
m_DrawPanel.DataContext = New DrawPanelViewModel
|
||||
m_DrawPanel.Show()
|
||||
m_DrawOptionPanel = New BaseWindowView
|
||||
m_DrawOptionPanel.DataContext = New DrawOptionPanelViewModel
|
||||
m_DrawOptionPanel.Show()
|
||||
ManagePanelVisibility()
|
||||
RegisterDrawPanelCommands()
|
||||
'Impostazioni Controller
|
||||
m_Controller.SetScene(m_ProjectScene)
|
||||
'Dim bLuaReg As Boolean = (GetPrivateProfileInt(S_GENERAL, K_COMMANDLOG, 0, m_sIniFile) <> 0)
|
||||
'Dim sCmdLogFile As String = CMDLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
|
||||
'If Not m_Controller.SetCommandLog(bLuaReg, m_sTempDir, sCmdLogFile) Then
|
||||
' EgtOutLog("Command log not started")
|
||||
' 'If My.Application.CommandLineArgs.Count() = 0 Then
|
||||
' ' MessageBox.Show("Command log not started", "TestEIn Warning",
|
||||
' ' MessageBoxButtons.OK, MessageBoxIcon.Warning)
|
||||
' 'End If
|
||||
'End If
|
||||
|
||||
|
||||
' MESSAGGI PER IL CONTROLLER
|
||||
Application.Msn.Register(Application.NOTIFYINPUTTEXT, Sub(sInputText As String)
|
||||
m_InputText = sInputText
|
||||
End Sub)
|
||||
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
''' <summary>
|
||||
''' Method that manage the visibility of the ProjectPage's Panels
|
||||
''' </summary>
|
||||
Sub ManagePanelVisibility()
|
||||
Application.Msn.Register(Application.PROJECTPAGE_SELECTED, Sub()
|
||||
m_GridViewPanel.Visibility = Visibility.Visible
|
||||
m_DrawPanel.Visibility = Visibility.Visible
|
||||
m_DrawOptionPanel.Visibility = Visibility.Visible
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.PROJECTPAGE_DESELECTED, Sub()
|
||||
m_GridViewPanel.Visibility = Visibility.Hidden
|
||||
m_DrawPanel.Visibility = Visibility.Hidden
|
||||
m_DrawOptionPanel.Visibility = Visibility.Hidden
|
||||
End Sub)
|
||||
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Method that manage the visibility of the ProjectPage's Panels
|
||||
''' </summary>
|
||||
Sub RegisterDrawPanelCommands()
|
||||
Application.Msn.Register(Application.WIREFRAME, Sub()
|
||||
m_ProjectScene.WireFrame()
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.HIDDENLINE, Sub()
|
||||
m_ProjectScene.HiddenLine()
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.SHADING, Sub()
|
||||
m_ProjectScene.Shading()
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.ZOOMALL, Sub()
|
||||
m_ProjectScene.ZoomAll()
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.ZOOMIN, Sub()
|
||||
m_ProjectScene.ZoomIn()
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.ZOOMOUT, Sub()
|
||||
m_ProjectScene.ZoomOut()
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.TOPVIEW, Sub()
|
||||
m_ProjectScene.TopView()
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.FRONTVIEW, Sub()
|
||||
m_ProjectScene.FrontView()
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.LEFTVIEW, Sub()
|
||||
m_ProjectScene.LeftView()
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.BACKVIEW, Sub()
|
||||
m_ProjectScene.BackView()
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.RIGHTVIEW, Sub()
|
||||
m_ProjectScene.RightView()
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.ISOVIEWSW, Sub()
|
||||
m_ProjectScene.IsoViewSW()
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.ISOVIEWSE, Sub()
|
||||
m_ProjectScene.IsoViewSE()
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.ISOVIEWNE, Sub()
|
||||
m_ProjectScene.IsoViewNE()
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.ISOVIEWNW, Sub()
|
||||
m_ProjectScene.IsoViewNW()
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CURVEDIR, Sub()
|
||||
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.ANALYZE, Sub()
|
||||
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.GETDIST, Sub()
|
||||
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CPLANETOP, Sub()
|
||||
m_Controller.SetLastInteger(Controller.GRID_TYPE.TOP)
|
||||
m_Controller.ExecuteCommand(Controller.CMD.GRID)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CPLANEFRONT, Sub()
|
||||
m_Controller.SetLastInteger(Controller.GRID_TYPE.FRONT)
|
||||
m_Controller.ExecuteCommand(Controller.CMD.GRID)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CPLANERIGHT, Sub()
|
||||
m_Controller.SetLastInteger(Controller.GRID_TYPE.RIGHT)
|
||||
m_Controller.ExecuteCommand(Controller.CMD.GRID)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CPLANEBACK, Sub()
|
||||
m_Controller.SetLastInteger(Controller.GRID_TYPE.BACK)
|
||||
m_Controller.ExecuteCommand(Controller.CMD.GRID)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CPLANELEFT, Sub()
|
||||
m_Controller.SetLastInteger(Controller.GRID_TYPE.LEFT)
|
||||
m_Controller.ExecuteCommand(Controller.CMD.GRID)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CPLANEBOTTOM, Sub()
|
||||
m_Controller.SetLastInteger(Controller.GRID_TYPE.BOTTOM)
|
||||
m_Controller.ExecuteCommand(Controller.CMD.GRID)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CPLANEVIEW, Sub()
|
||||
m_Controller.SetLastInteger(Controller.GRID_TYPE.VIEW)
|
||||
m_Controller.ExecuteCommand(Controller.CMD.GRID)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CPLANEELEVATION, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.GRID_ELEVATION)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CPLANEORIGIN, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.GRID_ORIGIN)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CPLANEROTATE, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
|
||||
m_Controller.ExecuteCommand(Controller.CMD.GRID_ROTATE)
|
||||
Else
|
||||
m_Controller.ExecuteCommand(Controller.CMD.GRID_ROTATE3D)
|
||||
End If
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CPLANE3P, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.GRID_3P)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CPLANEPERPOBJ, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.GRID_PERPCURVE)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CPLANEOBJ, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.GRID_OBJ)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.POINT, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control Then
|
||||
m_Controller.ExecuteCommand(Controller.CMD.FRAME)
|
||||
ElseIf (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
|
||||
m_Controller.ExecuteCommand(Controller.CMD.VECTOR)
|
||||
Else
|
||||
m_Controller.ExecuteCommand(Controller.CMD.POINT)
|
||||
End If
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.LINE2P, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control Then
|
||||
m_Controller.SetContinue()
|
||||
'EmitStripStatusOutput(EgtMsg(399)) ' Continue : 'L' with line, 'A' with arc
|
||||
End If
|
||||
m_Controller.ExecuteCommand(Controller.CMD.LINE2P)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.LINEPDL, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
|
||||
m_Controller.ExecuteCommand(Controller.CMD.LINEPDL)
|
||||
Else
|
||||
m_Controller.ExecuteCommand(Controller.CMD.LINEPVL)
|
||||
End If
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CIRCLE, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
|
||||
m_Controller.ExecuteCommand(Controller.CMD.CIRCLECP)
|
||||
Else
|
||||
m_Controller.ExecuteCommand(Controller.CMD.CIRCLECD)
|
||||
End If
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.ARCCSE, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.ARCCSE)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.ARC3P, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.ARC3P)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.ARCPDP, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
|
||||
If (Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control Then
|
||||
m_Controller.SetContinue()
|
||||
'EmitStripStatusOutput(EgtMsg(399)) ' Continue : 'L' with line, 'A' with arc
|
||||
End If
|
||||
m_Controller.ExecuteCommand(Controller.CMD.ARCPDP)
|
||||
Else
|
||||
m_Controller.ExecuteCommand(Controller.CMD.ARCPVP)
|
||||
End If
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.FILLET, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
|
||||
m_Controller.ExecuteCommand(Controller.CMD.FILLET)
|
||||
Else
|
||||
m_Controller.ExecuteCommand(Controller.CMD.CHAMFER)
|
||||
End If
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.RECTANGLE2P, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.RECTANGLE2P)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.POLYGON, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
|
||||
m_Controller.ExecuteCommand(Controller.CMD.POLYGON)
|
||||
Else
|
||||
m_Controller.ExecuteCommand(Controller.CMD.POLYGONSIDE)
|
||||
End If
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.TEXT, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
|
||||
m_Controller.ExecuteCommand(Controller.CMD.TEXT)
|
||||
Else
|
||||
m_Controller.ExecuteCommand(Controller.CMD.TEXTPLUS)
|
||||
End If
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.PLANE, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
|
||||
m_Controller.ExecuteCommand(Controller.CMD.REGION)
|
||||
Else
|
||||
m_Controller.ExecuteCommand(Controller.CMD.PLANE)
|
||||
End If
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.EXTRUDE, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.EXTRUDE)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.REVOLVE, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.REVOLVE)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.SCREW, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.SCREW)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.RULED, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.RULED)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.MERGESURF, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.MERGESURF)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.EXPLODESURF, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.EXPLODESURF)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.INVERTSURF, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.INVERTSURF)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.DELETE, Sub()
|
||||
m_Controller.SetLastInteger(GDB_ID.SEL)
|
||||
m_Controller.ExecuteCommand(Controller.CMD.DELETE)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CHANGELAYER, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.CHANGELAYER)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CHANGECOLOR, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control Then
|
||||
m_Controller.ExecuteCommand(Controller.CMD.CHANGEALPHA)
|
||||
ElseIf (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
|
||||
m_Controller.ExecuteCommand(Controller.CMD.RESETCOLOR)
|
||||
Else
|
||||
m_Controller.ExecuteCommand(Controller.CMD.CHANGECOLOR)
|
||||
End If
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.INVERTCURVE, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.INVERTCURVE)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.CHANGESTARTCURVE, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.CHANGESTARTCURVE)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.EXTENDCURVE, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.TRIMEXTENDCURVE)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.BREAKCURVE, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
|
||||
m_Controller.ExecuteCommand(Controller.CMD.BREAKCURVE)
|
||||
Else
|
||||
m_Controller.ExecuteCommand(Controller.CMD.SPLITCURVE)
|
||||
End If
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.JOINCURVE, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
|
||||
m_Controller.SetLastBoolean(False)
|
||||
Else
|
||||
m_Controller.SetLastBoolean(True)
|
||||
End If
|
||||
m_Controller.ExecuteCommand(Controller.CMD.JOINCURVE)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.EXPLODECURVE, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.EXPLODECURVE)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.SETCURVETH, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.SETCURVETHICKNESS)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.MOVE, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.MOVE)
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.ROTATE, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
|
||||
m_Controller.ExecuteCommand(Controller.CMD.ROTATE)
|
||||
Else
|
||||
m_Controller.ExecuteCommand(Controller.CMD.ROTATE3D)
|
||||
End If
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.MIRROR, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
|
||||
m_Controller.ExecuteCommand(Controller.CMD.MIRROR)
|
||||
Else
|
||||
m_Controller.ExecuteCommand(Controller.CMD.MIRROR3D)
|
||||
End If
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.SCALE, Sub()
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
|
||||
m_Controller.ExecuteCommand(Controller.CMD.SCALE)
|
||||
Else
|
||||
m_Controller.ExecuteCommand(Controller.CMD.SCALE3D)
|
||||
End If
|
||||
End Sub)
|
||||
Application.Msn.Register(Application.OFFSET, Sub()
|
||||
m_Controller.ExecuteCommand(Controller.CMD.OFFSET)
|
||||
End Sub)
|
||||
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "SCENE EVENTS"
|
||||
|
||||
Private Sub OnCursorPos(ByVal sender As Object, ByVal sCursorPos As String) Handles m_ProjectScene.OnCursorPos
|
||||
Application.Msn.NotifyColleagues(Application.NOTIFYCURRPOSCHANGED, sCursorPos)
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseSelectedAll(ByVal sender As Object) Handles m_ProjectScene.OnMouseSelectedAll
|
||||
m_Controller.MouseSelectedAll()
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseDeselectedAll(ByVal sender As Object) Handles m_ProjectScene.OnMouseDeselectedAll
|
||||
m_Controller.MouseDeselectedAll()
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseSelectedObj(ByVal sender As Object, ByVal nId As Integer, ByVal bLast As Boolean) Handles m_ProjectScene.OnMouseSelectedObj
|
||||
m_Controller.MouseSelectedObj(nId, bLast)
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseSelectedPart(ByVal sender As Object, ByVal nId As Integer) Handles m_ProjectScene.OnMouseSelectedPart
|
||||
m_Controller.MouseSelectedPart(nId)
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseSelectedLayer(ByVal sender As Object, ByVal nId As Integer) Handles m_ProjectScene.OnMouseSelectedLayer
|
||||
m_Controller.MouseSelectedLayer(nId)
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseSelectedPath(ByVal sender As Object, ByVal nId As Integer, ByVal bHaltOnFork As Boolean) Handles m_ProjectScene.OnMouseSelectedPath
|
||||
m_Controller.MouseSelectedPath(nId, bHaltOnFork)
|
||||
End Sub
|
||||
|
||||
Private Sub OnMousePointFromSelection(ByVal sender As Object, ByVal nId As Integer, ByVal PtP As Point3d, ByVal nAux As Integer) Handles m_ProjectScene.OnMousePointFromSelection
|
||||
m_Controller.SetPointFromSelection(nId, PtP, nAux)
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseDone(ByVal sender As Object) Handles m_ProjectScene.OnMouseDone
|
||||
m_Controller.Done(m_InputText)
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseSelectedPoint(ByVal sender As Object, ByVal PtP As Point3d, ByVal nSep As SEP, ByVal nId As Integer) Handles m_ProjectScene.OnMouseSelectedPoint
|
||||
Dim bDone As Boolean = (Keyboard.Modifiers And ModifierKeys.Control) <> ModifierKeys.Control
|
||||
m_Controller.MouseSelectedPoint(PtP, nSep, nId, bDone)
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseSelectedDir(ByVal sender As Object, ByVal VtDir As Vector3d) Handles m_ProjectScene.OnMouseSelectedDir
|
||||
m_Controller.SetLastVector3d(VtDir)
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseMoveSelPoint(ByVal sender As Object, ByVal PtP As Point3d) Handles m_ProjectScene.OnMouseMoveSelPoint
|
||||
m_Controller.MouseMoveInSelectionPoint(PtP)
|
||||
End Sub
|
||||
|
||||
' Private Sub OnMouseAnalyzed(ByVal sender As Object, ByVal nId As Integer) Handles m_ProjectScene.OnMouseAnalyzed
|
||||
' UpdateObjInObjTree(nId)
|
||||
' SelectIdInObjTree(nId)
|
||||
' End Sub
|
||||
|
||||
Private Sub OnShowDistance(ByVal sender As Object, ByVal sDistance As String) Handles m_ProjectScene.OnShowDistance
|
||||
Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSOUTPUT, sDistance)
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "CONTROLLER EVENTS"
|
||||
|
||||
Private Sub OnNewProject(ByVal sender As Object, ByVal bOk As Boolean) Handles m_Controller.OnNewProject
|
||||
If Not bOk Then
|
||||
MessageBox.Show(EgtMsg(10002), EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' Error on new file - Error
|
||||
End If
|
||||
End Sub
|
||||
|
||||
' Private Sub OnOpeningProject(ByVal sender As Object) Handles m_Controller.OnOpeningProject
|
||||
' ClearObjTree()
|
||||
' End Sub
|
||||
|
||||
Private Sub OnOpenProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean) Handles m_Controller.OnOpenProject
|
||||
WritePrivateProfileString(S_GENERAL, K_LASTNGEDIR, Path.GetDirectoryName(sFile))
|
||||
'If bOk Then
|
||||
' m_MruFiles.Add(sFile)
|
||||
'Else
|
||||
' m_MruFiles.Remove(sFile)
|
||||
' Dim sMsg As String = EgtMsg(10003) & " '" & sFile & "'" 'Error opening file
|
||||
' MessageBox.Show(sMsg, EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) 'Error
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnSavingProject(ByVal sender As Object) Handles m_Controller.OnSavingProject
|
||||
End Sub
|
||||
|
||||
Private Sub OnSavedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean) Handles m_Controller.OnSavedProject
|
||||
WritePrivateProfileString(S_GENERAL, K_LASTNGEDIR, Path.GetDirectoryName(sFile))
|
||||
'If bOk Then
|
||||
' m_MruFiles.Add(sFile)
|
||||
'Else
|
||||
' m_MruFiles.Remove(sFile)
|
||||
' Dim sMsg As String = EgtMsg(10004) & " '" & sFile & "'" 'Error saving file
|
||||
' MessageBox.Show(sMsg, EgtMsg(10001), MessageBoxButtons.OK, MessageBoxIcon.Error) ' Error
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnSavingObject(ByVal sender As Object) Handles m_Controller.OnSavingObject
|
||||
End Sub
|
||||
|
||||
Private Sub OnSavedObject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean) Handles m_Controller.OnSavedObject
|
||||
WritePrivateProfileString(S_GENERAL, K_LASTNGEOBJDIR, Path.GetDirectoryName(sFile))
|
||||
'If bOk Then
|
||||
' m_MruFiles.Add(sFile)
|
||||
'Else
|
||||
' m_MruFiles.Remove(sFile)
|
||||
' Dim sMsg As String = EgtMsg(10004) & " '" & sFile & "'" 'Error saving file
|
||||
' MessageBox.Show(sMsg, EgtMsg(10001), MessageBoxButtons.OK, MessageBoxIcon.Error) ' Error
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnImportingProject(ByVal sender As Object, ByVal bOkType As Boolean) Handles m_Controller.OnImportingProject
|
||||
If bOkType Then
|
||||
'ClearObjTree()
|
||||
Else
|
||||
MessageBox.Show(EgtMsg(10005), EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' File type unknown - Error
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnImportedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean) Handles m_Controller.OnImportedProject
|
||||
WritePrivateProfileString(S_GENERAL, K_LASTIMPDIR, Path.GetDirectoryName(sFile))
|
||||
If Not bOk Then
|
||||
Dim sMsg As String = EgtMsg(10006) & " '" & sFile & "'" 'Error importing file
|
||||
MessageBox.Show(sMsg, EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' Error
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnExportingProject(ByVal sender As Object) Handles m_Controller.OnExportingProject
|
||||
End Sub
|
||||
|
||||
Private Sub OnExportedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean) Handles m_Controller.OnExportedProject
|
||||
WritePrivateProfileString(S_GENERAL, K_LASTEXPDIR, Path.GetDirectoryName(sFile))
|
||||
If Not bOk Then
|
||||
Dim sMsg As String = EgtMsg(10007) & " '" & sFile & "'" 'Error exporting file
|
||||
MessageBox.Show(sMsg, EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' Error
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnExecutingScript(ByVal sender As Object) Handles m_Controller.OnExecutingScript
|
||||
'ClearObjTree()
|
||||
'Abilito progress e bottone stop
|
||||
Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSPROGRESS, 0)
|
||||
Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSSTOP_ISENABLED, True)
|
||||
' Dichiaro script in esecuzione
|
||||
m_bScriptRunning = True
|
||||
End Sub
|
||||
|
||||
Private Sub OnExecutedScript(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean, ByVal sError As String) Handles m_Controller.OnExecutedScript
|
||||
' Salvo path dello script in lista recenti
|
||||
WritePrivateProfileString(S_GENERAL, K_LASTLUADIR, Path.GetDirectoryName(sFile))
|
||||
'If bOk Then
|
||||
' m_MruScripts.Add(sFile)
|
||||
'Else
|
||||
' m_MruScripts.Remove(sFile)
|
||||
' MessageBox.Show(sError, EgtMsg(10001), MessageBoxButtons.OK, MessageBoxIcon.Error) ' Error
|
||||
'End If
|
||||
' Disabilito progress e bottone stop
|
||||
Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSPROGRESS, 0)
|
||||
Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSSTOP_ISENABLED, False)
|
||||
'' Dichiaro terminata esecuzione script
|
||||
m_bScriptRunning = False
|
||||
End Sub
|
||||
|
||||
Private Sub OnPrepareInputBox(ByVal sTitle As String, ByVal sLabel As String, ByVal sCheckLabel As String,
|
||||
ByVal bShowCombo As Boolean, ByVal bShowBtn As Boolean) Handles m_Controller.PrepareInputBox
|
||||
'PrepareInputBox(sTitle, sLabel, sCheckLabel, bShowCombo, bShowBtn)
|
||||
End Sub
|
||||
|
||||
' Private Sub OnSetInputBoxText(ByVal sText As String) Handles m_Controller.SetInputBoxText
|
||||
' SetInputBoxText(sText)
|
||||
' End Sub
|
||||
|
||||
' Private Sub OnSetInputBoxCheck(ByVal bCheck As Boolean) Handles m_Controller.SetInputBoxCheck
|
||||
' SetInputBoxCheck(bCheck)
|
||||
' End Sub
|
||||
|
||||
' Private Sub OnAddInputBoxCombo(ByVal sText As String, ByVal bSelected As Boolean) Handles m_Controller.AddInputBoxCombo
|
||||
' AddInputBoxCombo(sText, bSelected)
|
||||
' End Sub
|
||||
|
||||
' Private Sub OnUpdateUI(ByVal sender As Object, ByVal bReloadUI As Boolean) Handles m_Controller.UpdateUI
|
||||
' ' pulisco input e relativi messaggi
|
||||
' ResetInputBox()
|
||||
' If m_Controller.GetContinue() Then
|
||||
' EmitStripStatusOutput(EgtMsg(399)) ' Continue : 'L' with line, 'A' with arc
|
||||
' Else
|
||||
' EmitStripStatusOutput("")
|
||||
' End If
|
||||
' ' aggiorno dati correnti
|
||||
' EmitTitle()
|
||||
' EmitCurrPartLayer()
|
||||
' If bReloadUI Then
|
||||
' LoadObjTree()
|
||||
' Else
|
||||
' UpdateObjTree()
|
||||
' End If
|
||||
' End Sub
|
||||
|
||||
' Private Sub OutputInfo(ByVal sender As Object, ByVal sText As String) Handles m_Controller.OutputInfo
|
||||
' EmitStripStatusOutput(sText)
|
||||
' End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
|
After Width: | Height: | Size: 790 B |
|
After Width: | Height: | Size: 708 B |
|
After Width: | Height: | Size: 405 B |
|
After Width: | Height: | Size: 707 B |
|
After Width: | Height: | Size: 994 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 764 B |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 658 B |
|
After Width: | Height: | Size: 932 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 555 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 594 B |
|
After Width: | Height: | Size: 509 B |
|
After Width: | Height: | Size: 724 B |
|
After Width: | Height: | Size: 733 B |
|
After Width: | Height: | Size: 595 B |
|
After Width: | Height: | Size: 735 B |
|
After Width: | Height: | Size: 749 B |
|
After Width: | Height: | Size: 437 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 440 B |
|
After Width: | Height: | Size: 686 B |
|
After Width: | Height: | Size: 308 B |
|
After Width: | Height: | Size: 682 B |
|
After Width: | Height: | Size: 549 B |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 511 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 567 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 705 B |
|
After Width: | Height: | Size: 758 B |
|
After Width: | Height: | Size: 962 B |
|
After Width: | Height: | Size: 768 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 617 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 759 B |
|
After Width: | Height: | Size: 572 B |
|
After Width: | Height: | Size: 937 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.3 KiB |