ShiftOS-C-/source/ShiftUI/Dialogs/StringArrayDialog.cs

559 lines
24 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
namespace ShiftUI.Dialogs
{
public interface IEditorDialog
{
object Value { get; }
void ShowEditor();
}
public class StringArrayDialog : Form, IEditorDialog
{
private string[] lines = null;
public object Value
{
get { return lines; }
}
public void ShowEditor()
{
this.StartPosition = FormStartPosition.CenterScreen;
this.ShowDialog();
}
public StringArrayDialog()
{
this.AllowTransparency = false;
this.AutoScale = true;
this.AutoScaleBaseSize = new Size(5, 13);
this.AutoScroll = false;
this.AutoSize = false;
this.AutoSizeMode = AutoSizeMode.GrowOnly;
this.AutoValidate = AutoValidate.Inherit;
this.BackColor = Color.FromArgb(240, 240, 240);
this.ClientSize = new Size(397, 391);
this.WidgetBox = true;
this.DesktopLocation = new Point(0, 0);
this.DialogResult = DialogResult.None;
this.FormBorderStyle = FormBorderStyle.Sizable;
this.HelpButton = false;
this.IsMdiContainer = false;
this.KeyPreview = false;
this.MaximizeBox = true;
this.MaximumSize = new Size(0, 0);
this.MinimizeBox = true;
this.MinimumSize = new Size(0, 0);
this.RightToLeftLayout = false;
this.ShowIcon = true;
this.ShowInTaskbar = true;
this.Size = new Size(397, 391);
this.SizeGripStyle = SizeGripStyle.Auto;
this.StartPosition = FormStartPosition.WindowsDefaultLocation;
this.TabIndex = 0;
this.TabStop = true;
this.TopLevel = true;
this.TopMost = false;
this.WindowState = FormWindowState.Normal;
this.Text = "String collection";
this.Location = new Point(0, 0);
this.AutoScaleMode = AutoScaleMode.Inherit;
this.AutoScrollMargin = new Size(0, 0);
this.AutoScrollMinSize = new Size(0, 0);
this.AutoScrollPosition = new Point(0, 0);
this.Alignment = (ContentAlignment)0;
this.AccessibleDefaultActionDescription = "";
this.AccessibleDescription = "";
this.AccessibleName = "";
this.AccessibleRole = AccessibleRole.Default;
this.AllowDrop = false;
this.Anchor = AnchorStyles.Top | AnchorStyles.Left;
this.AutoScrollOffset = new Point(0, 0);
this.BackgroundImageLayout = ImageLayout.Tile;
this.Capture = false;
this.CausesValidation = true;
this.Dock = DockStyle.None;
this.Enabled = true;
this.Font = new Font("Microsoft Sans Serif", (float)8.25, (FontStyle)0);
this.ForeColor = Color.FromArgb(0, 0, 0);
this.Height = 391;
this.ImeMode = ImeMode.NoControl;
this.IsAccessible = false;
this.Left = 0;
this.Name = "StringArrayDialog";
this.RightToLeft = RightToLeft.No;
this.Top = 0;
this.UseWaitCursor = false;
this.Visible = false;
this.Width = 397;
rtb_contents = new RichTextBox();
rtb_contents.AllowDrop = false;
rtb_contents.AutoSize = false;
rtb_contents.AutoWordSelection = false;
rtb_contents.BackgroundImageLayout = ImageLayout.Tile;
rtb_contents.BulletIndent = 0;
rtb_contents.DetectUrls = true;
rtb_contents.EnableAutoDragDrop = false;
rtb_contents.Font = new Font("Microsoft Sans Serif", (float)8.25, (FontStyle)0);
rtb_contents.ForeColor = Color.FromArgb(0, 0, 0);
rtb_contents.LanguageOption = RichTextBoxLanguageOptions.AutoFontSizeAdjust;
rtb_contents.MaxLength = 2147483647;
rtb_contents.Multiline = true;
rtb_contents.RichTextShortcutsEnabled = true;
rtb_contents.RightMargin = 0;
rtb_contents.ScrollBars = RichTextBoxScrollBars.Both;
rtb_contents.SelectedText = "";
rtb_contents.SelectionAlignment = HorizontalAlignment.Left;
rtb_contents.SelectionBackColor = Color.FromArgb(240, 240, 240);
rtb_contents.SelectionBullet = false;
rtb_contents.SelectionCharOffset = 0;
rtb_contents.SelectionColor = Color.FromArgb(0, 0, 0);
rtb_contents.SelectionFont = new Font("Microsoft Sans Serif", (float)8.25, (FontStyle)0);
rtb_contents.SelectionHangingIndent = 0;
rtb_contents.SelectionIndent = 0;
rtb_contents.SelectionLength = 0;
rtb_contents.SelectionProtected = false;
rtb_contents.SelectionRightIndent = 0;
rtb_contents.ShowSelectionMargin = false;
rtb_contents.Text = "";
rtb_contents.AcceptsTab = false;
rtb_contents.BackColor = Color.FromArgb(255, 255, 255);
rtb_contents.BorderStyle = BorderStyle.Fixed3D;
rtb_contents.HideSelection = true;
rtb_contents.Modified = false;
rtb_contents.ReadOnly = false;
rtb_contents.SelectionStart = 0;
rtb_contents.ShortcutsEnabled = true;
rtb_contents.WordWrap = true;
rtb_contents.Alignment = (ContentAlignment)0;
rtb_contents.AccessibleDefaultActionDescription = "";
rtb_contents.AccessibleDescription = "";
rtb_contents.AccessibleName = "";
rtb_contents.AccessibleRole = AccessibleRole.Default;
rtb_contents.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
rtb_contents.AutoScrollOffset = new Point(0, 0);
rtb_contents.MaximumSize = new Size(0, 0);
rtb_contents.MinimumSize = new Size(0, 0);
rtb_contents.Capture = false;
rtb_contents.CausesValidation = true;
rtb_contents.ClientSize = new Size(372, 281);
rtb_contents.Dock = DockStyle.None;
rtb_contents.Enabled = true;
rtb_contents.Height = 285;
rtb_contents.ImeMode = ImeMode.NoControl;
rtb_contents.IsAccessible = false;
rtb_contents.Left = 10;
rtb_contents.Location = new Point(10, 65);
rtb_contents.Name = "rtb_contents";
rtb_contents.RightToLeft = RightToLeft.No;
rtb_contents.Size = new Size(376, 285);
rtb_contents.TabIndex = 0;
rtb_contents.TabStop = true;
rtb_contents.Top = 35;
rtb_contents.UseWaitCursor = false;
rtb_contents.Visible = true;
rtb_contents.Width = 376;
this.Widgets.Add(rtb_contents);
rtb_contents.Show();
lbtoplabel = new Label();
lbtoplabel.AutoEllipsis = false;
lbtoplabel.AutoSize = false;
lbtoplabel.BackgroundImageLayout = ImageLayout.Tile;
lbtoplabel.BorderStyle = BorderStyle.None;
lbtoplabel.FlatStyle = FlatStyle.Standard;
lbtoplabel.ImageAlign = ContentAlignment.MiddleCenter;
lbtoplabel.ImageIndex = -1;
lbtoplabel.ImageKey = "";
lbtoplabel.ImeMode = ImeMode.NoControl;
lbtoplabel.TabStop = false;
lbtoplabel.TextAlign = ContentAlignment.TopLeft;
lbtoplabel.UseMnemonic = true;
lbtoplabel.UseCompatibleTextRendering = true;
lbtoplabel.Text = "Enter each item on a separate line.";
lbtoplabel.Alignment = (ContentAlignment)0;
lbtoplabel.AccessibleDefaultActionDescription = "";
lbtoplabel.AccessibleDescription = "";
lbtoplabel.AccessibleName = "";
lbtoplabel.AccessibleRole = AccessibleRole.Default;
lbtoplabel.AllowDrop = false;
lbtoplabel.Anchor = AnchorStyles.Top | AnchorStyles.Left;
lbtoplabel.AutoScrollOffset = new Point(0, 0);
lbtoplabel.MaximumSize = new Size(0, 0);
lbtoplabel.MinimumSize = new Size(0, 0);
lbtoplabel.BackColor = Color.FromArgb(240, 240, 240);
lbtoplabel.Capture = false;
lbtoplabel.CausesValidation = true;
lbtoplabel.ClientSize = new Size(189, 23);
lbtoplabel.Dock = DockStyle.None;
lbtoplabel.Enabled = true;
lbtoplabel.Font = new Font("Microsoft Sans Serif", (float)8.25, (FontStyle)0);
lbtoplabel.ForeColor = Color.FromArgb(0, 0, 0);
lbtoplabel.Height = 23;
lbtoplabel.IsAccessible = false;
lbtoplabel.Left = 16;
lbtoplabel.Location = new Point(16, 45);
lbtoplabel.Name = "lbtoplabel";
lbtoplabel.RightToLeft = RightToLeft.No;
lbtoplabel.Size = new Size(189, 23);
lbtoplabel.TabIndex = 1;
lbtoplabel.Top = 15;
lbtoplabel.UseWaitCursor = false;
lbtoplabel.Visible = true;
lbtoplabel.Width = 189;
this.Widgets.Add(lbtoplabel);
lbtoplabel.Show();
btnok = new Button();
btnok.Click += (o, a) =>
{
this.DialogResult = DialogResult.OK;
lines = rtb_contents.Lines;
this.Close();
};
btnok.AutoSizeMode = AutoSizeMode.GrowAndShrink;
btnok.DialogResult = DialogResult.None;
btnok.AutoEllipsis = false;
btnok.AutoSize = true;
btnok.BackColor = Color.FromArgb(240, 240, 240);
btnok.FlatStyle = FlatStyle.Standard;
btnok.ImageAlign = ContentAlignment.MiddleCenter;
btnok.ImageIndex = -1;
btnok.ImageKey = "";
btnok.ImeMode = ImeMode.Disable;
btnok.Text = "OK";
btnok.TextAlign = ContentAlignment.MiddleCenter;
btnok.TextImageRelation = TextImageRelation.Overlay;
btnok.UseCompatibleTextRendering = true;
btnok.UseMnemonic = true;
btnok.UseVisualStyleBackColor = true;
btnok.Alignment = (ContentAlignment)0;
btnok.AccessibleDefaultActionDescription = "";
btnok.AccessibleDescription = "";
btnok.AccessibleName = "";
btnok.AccessibleRole = AccessibleRole.Default;
btnok.AllowDrop = false;
btnok.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
btnok.AutoScrollOffset = new Point(0, 0);
btnok.MaximumSize = new Size(0, 0);
btnok.MinimumSize = new Size(0, 0);
btnok.BackgroundImageLayout = ImageLayout.Tile;
btnok.Capture = false;
btnok.CausesValidation = true;
btnok.ClientSize = new Size(39, 23);
btnok.Dock = DockStyle.None;
btnok.Enabled = true;
btnok.Font = new Font("Microsoft Sans Serif", (float)8.25, (FontStyle)0);
btnok.ForeColor = Color.FromArgb(0, 0, 0);
btnok.Height = 23;
btnok.IsAccessible = false;
btnok.Left = 11;
btnok.Location = new Point(11, 355);
btnok.Name = "btnok";
btnok.RightToLeft = RightToLeft.No;
btnok.Size = new Size(39, 23);
btnok.TabIndex = 2;
btnok.TabStop = true;
btnok.Top = 325;
btnok.UseWaitCursor = false;
btnok.Visible = true;
btnok.Width = 39;
this.Widgets.Add(btnok);
btnok.Show();
}
public RichTextBox rtb_contents = null;
public Label lbtoplabel = null;
public Button btnok = null;
}
public class ComboBoxEditorDialog : Form, IEditorDialog
{
ComboBox.ObjectCollection lines = null;
public object Value
{
get {
return lines;
}
}
public void ShowEditor()
{
this.StartPosition = FormStartPosition.CenterScreen;
this.ShowDialog();
}
public ComboBoxEditorDialog(ComboBox owner)
{
this.AllowTransparency = false;
this.AutoScale = true;
this.AutoScaleBaseSize = new Size(5, 13);
this.AutoScroll = false;
this.AutoSize = false;
this.AutoSizeMode = AutoSizeMode.GrowOnly;
this.AutoValidate = AutoValidate.Inherit;
this.BackColor = Color.FromArgb(240, 240, 240);
this.ClientSize = new Size(397, 391);
this.WidgetBox = true;
this.DesktopLocation = new Point(0, 0);
this.DialogResult = DialogResult.None;
this.FormBorderStyle = FormBorderStyle.Sizable;
this.HelpButton = false;
this.IsMdiContainer = false;
this.KeyPreview = false;
this.MaximizeBox = true;
this.MaximumSize = new Size(0, 0);
this.MinimizeBox = true;
this.MinimumSize = new Size(0, 0);
this.RightToLeftLayout = false;
this.ShowIcon = true;
this.ShowInTaskbar = true;
this.Size = new Size(397, 391);
this.SizeGripStyle = SizeGripStyle.Auto;
this.StartPosition = FormStartPosition.WindowsDefaultLocation;
this.TabIndex = 0;
this.TabStop = true;
this.TopLevel = true;
this.TopMost = false;
this.WindowState = FormWindowState.Normal;
this.Text = "ComboBox item collection";
this.Location = new Point(0, 0);
this.AutoScaleMode = AutoScaleMode.Inherit;
this.AutoScrollMargin = new Size(0, 0);
this.AutoScrollMinSize = new Size(0, 0);
this.AutoScrollPosition = new Point(0, 0);
this.Alignment = (ContentAlignment)0;
this.AccessibleDefaultActionDescription = "";
this.AccessibleDescription = "";
this.AccessibleName = "";
this.AccessibleRole = AccessibleRole.Default;
this.AllowDrop = false;
this.Anchor = AnchorStyles.Top | AnchorStyles.Left;
this.AutoScrollOffset = new Point(0, 0);
this.BackgroundImageLayout = ImageLayout.Tile;
this.Capture = false;
this.CausesValidation = true;
this.Dock = DockStyle.None;
this.Enabled = true;
this.Font = new Font("Microsoft Sans Serif", (float)8.25, (FontStyle)0);
this.ForeColor = Color.FromArgb(0, 0, 0);
this.Height = 391;
this.ImeMode = ImeMode.NoControl;
this.IsAccessible = false;
this.Left = 0;
this.Name = "StringArrayDialog";
this.RightToLeft = RightToLeft.No;
this.Top = 0;
this.UseWaitCursor = false;
this.Visible = false;
this.Width = 397;
rtb_contents = new RichTextBox();
rtb_contents.AllowDrop = false;
rtb_contents.AutoSize = false;
rtb_contents.AutoWordSelection = false;
rtb_contents.BackgroundImageLayout = ImageLayout.Tile;
rtb_contents.BulletIndent = 0;
rtb_contents.DetectUrls = true;
rtb_contents.EnableAutoDragDrop = false;
rtb_contents.Font = new Font("Microsoft Sans Serif", (float)8.25, (FontStyle)0);
rtb_contents.ForeColor = Color.FromArgb(0, 0, 0);
rtb_contents.LanguageOption = RichTextBoxLanguageOptions.AutoFontSizeAdjust;
rtb_contents.MaxLength = 2147483647;
rtb_contents.Multiline = true;
rtb_contents.RichTextShortcutsEnabled = true;
rtb_contents.RightMargin = 0;
rtb_contents.ScrollBars = RichTextBoxScrollBars.Both;
rtb_contents.SelectedText = "";
rtb_contents.SelectionAlignment = HorizontalAlignment.Left;
rtb_contents.SelectionBackColor = Color.FromArgb(240, 240, 240);
rtb_contents.SelectionBullet = false;
rtb_contents.SelectionCharOffset = 0;
rtb_contents.SelectionColor = Color.FromArgb(0, 0, 0);
rtb_contents.SelectionFont = new Font("Microsoft Sans Serif", (float)8.25, (FontStyle)0);
rtb_contents.SelectionHangingIndent = 0;
rtb_contents.SelectionIndent = 0;
rtb_contents.SelectionLength = 0;
rtb_contents.SelectionProtected = false;
rtb_contents.SelectionRightIndent = 0;
rtb_contents.ShowSelectionMargin = false;
rtb_contents.Text = "";
rtb_contents.AcceptsTab = false;
rtb_contents.BackColor = Color.FromArgb(255, 255, 255);
rtb_contents.BorderStyle = BorderStyle.Fixed3D;
rtb_contents.HideSelection = true;
rtb_contents.Modified = false;
rtb_contents.ReadOnly = false;
rtb_contents.SelectionStart = 0;
rtb_contents.ShortcutsEnabled = true;
rtb_contents.WordWrap = true;
rtb_contents.Alignment = (ContentAlignment)0;
rtb_contents.AccessibleDefaultActionDescription = "";
rtb_contents.AccessibleDescription = "";
rtb_contents.AccessibleName = "";
rtb_contents.AccessibleRole = AccessibleRole.Default;
rtb_contents.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
rtb_contents.AutoScrollOffset = new Point(0, 0);
rtb_contents.MaximumSize = new Size(0, 0);
rtb_contents.MinimumSize = new Size(0, 0);
rtb_contents.Capture = false;
rtb_contents.CausesValidation = true;
rtb_contents.ClientSize = new Size(372, 281);
rtb_contents.Dock = DockStyle.None;
rtb_contents.Enabled = true;
rtb_contents.Height = 285;
rtb_contents.ImeMode = ImeMode.NoControl;
rtb_contents.IsAccessible = false;
rtb_contents.Left = 10;
rtb_contents.Location = new Point(10, 65);
rtb_contents.Name = "rtb_contents";
rtb_contents.RightToLeft = RightToLeft.No;
rtb_contents.Size = new Size(376, 285);
rtb_contents.TabIndex = 0;
rtb_contents.TabStop = true;
rtb_contents.Top = 35;
rtb_contents.UseWaitCursor = false;
rtb_contents.Visible = true;
rtb_contents.Width = 376;
foreach(var line in owner.Items)
{
if (string.IsNullOrEmpty(rtb_contents.Text))
{
rtb_contents.Text += "\r\n" + line.ToString();
}
else
{
rtb_contents.Text += "\r\n" + line.ToString();
}
}
this.Widgets.Add(rtb_contents);
rtb_contents.Show();
lbtoplabel = new Label();
lbtoplabel.AutoEllipsis = false;
lbtoplabel.AutoSize = false;
lbtoplabel.BackgroundImageLayout = ImageLayout.Tile;
lbtoplabel.BorderStyle = BorderStyle.None;
lbtoplabel.FlatStyle = FlatStyle.Standard;
lbtoplabel.ImageAlign = ContentAlignment.MiddleCenter;
lbtoplabel.ImageIndex = -1;
lbtoplabel.ImageKey = "";
lbtoplabel.ImeMode = ImeMode.NoControl;
lbtoplabel.TabStop = false;
lbtoplabel.TextAlign = ContentAlignment.TopLeft;
lbtoplabel.UseMnemonic = true;
lbtoplabel.UseCompatibleTextRendering = true;
lbtoplabel.Text = "Enter each item on a separate line.";
lbtoplabel.Alignment = (ContentAlignment)0;
lbtoplabel.AccessibleDefaultActionDescription = "";
lbtoplabel.AccessibleDescription = "";
lbtoplabel.AccessibleName = "";
lbtoplabel.AccessibleRole = AccessibleRole.Default;
lbtoplabel.AllowDrop = false;
lbtoplabel.Anchor = AnchorStyles.Top | AnchorStyles.Left;
lbtoplabel.AutoScrollOffset = new Point(0, 0);
lbtoplabel.MaximumSize = new Size(0, 0);
lbtoplabel.MinimumSize = new Size(0, 0);
lbtoplabel.BackColor = Color.FromArgb(240, 240, 240);
lbtoplabel.Capture = false;
lbtoplabel.CausesValidation = true;
lbtoplabel.ClientSize = new Size(189, 23);
lbtoplabel.Dock = DockStyle.None;
lbtoplabel.Enabled = true;
lbtoplabel.Font = new Font("Microsoft Sans Serif", (float)8.25, (FontStyle)0);
lbtoplabel.ForeColor = Color.FromArgb(0, 0, 0);
lbtoplabel.Height = 23;
lbtoplabel.IsAccessible = false;
lbtoplabel.Left = 16;
lbtoplabel.Location = new Point(16, 45);
lbtoplabel.Name = "lbtoplabel";
lbtoplabel.RightToLeft = RightToLeft.No;
lbtoplabel.Size = new Size(189, 23);
lbtoplabel.TabIndex = 1;
lbtoplabel.Top = 15;
lbtoplabel.UseWaitCursor = false;
lbtoplabel.Visible = true;
lbtoplabel.Width = 189;
this.Widgets.Add(lbtoplabel);
lbtoplabel.Show();
btnok = new Button();
btnok.Click += (o, a) =>
{
this.DialogResult = DialogResult.OK;
lines = new ComboBox.ObjectCollection(owner);
foreach(var line in rtb_contents.Lines)
{
lines.Add(line);
}
this.Close();
};
btnok.AutoSizeMode = AutoSizeMode.GrowAndShrink;
btnok.DialogResult = DialogResult.None;
btnok.AutoEllipsis = false;
btnok.AutoSize = true;
btnok.BackColor = Color.FromArgb(240, 240, 240);
btnok.FlatStyle = FlatStyle.Standard;
btnok.ImageAlign = ContentAlignment.MiddleCenter;
btnok.ImageIndex = -1;
btnok.ImageKey = "";
btnok.ImeMode = ImeMode.Disable;
btnok.Text = "OK";
btnok.TextAlign = ContentAlignment.MiddleCenter;
btnok.TextImageRelation = TextImageRelation.Overlay;
btnok.UseCompatibleTextRendering = true;
btnok.UseMnemonic = true;
btnok.UseVisualStyleBackColor = true;
btnok.Alignment = (ContentAlignment)0;
btnok.AccessibleDefaultActionDescription = "";
btnok.AccessibleDescription = "";
btnok.AccessibleName = "";
btnok.AccessibleRole = AccessibleRole.Default;
btnok.AllowDrop = false;
btnok.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
btnok.AutoScrollOffset = new Point(0, 0);
btnok.MaximumSize = new Size(0, 0);
btnok.MinimumSize = new Size(0, 0);
btnok.BackgroundImageLayout = ImageLayout.Tile;
btnok.Capture = false;
btnok.CausesValidation = true;
btnok.ClientSize = new Size(39, 23);
btnok.Dock = DockStyle.None;
btnok.Enabled = true;
btnok.Font = new Font("Microsoft Sans Serif", (float)8.25, (FontStyle)0);
btnok.ForeColor = Color.FromArgb(0, 0, 0);
btnok.Height = 23;
btnok.IsAccessible = false;
btnok.Left = 11;
btnok.Location = new Point(11, 355);
btnok.Name = "btnok";
btnok.RightToLeft = RightToLeft.No;
btnok.Size = new Size(39, 23);
btnok.TabIndex = 2;
btnok.TabStop = true;
btnok.Top = 325;
btnok.UseWaitCursor = false;
btnok.Visible = true;
btnok.Width = 39;
this.Widgets.Add(btnok);
btnok.Show();
}
public RichTextBox rtb_contents = null;
public Label lbtoplabel = null;
public Button btnok = null;
}
}