57 lines
1.9 KiB
C#
57 lines
1.9 KiB
C#
using System.Windows;
|
|
using System.Windows.Controls;
|
|
|
|
namespace DynamicGUI
|
|
{
|
|
public partial class StringSettingControl : UserControl, ISettingControl
|
|
{
|
|
private StringSetting StringSetting;
|
|
|
|
public StringSettingControl(StringSetting stringSetting)
|
|
{
|
|
StringSetting = stringSetting;
|
|
InitializeComponent();
|
|
TitleTextBox.Text = stringSetting.Name;
|
|
HelpTextBox.Text = stringSetting.Help;
|
|
ValueTextBox.Text = stringSetting.Value;
|
|
if (stringSetting.Width > 0)
|
|
ValueTextBox.Width = stringSetting.Width;
|
|
if (!StringSetting.IsFolder)
|
|
Button.Visibility = Visibility.Hidden;
|
|
Link.SetURL(StringSetting.HelpURL);
|
|
if (string.IsNullOrEmpty(stringSetting.HelpURL))
|
|
LinkTextBlock.Visibility = Visibility.Collapsed;
|
|
}
|
|
|
|
private string _SearchableText;
|
|
|
|
public string SearchableText {
|
|
get {
|
|
if (_SearchableText is null)
|
|
_SearchableText = (TitleTextBox.Text + HelpTextBox.Text +ValueTextBox.Text).ToLower();
|
|
|
|
return _SearchableText;
|
|
}
|
|
}
|
|
|
|
public bool Contains(string searchString) => SearchableText.Contains(searchString.ToLower());
|
|
public SettingBase SettingBase => StringSetting;
|
|
|
|
public string Text
|
|
{
|
|
get => StringSetting.Value;
|
|
set => StringSetting.Value = value;
|
|
}
|
|
|
|
private void Button_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
using (var d = new System.Windows.Forms.FolderBrowserDialog())
|
|
{
|
|
d.Description = "Choose a folder.";
|
|
d.SelectedPath = ValueTextBox.Text;
|
|
if (d.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
|
ValueTextBox.Text = d.SelectedPath;
|
|
}
|
|
}
|
|
}
|
|
} |