Browse Source

Refactor NodePropertyViewTemplate and NodeSocket code

CPKreuz 1 year ago
parent
commit
f644303054

+ 9 - 12
src/PixiEditor.AvaloniaUI/Styles/Templates/NodePropertyViewTemplate.axaml

@@ -8,25 +8,22 @@
             <ControlTemplate>
             <ControlTemplate>
                 <Grid Margin="-5, 2" ColumnDefinitions="15, *, 15" MinHeight="18">
                 <Grid Margin="-5, 2" ColumnDefinitions="15, *, 15" MinHeight="18">
                     <properties:NodeSocket Name="PART_InputSocket"
                     <properties:NodeSocket Name="PART_InputSocket"
-                                           Node="{Binding DataContext.Node, RelativeSource={RelativeSource TemplatedParent}}"
-                                           Label="{Binding DataContext.DisplayName, RelativeSource={RelativeSource TemplatedParent}}"
                                            ClipToBounds="False"
                                            ClipToBounds="False"
+                                           Node="{Binding DataContext.Node, RelativeSource={RelativeSource TemplatedParent}}"
                                            SocketBrush="{Binding DataContext.SocketBrush, RelativeSource={RelativeSource TemplatedParent}}"
                                            SocketBrush="{Binding DataContext.SocketBrush, RelativeSource={RelativeSource TemplatedParent}}"
-                                           IsFunc="{Binding DataContext.IsFunc, RelativeSource={RelativeSource TemplatedParent}}"
-                                           IsVisible="{Binding DataContext.IsInput, 
-                    RelativeSource={RelativeSource TemplatedParent}}">
+                                           IsVisible="{Binding DataContext.IsInput, RelativeSource={RelativeSource TemplatedParent}}"
+                                           IsFunc="{Binding DataContext.IsFunc, RelativeSource={RelativeSource TemplatedParent}}">
                         <properties:NodeSocket.IsInput>
                         <properties:NodeSocket.IsInput>
                             <x:Boolean>True</x:Boolean>
                             <x:Boolean>True</x:Boolean>
                         </properties:NodeSocket.IsInput>
                         </properties:NodeSocket.IsInput>
                     </properties:NodeSocket>
                     </properties:NodeSocket>
-                    <ContentPresenter Grid.Column="1" Grid.Row="0" Grid.RowSpan="2" VerticalAlignment="Top" Content="{TemplateBinding Content}" />
-                    <properties:NodeSocket Grid.Column="2" Name="PART_OutputSocket"
-                                           Label="{Binding DataContext.DisplayName, RelativeSource={RelativeSource TemplatedParent}}"
-                                           HorizontalAlignment="Right"
-                                           ClipToBounds="False"
-                                           IsFunc="{Binding DataContext.IsFunc, RelativeSource={RelativeSource TemplatedParent}}"
+                    <ContentPresenter Grid.Column="1" VerticalAlignment="Top" Content="{TemplateBinding Content}" />
+                    <properties:NodeSocket Name="PART_OutputSocket"
+                                           ClipToBounds="False" HorizontalAlignment="Right"  Grid.Column="2"
+                                           Node="{Binding DataContext.Node, RelativeSource={RelativeSource TemplatedParent}}"
+                                           SocketBrush="{Binding DataContext.SocketBrush, RelativeSource={RelativeSource TemplatedParent}}"
                                            IsVisible="{Binding !DataContext.IsInput,RelativeSource={RelativeSource TemplatedParent}}"
                                            IsVisible="{Binding !DataContext.IsInput,RelativeSource={RelativeSource TemplatedParent}}"
-                                           SocketBrush="{Binding DataContext.SocketBrush, RelativeSource={RelativeSource TemplatedParent}}">
+                                           IsFunc="{Binding DataContext.IsFunc, RelativeSource={RelativeSource TemplatedParent}}">
                         <properties:NodeSocket.IsInput>
                         <properties:NodeSocket.IsInput>
                             <x:Boolean>False</x:Boolean>
                             <x:Boolean>False</x:Boolean>
                         </properties:NodeSocket.IsInput>
                         </properties:NodeSocket.IsInput>

+ 3 - 12
src/PixiEditor.AvaloniaUI/Views/Nodes/Properties/NodeSocket.cs

@@ -10,12 +10,10 @@ namespace PixiEditor.AvaloniaUI.Views.Nodes.Properties;
 
 
 public class NodeSocket : TemplatedControl
 public class NodeSocket : TemplatedControl
 {
 {
-    public static readonly StyledProperty<bool> IsInputProperty = AvaloniaProperty.Register<NodeSocket, bool>("IsInput");
+    public static readonly StyledProperty<bool> IsInputProperty = AvaloniaProperty.Register<NodeSocket, bool>(nameof(IsInput));
     public static readonly StyledProperty<bool> IsFuncProperty = AvaloniaProperty.Register<NodeSocket, bool>(nameof(IsFunc));
     public static readonly StyledProperty<bool> IsFuncProperty = AvaloniaProperty.Register<NodeSocket, bool>(nameof(IsFunc));
-    public static readonly StyledProperty<string> LabelProperty = AvaloniaProperty.Register<NodeSocket, string>("Label");
 
 
-    public static readonly StyledProperty<IBrush> SocketBrushProperty = AvaloniaProperty.Register<NodeSocket, IBrush>(
-        "SocketBrush");
+    public static readonly StyledProperty<IBrush> SocketBrushProperty = AvaloniaProperty.Register<NodeSocket, IBrush>(nameof(SocketBrush));
 
 
     public IBrush SocketBrush
     public IBrush SocketBrush
     {
     {
@@ -23,8 +21,7 @@ public class NodeSocket : TemplatedControl
         set => SetValue(SocketBrushProperty, value);
         set => SetValue(SocketBrushProperty, value);
     }
     }
 
 
-    public static readonly StyledProperty<INodeHandler> NodeProperty = AvaloniaProperty.Register<NodeSocket, INodeHandler>(
-        "Node");
+    public static readonly StyledProperty<INodeHandler> NodeProperty = AvaloniaProperty.Register<NodeSocket, INodeHandler>(nameof(Node));
 
 
     public INodeHandler Node
     public INodeHandler Node
     {
     {
@@ -43,12 +40,6 @@ public class NodeSocket : TemplatedControl
         get => GetValue(IsFuncProperty);
         get => GetValue(IsFuncProperty);
         set => SetValue(IsFuncProperty, value);
         set => SetValue(IsFuncProperty, value);
     }
     }
-
-    public string Label
-    {
-        get { return (string)GetValue(LabelProperty); }
-        set { SetValue(LabelProperty, value); }
-    }
     
     
     public Control ConnectPort { get; set; }
     public Control ConnectPort { get; set; }