using System;
using System.Drawing;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Windows.Forms;
namespace m
{
///
/// Summary description for EditCounterForm.
///
public class CountersForm : System.Windows.Forms.Form
{
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button buttonOk;
private System.Windows.Forms.Button buttonCancel;
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Button buttonNew;
private System.Windows.Forms.Button buttonModify;
private System.Windows.Forms.Button buttonDelete;
///
/// Required designer variable.
///
private System.ComponentModel.Container components = null;
public CountersForm(string strTitle, string strCurrent, StringCollection strc)
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
foreach (string str in strc)
listBox1.Items.Add(str);
listBox1.SelectedIndex = strCurrent == "" ? -1 : listBox1.Items.IndexOf(strCurrent);
Text = strTitle;
label1.Text = label1.Text.Replace("$1", strTitle);
}
public Counter GetSelectedCounter() {
if (listBox1.SelectedIndex == -1)
return null;
CounterManager ctrm = ((LevelDoc)DocManager.GetActiveDocument(typeof(LevelDoc))).CounterManager;
return ctrm[(string)listBox1.SelectedItem];
}
static public Counter DoModal(string strTitle, string strCurrent, StringCollection strc) {
CountersForm frm = new CountersForm(strTitle, strCurrent, strc);
DialogResult res = frm.ShowDialog();
if (res == DialogResult.Cancel)
return null;
return frm.GetSelectedCounter();
}
///
/// Clean up any resources being used.
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.buttonOk = new System.Windows.Forms.Button();
this.buttonCancel = new System.Windows.Forms.Button();
this.listBox1 = new System.Windows.Forms.ListBox();
this.buttonNew = new System.Windows.Forms.Button();
this.buttonModify = new System.Windows.Forms.Button();
this.buttonDelete = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// label1
//
this.label1.Location = new System.Drawing.Point(8, 8);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(160, 16);
this.label1.TabIndex = 0;
this.label1.Text = "Choose one $1:";
//
// buttonOk
//
this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK;
this.buttonOk.Location = new System.Drawing.Point(184, 8);
this.buttonOk.Name = "buttonOk";
this.buttonOk.TabIndex = 2;
this.buttonOk.Text = "OK";
this.buttonOk.Click += new System.EventHandler(this.buttonOk_Click);
//
// buttonCancel
//
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.buttonCancel.Location = new System.Drawing.Point(184, 40);
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.TabIndex = 2;
this.buttonCancel.Text = "Cancel";
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
//
// listBox1
//
this.listBox1.Location = new System.Drawing.Point(8, 24);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(168, 173);
this.listBox1.Sorted = true;
this.listBox1.TabIndex = 3;
this.listBox1.DoubleClick += new System.EventHandler(this.listBox1_DoubleClick);
//
// buttonNew
//
this.buttonNew.Location = new System.Drawing.Point(184, 96);
this.buttonNew.Name = "buttonNew";
this.buttonNew.TabIndex = 4;
this.buttonNew.Text = "New...";
this.buttonNew.Click += new System.EventHandler(this.buttonNew_Click);
//
// buttonModify
//
this.buttonModify.Location = new System.Drawing.Point(184, 128);
this.buttonModify.Name = "buttonModify";
this.buttonModify.TabIndex = 5;
this.buttonModify.Text = "Modify...";
this.buttonModify.Click += new System.EventHandler(this.buttonModify_Click);
//
// buttonDelete
//
this.buttonDelete.Location = new System.Drawing.Point(184, 160);
this.buttonDelete.Name = "buttonDelete";
this.buttonDelete.TabIndex = 6;
this.buttonDelete.Text = "Delete";
this.buttonDelete.Click += new System.EventHandler(this.buttonDelete_Click);
//
// CountersForm
//
this.AcceptButton = this.buttonOk;
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.CancelButton = this.buttonCancel;
this.ClientSize = new System.Drawing.Size(266, 208);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.buttonDelete,
this.buttonModify,
this.buttonNew,
this.listBox1,
this.buttonOk,
this.label1,
this.buttonCancel});
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "CountersForm";
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "EditCounterForm";
this.ResumeLayout(false);
}
#endregion
private void buttonOk_Click(object sender, System.EventArgs e) {
DialogResult = DialogResult.OK;
}
private void buttonCancel_Click(object sender, System.EventArgs e) {
DialogResult = DialogResult.Cancel;
}
private void listBox1_DoubleClick(object sender, System.EventArgs e) {
DialogResult = DialogResult.OK;
}
private void buttonNew_Click(object sender, System.EventArgs e) {
string str = EditStringForm.DoModal("New Counter", "New Counter name:", null);
if (str != null) {
CounterManager ctrm = ((LevelDoc)DocManager.GetActiveDocument(typeof(LevelDoc))).CounterManager;
if (ctrm[str] == null) {
ctrm.AddCounter(new Counter(str));
int i = listBox1.Items.Add(str);
listBox1.SelectedIndex = i;
// UNDONE: doc is modified
}
}
}
private void buttonModify_Click(object sender, System.EventArgs e) {
string str = (string)listBox1.SelectedItem;
if (str == null)
return;
CounterManager ctrm = ((LevelDoc)DocManager.GetActiveDocument(typeof(LevelDoc))).CounterManager;
Counter ctr = ctrm[str];
string strNew = EditStringForm.DoModal("Modify Counter", "New Counter name:", str);
if (strNew == null)
return;
if (strNew != str) {
ctr.Name = strNew;
listBox1.Items.Remove(str);
int i = listBox1.Items.Add(strNew);
listBox1.SelectedIndex = i;
// UNDONE: doc is modified
}
}
private void buttonDelete_Click(object sender, System.EventArgs e) {
string str = (string)listBox1.SelectedItem;
if (str == null)
return;
CounterManager ctrm = ((LevelDoc)DocManager.GetActiveDocument(typeof(LevelDoc))).CounterManager;
Counter ctr = ctrm[str];
ctrm.RemoveCounter(ctr);
listBox1.Items.Remove(str);
// UNDONE: doc is modified
}
}
}