Files
LuaCsForBarotraumaEP/Libraries/MonoGame.Framework/Src/Tools/Pipeline/Dialogs/PathDialog.cs
2019-06-25 16:00:44 +03:00

70 lines
2.1 KiB
C#

// MonoGame - Copyright (C) The MonoGame Team
// This file is subject to the terms and conditions defined in
// file 'LICENSE.txt', which is part of this source code package.
using System;
using Eto.Forms;
namespace MonoGame.Tools.Pipeline
{
partial class PathDialog : Dialog<bool>
{
public string Path { get; set; }
private readonly string[] symbols = { "Platform", "Configuration", "Config", "Profile" };
private IController _controller;
public PathDialog(IController controller, string path)
{
InitializeComponent();
_controller = controller;
textBox1.Text = path;
}
private void ButtonSymbol_Click(object sender, EventArgs e)
{
var text = "$(" + (sender as Button).Text + ")";
int carret;
if (!string.IsNullOrEmpty(textBox1.SelectedText))
{
carret = textBox1.Selection.Start;
textBox1.Text = textBox1.Text.Remove(carret, textBox1.Selection.End + 1 - carret);
}
else
carret = textBox1.CaretIndex;
textBox1.Text = textBox1.Text.Insert(carret, text);
textBox1.Focus();
textBox1.CaretIndex = carret + text.Length;
}
private void TextBox1_TextChanged(object sender, EventArgs e)
{
Path = textBox1.Text;
DefaultButton.Enabled = !string.IsNullOrWhiteSpace(textBox1.Text);
}
private void ButtonBrowse_Click(object sender, EventArgs e)
{
var dialog = new SelectFolderDialog();
dialog.Directory = _controller.GetFullPath(textBox1.Text);
if (dialog.ShowDialog(this) == DialogResult.Ok)
textBox1.Text = _controller.GetRelativePath(dialog.Directory);
}
private void ButtonOk_Click(object sender, EventArgs e)
{
Result = true;
Close();
}
private void ButtonCancel_Click(object sender, EventArgs e)
{
Close();
}
}
}