// GfxEd8
// Copyright (C) 2004 Ian Cowburn
//
// 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; either version 2
// of the License, or (at your option) any later version.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// $Id$
//
using System;
using System.Windows.Forms;
using System.Text;
using System.Reflection;
using GfxEdInterface;
namespace GfxEd8
{
///
/// Description of About
///
public class About : System.Windows.Forms.Form
{
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.RichTextBox m_info;
private System.Windows.Forms.Button m_ok;
private System.Windows.Forms.ListBox m_plugin;
private System.Windows.Forms.Label m_gpl;
private System.Windows.Forms.Label m_title;
public About()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
StringBuilder s=new StringBuilder();
m_title.Text="GfxEd8 (c) Copyright 2004 Ian Cowburn";
s.Append("This program is distributed in the hope that it will be useful, ");
s.Append("but WITHOUT ANY WARRANTY; without even the implied warranty of ");
s.Append("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ");
s.Append("GNU General Public License for more details.");
m_gpl.Text=s.ToString();
foreach (string n in PluginControl.Names)
{
m_plugin.Items.Add(n);
}
m_plugin.SelectedIndex=0;
}
#region Windows Forms Designer generated code
///
/// This method is required for Windows Forms designer support.
/// Do not change the method contents inside the source code editor. The Forms designer might
/// not be able to load this method if it was changed manually.
///
private void InitializeComponent() {
this.m_title = new System.Windows.Forms.Label();
this.m_gpl = new System.Windows.Forms.Label();
this.m_plugin = new System.Windows.Forms.ListBox();
this.m_ok = new System.Windows.Forms.Button();
this.m_info = new System.Windows.Forms.RichTextBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// m_title
//
this.m_title.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.m_title.Location = new System.Drawing.Point(8, 8);
this.m_title.Name = "m_title";
this.m_title.Size = new System.Drawing.Size(504, 32);
this.m_title.TabIndex = 7;
this.m_title.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// m_gpl
//
this.m_gpl.Location = new System.Drawing.Point(72, 48);
this.m_gpl.Name = "m_gpl";
this.m_gpl.Size = new System.Drawing.Size(392, 56);
this.m_gpl.TabIndex = 0;
//
// m_plugin
//
this.m_plugin.Location = new System.Drawing.Point(8, 128);
this.m_plugin.Name = "m_plugin";
this.m_plugin.Size = new System.Drawing.Size(504, 82);
this.m_plugin.Sorted = true;
this.m_plugin.TabIndex = 4;
this.m_plugin.SelectedIndexChanged += new System.EventHandler(this.OnSelectPlugin);
//
// m_ok
//
this.m_ok.Location = new System.Drawing.Point(424, 352);
this.m_ok.Name = "m_ok";
this.m_ok.Size = new System.Drawing.Size(88, 24);
this.m_ok.TabIndex = 2;
this.m_ok.Text = "OK";
this.m_ok.Click += new System.EventHandler(this.OnOK);
//
// m_info
//
this.m_info.BackColor = System.Drawing.SystemColors.Info;
this.m_info.Location = new System.Drawing.Point(8, 232);
this.m_info.Name = "m_info";
this.m_info.ReadOnly = true;
this.m_info.Size = new System.Drawing.Size(504, 112);
this.m_info.TabIndex = 5;
this.m_info.Text = "";
//
// label1
//
this.label1.Location = new System.Drawing.Point(8, 112);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(96, 16);
this.label1.TabIndex = 3;
this.label1.Text = "Plugins:";
//
// label2
//
this.label2.Location = new System.Drawing.Point(8, 216);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(96, 16);
this.label2.TabIndex = 6;
this.label2.Text = "Plugin Info:";
//
// About
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 14);
this.ClientSize = new System.Drawing.Size(522, 383);
this.Controls.Add(this.m_title);
this.Controls.Add(this.label2);
this.Controls.Add(this.m_plugin);
this.Controls.Add(this.label1);
this.Controls.Add(this.m_ok);
this.Controls.Add(this.m_gpl);
this.Controls.Add(this.m_info);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "About";
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "About GfxEd8";
this.ResumeLayout(false);
}
#endregion
void OnOK(object sender, System.EventArgs e)
{
Close();
}
string GetSize(SpriteSize[] sz)
{
string ret="(";
bool first=true;
foreach (SpriteSize s in sz)
{
if (!first)
{
ret+=", (";
}
ret+=s.ToString()+")";
first=false;
}
return ret;
}
void OnSelectPlugin(object sender, System.EventArgs e)
{
string name=m_plugin.Items[m_plugin.SelectedIndex].ToString();
IPlugin i=PluginControl.Get(name);
Assembly a=PluginControl.GetAssembly(name);
StringBuilder s=new StringBuilder();
s.Append("Author\t\t: "+i.Author+"\n");
s.Append("Description\t: "+i.Description+"\n");
s.Append("URL\t\t: "+i.URL+"\n");
s.Append("Version\t\t: "+PluginControl.Version(name)+"\n");
s.Append("Colours per sprite\t: "+i.MaxColours+"\n");
s.Append("Supported sizes\t: "+GetSize(i.AllowedSizes)+"\n");
s.Append("Location\t\t: "+a.Location+"\n");
s.Append("CLR Version\t: "+a.ImageRuntimeVersion+"\n");
m_info.Text=s.ToString();
}
}
}