OmagOFFICE :
- Aggiunta possibilità di devinire l'inclinazione dei singoli lati con angoli diversi grazie all'apposita opzione.
This commit is contained in:
@@ -77,6 +77,7 @@ Module ConstIni
|
||||
|
||||
Public Const S_COMPO As String = "Compo"
|
||||
Public Const K_COMPODIR As String = "CompoDir"
|
||||
Public Const K_SIDEMODE As String = "SideMode"
|
||||
|
||||
Public Const S_FLATPARTS As String = "FlatParts"
|
||||
Public Const K_FLPCURRDIR As String = "CurrDir"
|
||||
|
||||
@@ -10,6 +10,10 @@
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<GroupBox Header="{Binding CurrentLanguageMsg}"
|
||||
Grid.Column="0" Margin="0,0,5,5">
|
||||
@@ -27,7 +31,14 @@
|
||||
SelectedIndex="{Binding SelMeasureUnit}"
|
||||
Height="25"/>
|
||||
</GroupBox>
|
||||
|
||||
|
||||
<GroupBox Header="{Binding SideAngleHdr}"
|
||||
Grid.Row="1" Margin="0,0,5,5">
|
||||
<ComboBox ItemsSource="{Binding SideModeList, Mode=OneWay}"
|
||||
SelectedIndex="{Binding SelSideModeIndex}"
|
||||
Height="25"/>
|
||||
</GroupBox>
|
||||
|
||||
</Grid>
|
||||
|
||||
</EgtWPFLib5:EgtCustomWindow>
|
||||
|
||||
@@ -33,6 +33,26 @@ Public Class OptionWindowVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_SideModeList As List(Of String)
|
||||
Public ReadOnly Property SideModeList As List(Of String)
|
||||
Get
|
||||
Return m_SideModeList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_SelSideModeIndex As Integer
|
||||
Public Property SelSideModeIndex As Integer
|
||||
Get
|
||||
Return m_SelSideModeIndex
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
If value <> m_SelSideModeIndex Then
|
||||
m_SelSideModeIndex = value
|
||||
WriteMainPrivateProfileString(S_COMPO, K_SIDEMODE, m_SelSideModeIndex)
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property SelMeasureUnit As Integer
|
||||
Get
|
||||
Return If(EgtUiUnitsAreMM(), MeasureUnitOpt.MM, MeasureUnitOpt.INCH)
|
||||
@@ -78,6 +98,12 @@ Public Class OptionWindowVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property SideAngleHdr As String
|
||||
Get
|
||||
Return EgtMsg(MSG_OPTIONSPAGEUC + 5)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region
|
||||
|
||||
#End Region ' FIELDS & PROPERTIES
|
||||
@@ -99,6 +125,10 @@ Public Class OptionWindowVM
|
||||
End If
|
||||
nIndex += 1
|
||||
End While
|
||||
' Carico messaggi per lista tipologie di definizione angolo d'inclinazione
|
||||
m_SideModeList = New List(Of String)({EgtMsg(MSG_OPTIONSPAGEUC + 6), EgtMsg(MSG_OPTIONSPAGEUC + 7)})
|
||||
' Carico valore da file ini
|
||||
m_SelSideModeIndex = GetMainPrivateProfileInt(S_COMPO, K_SIDEMODE, 0)
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
|
||||
@@ -16,13 +16,17 @@
|
||||
<TextBlock Text="{Binding sEntityName}" VerticalAlignment="Center"/>
|
||||
<CheckBox IsChecked="{Binding bIsChecked}"
|
||||
Grid.Column="1"
|
||||
Visibility="{Binding Check_Visibility}"
|
||||
HorizontalAlignment="Center"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding GrphSideAngle}"
|
||||
Grid.Column="1"
|
||||
Visibility="{Binding Value_Visibility}"/>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
|
||||
<Grid Margin="0,0,0,5">
|
||||
<Grid Margin="0,0,0,5" Visibility="{Binding Parameter1_Visibility}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1.8*"/>
|
||||
<ColumnDefinition Width="1.2*"/>
|
||||
|
||||
@@ -23,6 +23,8 @@ Public Class SideEntityControlVM
|
||||
' Variabile che indica se sono in sideangle o drip
|
||||
Friend m_Mode As ModeOpt
|
||||
|
||||
Friend Shared m_SideAngleCheck As Boolean = False
|
||||
|
||||
' Lista di tutte le entità inclinabili presenti nel progetto
|
||||
Private m_SideEntityList As ObservableCollection(Of SideEntity)
|
||||
Public Property SideEntityList As ObservableCollection(Of SideEntity)
|
||||
@@ -45,6 +47,21 @@ Public Class SideEntityControlVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_Parameter1_Visibility As Visibility
|
||||
Public ReadOnly Property Parameter1_Visibility As Visibility
|
||||
Get
|
||||
If m_Mode = ModeOpt.SIDEANGLE Then
|
||||
If m_SideAngleCheck Then
|
||||
Return Visibility.Visible
|
||||
Else
|
||||
Return Visibility.Collapsed
|
||||
End If
|
||||
Else
|
||||
Return Visibility.Visible
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_Parameter1 As Double
|
||||
Public Property Parameter1 As String
|
||||
Get
|
||||
@@ -155,6 +172,7 @@ Public Class SideEntityControlVM
|
||||
m_Mode = Mode
|
||||
m_SideEntityList = If(IsNothing(SideEntityList), New ObservableCollection(Of SideEntity), New ObservableCollection(Of SideEntity)(SideEntityList))
|
||||
NotifyPropertyChanged("SideEntityList")
|
||||
m_SideAngleCheck = If(GetMainPrivateProfileInt(S_COMPO, K_SIDEMODE, 0) = 0, True, False)
|
||||
If CallingWindow = CallingWindowOpt.COMPO Then
|
||||
|
||||
' Imposto contesto corrente
|
||||
@@ -480,13 +498,13 @@ Public Class SideEntityControlVM
|
||||
Dim sEntityName As String = String.Empty
|
||||
EgtGetName(CurrLine, sEntityName)
|
||||
If m_CallingWindow = CallingWindowOpt.COMPO Then
|
||||
m_SideEntityList.Add(New SideAngleEntity(CurrLine, sEntityName, TextLayer, 0))
|
||||
m_SideEntityList.Add(New SideAngleEntity(CurrLine, sEntityName, TextLayer, 0, m_Mode))
|
||||
' Cancello inclinazione nell'apposito campo info
|
||||
EgtRemoveInfo(CurrLine, INFO_SIDE_ANGLE)
|
||||
' Creo testo con angolo di inclinazione 0
|
||||
AddTextToLine(sEntityName & " = 0°", TextLayer, CurrLine, 10, dBBoxRad, True)
|
||||
Else
|
||||
m_SideEntityList.Add(New SideAngleEntity(CurrLine, sEntityName, TextLayer, dSideAngleVal))
|
||||
m_SideEntityList.Add(New SideAngleEntity(CurrLine, sEntityName, TextLayer, dSideAngleVal, m_Mode))
|
||||
' Creo testo con angolo di inclinazione 0
|
||||
AddTextToLine(sEntityName & " = " & DoubleToString(dSideAngleVal, 1) & "°", TextLayer, CurrLine, 10, dBBoxRad, True)
|
||||
End If
|
||||
@@ -507,13 +525,13 @@ Public Class SideEntityControlVM
|
||||
Dim sEntityName As String = String.Empty
|
||||
EgtGetName(CurrLine, sEntityName)
|
||||
If m_CallingWindow = CallingWindowOpt.COMPO Then
|
||||
m_SideEntityList.Add(New DripEntity(CurrLine, sEntityName, TextLayer, False))
|
||||
m_SideEntityList.Add(New DripEntity(CurrLine, sEntityName, TextLayer, False, m_Mode))
|
||||
' Cancello gocciolatoio nell'apposito campo info
|
||||
EgtRemoveInfo(CurrLine, INFO_HAVE_DRIP)
|
||||
' Creo testo entità
|
||||
AddTextToLine(sEntityName, TextLayer, CurrLine, 10, dBBoxRad, True)
|
||||
Else
|
||||
m_SideEntityList.Add(New DripEntity(CurrLine, sEntityName, TextLayer, bHaveDripVal))
|
||||
m_SideEntityList.Add(New DripEntity(CurrLine, sEntityName, TextLayer, bHaveDripVal, m_Mode))
|
||||
' Creo testo con angolo di inclinazione 0
|
||||
AddTextToLine(sEntityName, TextLayer, CurrLine, 10, dBBoxRad, True)
|
||||
End If
|
||||
@@ -816,12 +834,43 @@ Public MustInherit Class SideEntity
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_Mode As SideEntityControlVM.ModeOpt
|
||||
Public ReadOnly Property Value_Visibility As Visibility
|
||||
Get
|
||||
If m_Mode = SideEntityControlVM.ModeOpt.SIDEANGLE Then
|
||||
If SideEntityControlVM.m_SideAngleCheck Then
|
||||
Return Visibility.Collapsed
|
||||
Else
|
||||
Return Visibility.Visible
|
||||
End If
|
||||
Else
|
||||
Return Visibility.Visible
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'Private m_Check_Visibility As Visibility
|
||||
Public ReadOnly Property Check_Visibility As Visibility
|
||||
Get
|
||||
If m_Mode = SideEntityControlVM.ModeOpt.SIDEANGLE Then
|
||||
If SideEntityControlVM.m_SideAngleCheck Then
|
||||
Return Visibility.Visible
|
||||
Else
|
||||
Return Visibility.Collapsed
|
||||
End If
|
||||
Else
|
||||
Return Visibility.Visible
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public MustOverride Property bIsChecked As Boolean
|
||||
|
||||
Sub New(nId As Integer, sEntityName As String, nTextId As Integer)
|
||||
Sub New(nId As Integer, sEntityName As String, nTextId As Integer, Mode As SideEntityControlVM.ModeOpt)
|
||||
m_nGeomId = nId
|
||||
m_sEntityName = sEntityName
|
||||
m_nTextId = nTextId
|
||||
m_Mode = Mode
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -834,6 +883,25 @@ Friend Class SideAngleEntity
|
||||
Friend Shared m_RefreshSideAngleText As Action
|
||||
|
||||
Private m_dSideAngle As Double
|
||||
Public Property GrphSideAngle As String
|
||||
Get
|
||||
Return DoubleToString(m_dSideAngle, 2)
|
||||
End Get
|
||||
Set(value As String)
|
||||
If value <> m_dSideAngle Then
|
||||
If Not String.IsNullOrWhiteSpace(value) Then
|
||||
StringToDouble(value, m_dSideAngle)
|
||||
Else
|
||||
' altrimenti lo imposto a zero
|
||||
m_dSideAngle = 0
|
||||
End If
|
||||
' Lo modifico nella geometria e nella lista inclinazioni
|
||||
m_ModifySideAngle(sEntityName, dSideAngle)
|
||||
' Aggiorno tutti i testi
|
||||
m_RefreshSideAngleText()
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Public Property dSideAngle As Double
|
||||
Get
|
||||
Return m_dSideAngle
|
||||
@@ -864,8 +932,8 @@ Friend Class SideAngleEntity
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(nId As Integer, sEntityName As String, nTextId As Integer, dSideAngle As Double)
|
||||
MyBase.New(nId, sEntityName, nTextId)
|
||||
Sub New(nId As Integer, sEntityName As String, nTextId As Integer, dSideAngle As Double, Mode As SideEntityControlVM.ModeOpt)
|
||||
MyBase.New(nId, sEntityName, nTextId, Mode)
|
||||
m_dSideAngle = dSideAngle
|
||||
End Sub
|
||||
|
||||
@@ -906,8 +974,8 @@ Friend Class DripEntity
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(nId As Integer, sEntityName As String, nTextId As Integer, bHaveDrip As Boolean)
|
||||
MyBase.New(nId, sEntityName, nTextId)
|
||||
Sub New(nId As Integer, sEntityName As String, nTextId As Integer, bHaveDrip As Boolean, Mode As SideEntityControlVM.ModeOpt)
|
||||
MyBase.New(nId, sEntityName, nTextId, Mode)
|
||||
m_bHaveDrip = bHaveDrip
|
||||
End Sub
|
||||
|
||||
|
||||
Reference in New Issue
Block a user