forked from mia/Aegisub
872242a378
Originally committed to SVN as r1345.
223 lines
6.5 KiB
C#
223 lines
6.5 KiB
C#
/*
|
|
SSATool - A collection of utilities for Advanced Substation Alpha
|
|
Copyright (C) 2007 Dan Donovan
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; ONLY under version 2
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
|
|
|
|
using System;
|
|
using System.ComponentModel;
|
|
using System.Windows.Forms;
|
|
|
|
namespace SSATool
|
|
{
|
|
/// <summary>
|
|
/// Summary description for InputBox.
|
|
///
|
|
public class InputBox : System.Windows.Forms.Form {
|
|
|
|
#region Windows Contols and Constructor
|
|
|
|
private System.Windows.Forms.Label lblPrompt;
|
|
private System.Windows.Forms.Button btnOK;
|
|
private System.Windows.Forms.Button button1;
|
|
private System.Windows.Forms.TextBox txtInput;
|
|
/// <summary>
|
|
/// Required designer variable.
|
|
///
|
|
private System.ComponentModel.Container components = null;
|
|
|
|
public InputBox() {
|
|
//
|
|
// Required for Windows Form Designer support
|
|
//
|
|
InitializeComponent();
|
|
|
|
//
|
|
// TODO: Add any constructor code after InitializeComponent call
|
|
//
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Dispose
|
|
|
|
/// <summary>
|
|
/// Clean up any resources being used.
|
|
///
|
|
protected override void Dispose( bool disposing ) {
|
|
if( disposing ) {
|
|
if(components != null) {
|
|
components.Dispose();
|
|
}
|
|
}
|
|
base.Dispose( disposing );
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Windows Form Designer generated code
|
|
/// <summary>
|
|
/// Required method for Designer support - do not modify
|
|
/// the contents of this method with the code editor.
|
|
///
|
|
private void InitializeComponent() {
|
|
this.lblPrompt = new System.Windows.Forms.Label();
|
|
this.btnOK = new System.Windows.Forms.Button();
|
|
this.button1 = new System.Windows.Forms.Button();
|
|
this.txtInput = new System.Windows.Forms.TextBox();
|
|
this.SuspendLayout();
|
|
//
|
|
// lblPrompt
|
|
//
|
|
this.lblPrompt.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
|
| System.Windows.Forms.AnchorStyles.Left)
|
|
| System.Windows.Forms.AnchorStyles.Right)));
|
|
this.lblPrompt.BackColor = System.Drawing.SystemColors.Control;
|
|
this.lblPrompt.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
|
|
this.lblPrompt.Location = new System.Drawing.Point(12, 9);
|
|
this.lblPrompt.Name = "lblPrompt";
|
|
this.lblPrompt.Size = new System.Drawing.Size(302, 82);
|
|
this.lblPrompt.TabIndex = 3;
|
|
//
|
|
// btnOK
|
|
//
|
|
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
|
|
this.btnOK.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
|
this.btnOK.Location = new System.Drawing.Point(326, 24);
|
|
this.btnOK.Name = "btnOK";
|
|
this.btnOK.Size = new System.Drawing.Size(64, 24);
|
|
this.btnOK.TabIndex = 1;
|
|
this.btnOK.Text = "&OK";
|
|
//
|
|
// button1
|
|
//
|
|
this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
|
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
|
this.button1.Location = new System.Drawing.Point(326, 56);
|
|
this.button1.Name = "button1";
|
|
this.button1.Size = new System.Drawing.Size(64, 24);
|
|
this.button1.TabIndex = 2;
|
|
this.button1.Text = "&Cancel";
|
|
//
|
|
// txtInput
|
|
//
|
|
this.txtInput.ImeMode = System.Windows.Forms.ImeMode.Off;
|
|
this.txtInput.Location = new System.Drawing.Point(8, 100);
|
|
this.txtInput.Name = "txtInput";
|
|
this.txtInput.Size = new System.Drawing.Size(379, 20);
|
|
this.txtInput.TabIndex = 0;
|
|
this.txtInput.Text = "";
|
|
this.txtInput.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtInput_KeyPress);
|
|
//
|
|
// InputBox
|
|
//
|
|
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
|
|
this.ClientSize = new System.Drawing.Size(398, 128);
|
|
this.Controls.Add(this.txtInput);
|
|
this.Controls.Add(this.button1);
|
|
this.Controls.Add(this.btnOK);
|
|
this.Controls.Add(this.lblPrompt);
|
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
|
this.ImeMode = System.Windows.Forms.ImeMode.Off;
|
|
this.MaximizeBox = false;
|
|
this.MinimizeBox = false;
|
|
this.Name = "InputBox";
|
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
|
this.Text = "InputBox";
|
|
this.ResumeLayout(false);
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region Private Variables
|
|
string formCaption = string.Empty;
|
|
string formPrompt = string.Empty;
|
|
string inputResponse = string.Empty;
|
|
string defaultValue = string.Empty;
|
|
#endregion
|
|
|
|
#region Public Properties
|
|
public string FormCaption {
|
|
get{return formCaption;}
|
|
set{formCaption = value;}
|
|
} // property FormCaption
|
|
public string FormPrompt {
|
|
get{return formPrompt;}
|
|
set{formPrompt = value;}
|
|
} // property FormPrompt
|
|
public string InputResponse {
|
|
get{return inputResponse;}
|
|
set{inputResponse = value;}
|
|
} // property InputResponse
|
|
public string DefaultValue {
|
|
get{return defaultValue;}
|
|
set{defaultValue = value;}
|
|
} // property DefaultValue
|
|
|
|
#endregion
|
|
|
|
#region Form and Control Events
|
|
public static InputBoxResult Show(string prompt, string title, string defaultResponse,
|
|
int xpos, int ypos) {
|
|
using (InputBox form = new InputBox()) {
|
|
form.lblPrompt.Text = prompt;
|
|
form.Text = title;
|
|
form.txtInput.Text = defaultResponse;
|
|
if (xpos >= 0 && ypos >= 0) {
|
|
form.StartPosition = FormStartPosition.Manual;
|
|
form.Left = xpos;
|
|
form.Top = ypos;
|
|
}
|
|
|
|
DialogResult result = form.ShowDialog();
|
|
|
|
InputBoxResult retval = new InputBoxResult();
|
|
if (result == DialogResult.OK) {
|
|
retval.Text = form.txtInput.Text;
|
|
retval.OK = true;
|
|
}
|
|
return retval;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void txtInput_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) {
|
|
if ((e.KeyChar == '\r') || (e.KeyChar == '\n')) {
|
|
btnOK.PerformClick();
|
|
e.Handled = true;
|
|
}
|
|
else if (e.KeyChar == 27) { //escape key
|
|
button1.PerformClick();
|
|
e.Handled = true;
|
|
}
|
|
}
|
|
|
|
public static InputBoxResult Show(string prompt, string title, string defaultText) {
|
|
return Show(prompt, title, defaultText, -1, -1);
|
|
}
|
|
|
|
|
|
|
|
}
|
|
#endregion
|
|
|
|
public class InputBoxResult {
|
|
public bool OK;
|
|
public string Text;
|
|
}
|
|
}
|