Initial commit to new repository
This commit is contained in:
228
.decompiledproj/AxCopilot/Views/InputDialog.cs
Normal file
228
.decompiledproj/AxCopilot/Views/InputDialog.cs
Normal file
@@ -0,0 +1,228 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Effects;
|
||||
|
||||
namespace AxCopilot.Views;
|
||||
|
||||
internal sealed class InputDialog : Window
|
||||
{
|
||||
private readonly TextBox _textBox;
|
||||
|
||||
public string ResponseText => _textBox.Text;
|
||||
|
||||
public InputDialog(string title, string prompt, string defaultValue = "", string placeholder = "")
|
||||
{
|
||||
base.WindowStartupLocation = WindowStartupLocation.CenterOwner;
|
||||
base.ResizeMode = ResizeMode.NoResize;
|
||||
base.WindowStyle = WindowStyle.None;
|
||||
base.AllowsTransparency = true;
|
||||
base.Background = Brushes.Transparent;
|
||||
base.Width = 400.0;
|
||||
base.SizeToContent = SizeToContent.Height;
|
||||
Brush background = (Application.Current.TryFindResource("LauncherBackground") as Brush) ?? new SolidColorBrush(Color.FromRgb(26, 27, 46));
|
||||
Brush borderBrush = (Application.Current.TryFindResource("BorderColor") as Brush) ?? Brushes.Gray;
|
||||
Brush foreground = (Application.Current.TryFindResource("PrimaryText") as Brush) ?? Brushes.White;
|
||||
Brush foreground2 = (Application.Current.TryFindResource("SecondaryText") as Brush) ?? Brushes.Gray;
|
||||
Brush accentBrush = (Application.Current.TryFindResource("AccentColor") as Brush) ?? Brushes.CornflowerBlue;
|
||||
Brush background2 = (Application.Current.TryFindResource("ItemBackground") as Brush) ?? new SolidColorBrush(Color.FromRgb(42, 43, 62));
|
||||
Border border = new Border
|
||||
{
|
||||
Background = background,
|
||||
BorderBrush = borderBrush,
|
||||
BorderThickness = new Thickness(1.0),
|
||||
CornerRadius = new CornerRadius(14.0),
|
||||
Margin = new Thickness(16.0),
|
||||
Effect = new DropShadowEffect
|
||||
{
|
||||
BlurRadius = 24.0,
|
||||
ShadowDepth = 6.0,
|
||||
Opacity = 0.35,
|
||||
Color = Colors.Black,
|
||||
Direction = 270.0
|
||||
}
|
||||
};
|
||||
StackPanel stackPanel = new StackPanel
|
||||
{
|
||||
Margin = new Thickness(24.0, 20.0, 24.0, 20.0)
|
||||
};
|
||||
StackPanel stackPanel2 = new StackPanel
|
||||
{
|
||||
Orientation = Orientation.Horizontal,
|
||||
Margin = new Thickness(0.0, 0.0, 0.0, 16.0)
|
||||
};
|
||||
stackPanel2.Children.Add(new TextBlock
|
||||
{
|
||||
Text = "\ue8ac",
|
||||
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
||||
FontSize = 16.0,
|
||||
Foreground = accentBrush,
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
Margin = new Thickness(0.0, 0.0, 10.0, 0.0)
|
||||
});
|
||||
stackPanel2.Children.Add(new TextBlock
|
||||
{
|
||||
Text = title,
|
||||
FontSize = 15.0,
|
||||
FontWeight = FontWeights.SemiBold,
|
||||
Foreground = foreground,
|
||||
VerticalAlignment = VerticalAlignment.Center
|
||||
});
|
||||
stackPanel.Children.Add(stackPanel2);
|
||||
stackPanel.Children.Add(new TextBlock
|
||||
{
|
||||
Text = prompt,
|
||||
FontSize = 12.5,
|
||||
Foreground = foreground2,
|
||||
Margin = new Thickness(0.0, 0.0, 0.0, 8.0)
|
||||
});
|
||||
_textBox = new TextBox
|
||||
{
|
||||
Text = defaultValue,
|
||||
FontSize = 13.0,
|
||||
Padding = new Thickness(14.0, 8.0, 14.0, 8.0),
|
||||
Foreground = foreground,
|
||||
Background = Brushes.Transparent,
|
||||
CaretBrush = accentBrush,
|
||||
BorderThickness = new Thickness(0.0),
|
||||
BorderBrush = Brushes.Transparent
|
||||
};
|
||||
_textBox.KeyDown += delegate(object _, KeyEventArgs e)
|
||||
{
|
||||
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0008: Invalid comparison between Unknown and I4
|
||||
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_002c: Invalid comparison between Unknown and I4
|
||||
if ((int)e.Key == 6)
|
||||
{
|
||||
base.DialogResult = true;
|
||||
Close();
|
||||
}
|
||||
if ((int)e.Key == 13)
|
||||
{
|
||||
base.DialogResult = false;
|
||||
Close();
|
||||
}
|
||||
};
|
||||
TextBlock placeholderBlock = new TextBlock
|
||||
{
|
||||
Text = placeholder,
|
||||
FontSize = 13.0,
|
||||
Foreground = foreground2,
|
||||
Opacity = 0.5,
|
||||
IsHitTestVisible = false,
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
Padding = new Thickness(14.0, 8.0, 14.0, 8.0),
|
||||
Visibility = ((!string.IsNullOrEmpty(defaultValue) || string.IsNullOrEmpty(placeholder)) ? Visibility.Collapsed : Visibility.Visible)
|
||||
};
|
||||
_textBox.TextChanged += delegate
|
||||
{
|
||||
placeholderBlock.Visibility = ((!string.IsNullOrEmpty(_textBox.Text)) ? Visibility.Collapsed : Visibility.Visible);
|
||||
};
|
||||
Grid child = new Grid
|
||||
{
|
||||
Children =
|
||||
{
|
||||
(UIElement)_textBox,
|
||||
(UIElement)placeholderBlock
|
||||
}
|
||||
};
|
||||
Border inputBorder = new Border
|
||||
{
|
||||
CornerRadius = new CornerRadius(10.0),
|
||||
BorderBrush = borderBrush,
|
||||
BorderThickness = new Thickness(1.0),
|
||||
Background = background2,
|
||||
Child = child
|
||||
};
|
||||
_textBox.GotFocus += delegate
|
||||
{
|
||||
inputBorder.BorderBrush = accentBrush;
|
||||
};
|
||||
_textBox.LostFocus += delegate
|
||||
{
|
||||
inputBorder.BorderBrush = borderBrush;
|
||||
};
|
||||
stackPanel.Children.Add(inputBorder);
|
||||
StackPanel stackPanel3 = new StackPanel
|
||||
{
|
||||
Orientation = Orientation.Horizontal,
|
||||
HorizontalAlignment = HorizontalAlignment.Right,
|
||||
Margin = new Thickness(0.0, 18.0, 0.0, 0.0)
|
||||
};
|
||||
Button button = CreateButton("취소", Brushes.Transparent, foreground2, borderBrush);
|
||||
button.Click += delegate
|
||||
{
|
||||
base.DialogResult = false;
|
||||
Close();
|
||||
};
|
||||
stackPanel3.Children.Add(button);
|
||||
Button button2 = CreateButton("확인", accentBrush, Brushes.White, null);
|
||||
button2.Click += delegate
|
||||
{
|
||||
base.DialogResult = true;
|
||||
Close();
|
||||
};
|
||||
stackPanel3.Children.Add(button2);
|
||||
stackPanel.Children.Add(stackPanel3);
|
||||
border.Child = stackPanel;
|
||||
base.Content = border;
|
||||
stackPanel2.MouseLeftButtonDown += delegate(object _, MouseButtonEventArgs e)
|
||||
{
|
||||
if (e.ClickCount == 1)
|
||||
{
|
||||
DragMove();
|
||||
}
|
||||
};
|
||||
base.Loaded += delegate
|
||||
{
|
||||
_textBox.Focus();
|
||||
_textBox.SelectAll();
|
||||
};
|
||||
}
|
||||
|
||||
private static Button CreateButton(string text, Brush background, Brush foreground, Brush? borderBrush)
|
||||
{
|
||||
Button button = new Button
|
||||
{
|
||||
Cursor = Cursors.Hand,
|
||||
Margin = new Thickness(0.0, 0.0, 0.0, 0.0)
|
||||
};
|
||||
if (text == "취소")
|
||||
{
|
||||
button.Margin = new Thickness(0.0, 0.0, 8.0, 0.0);
|
||||
}
|
||||
ControlTemplate controlTemplate = new ControlTemplate(typeof(Button));
|
||||
FrameworkElementFactory frameworkElementFactory = new FrameworkElementFactory(typeof(Border));
|
||||
frameworkElementFactory.SetValue(Border.BackgroundProperty, background);
|
||||
frameworkElementFactory.SetValue(Border.CornerRadiusProperty, new CornerRadius(8.0));
|
||||
frameworkElementFactory.SetValue(Border.PaddingProperty, new Thickness(20.0, 8.0, 20.0, 8.0));
|
||||
frameworkElementFactory.Name = "Bd";
|
||||
if (borderBrush != null)
|
||||
{
|
||||
frameworkElementFactory.SetValue(Border.BorderBrushProperty, borderBrush);
|
||||
frameworkElementFactory.SetValue(Border.BorderThicknessProperty, new Thickness(1.0));
|
||||
}
|
||||
FrameworkElementFactory frameworkElementFactory2 = new FrameworkElementFactory(typeof(ContentPresenter));
|
||||
frameworkElementFactory2.SetValue(FrameworkElement.HorizontalAlignmentProperty, HorizontalAlignment.Center);
|
||||
frameworkElementFactory2.SetValue(FrameworkElement.VerticalAlignmentProperty, VerticalAlignment.Center);
|
||||
frameworkElementFactory.AppendChild(frameworkElementFactory2);
|
||||
controlTemplate.VisualTree = frameworkElementFactory;
|
||||
Trigger trigger = new Trigger
|
||||
{
|
||||
Property = UIElement.IsMouseOverProperty,
|
||||
Value = true
|
||||
};
|
||||
trigger.Setters.Add(new Setter(UIElement.OpacityProperty, 0.85));
|
||||
controlTemplate.Triggers.Add(trigger);
|
||||
button.Template = controlTemplate;
|
||||
button.Content = new TextBlock
|
||||
{
|
||||
Text = text,
|
||||
FontSize = 13.0,
|
||||
Foreground = foreground
|
||||
};
|
||||
return button;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user