Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 70 additions & 2 deletions src/ScriptRunner/ScriptRunner.GUI/ParamsPanelFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@
using Avalonia;
using Avalonia.Collections;
using Avalonia.Controls;
using Avalonia.Controls.Shapes;
using Avalonia.Data;
using Avalonia.Data.Converters;
using Avalonia.Input;
using Avalonia.Layout;
using Avalonia.Media;
using Avalonia.Threading;
Expand All @@ -19,6 +21,7 @@
using ScriptRunner.GUI.Settings;
using ScriptRunner.GUI.ViewModels;
using ScriptRunner.GUI.Views;
using Path = System.IO.Path;

namespace ScriptRunner.GUI;

Expand Down Expand Up @@ -60,12 +63,76 @@ public ParamsPanel Create(ScriptConfig action, Dictionary<string, string> values

};
ToolTip.SetTip(label, param.Name);

var controlForEdit = controlRecord.Control;

if (param.Prompt is PromptType.Multilinetext or PromptType.FileContent)
{
bool _isResizing = false;
Point _lastPointerPosition = default;

var resizeHandle = new Border()
{
Height = 10,
Background = Brushes.Transparent,
HorizontalAlignment = HorizontalAlignment.Right,
ZIndex = 1,
Margin = new Thickness(0,-10,0,0),
VerticalAlignment = VerticalAlignment.Bottom,
Cursor = new Cursor(StandardCursorType.SizeNorthSouth)
};
resizeHandle.Child = new Icon()
{
Value = "fas fa-signal",
HorizontalAlignment = HorizontalAlignment.Right
};


resizeHandle.PointerPressed += (sender, e) =>
{
_isResizing = true;
_lastPointerPosition = e.GetPosition(paramsPanel);
e.Handled = true;
};

resizeHandle.PointerMoved += (sender, e) =>
{
if (_isResizing)
{
var currentPosition = e.GetPosition(paramsPanel);
var delta = currentPosition - _lastPointerPosition;

var textBox = controlRecord.Control;
textBox.Height = Math.Max(textBox.MinHeight, textBox.Height + delta.Y);

_lastPointerPosition = currentPosition;
}
};

resizeHandle.PointerReleased += (sender, e) =>
{
_isResizing = false;
};
//paramsPanel.Children.Add(resizeHandle);

var panel = new StackPanel()
{
Orientation = Orientation.Vertical
};
panel.Children.Add(controlRecord.Control);
panel.Children.Add(resizeHandle);
controlForEdit = panel;


}


var actionPanel = new StackPanel
{
Children =
{
label,
controlRecord.Control
controlForEdit
},
Classes =
{
Expand Down Expand Up @@ -269,7 +336,8 @@ private IControlRecord CreateControlRecord(ScriptParam p, string? value, int ind
Text = value,
TabIndex = index,
IsTabStop = true,
Width = 500
Width = 500,

}
};
case PromptType.FileContent:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
</StackPanel>
</ScrollViewer>
<ScrollViewer Grid.Row="1" ScrollChanged="ScrollChangedHandler" BringIntoViewOnFocusChange="False" Margin="0,0,0,10">
<SelectableTextBlock Classes="consoleOutput" Inlines="{Binding RichOutput}" ></SelectableTextBlock>
<SelectableTextBlock TextWrapping="Wrap" Classes="consoleOutput" Inlines="{Binding RichOutput}" ></SelectableTextBlock>
</ScrollViewer>
<StackPanel Grid.Row="2" IsVisible="{Binding ExecutionPending, Mode=OneWay}" Margin="0, 0, 0,10">
<ItemsRepeater ItemsSource="{Binding CurrentInteractiveInputs}">
Expand Down
Loading