// BitmapSpriteEd - Bitmap Sprite Editor
// Copyright (C) 2005 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.Drawing;
using System.Windows.Forms;
namespace BitmapSpriteEd
{
///
/// Description of DropShadowForm.
///
public class DropShadowForm : System.Windows.Forms.Form
{
private System.Windows.Forms.RadioButton m_bottomLeft;
private System.Windows.Forms.Button m_ok;
private System.Windows.Forms.RadioButton m_topRight;
private System.Windows.Forms.RadioButton m_left;
private System.Windows.Forms.Label m_color;
private System.Windows.Forms.RadioButton m_top;
private System.Windows.Forms.RadioButton m_topLeft;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.NumericUpDown m_depth;
private System.Windows.Forms.RadioButton m_bottomRight;
private System.Windows.Forms.Button m_cancel;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.RadioButton m_right;
private System.Windows.Forms.RadioButton m_bottom;
public class Shadow
{
public Shadow(int dx, int dy)
{
m_dx=dx;
m_dy=dy;
}
public int DX {get {return m_dx;}}
public int DY {get {return m_dy;}}
private int m_dx;
private int m_dy;
}
public DropShadowForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
m_topLeft.Tag=new Shadow(-1,-1);
m_top.Tag=new Shadow(0,-1);
m_topRight.Tag=new Shadow(1,-1);
m_left.Tag=new Shadow(-1,0);
m_right.Tag=new Shadow(1,0);
m_bottomLeft.Tag=new Shadow(-1,1);
m_bottom.Tag=new Shadow(0,1);
m_bottomRight.Tag=new Shadow(1,1);
}
#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_bottom = new System.Windows.Forms.RadioButton();
this.m_right = new System.Windows.Forms.RadioButton();
this.label1 = new System.Windows.Forms.Label();
this.m_cancel = new System.Windows.Forms.Button();
this.m_bottomRight = new System.Windows.Forms.RadioButton();
this.m_depth = new System.Windows.Forms.NumericUpDown();
this.label3 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.m_topLeft = new System.Windows.Forms.RadioButton();
this.m_top = new System.Windows.Forms.RadioButton();
this.m_color = new System.Windows.Forms.Label();
this.m_left = new System.Windows.Forms.RadioButton();
this.m_topRight = new System.Windows.Forms.RadioButton();
this.m_ok = new System.Windows.Forms.Button();
this.m_bottomLeft = new System.Windows.Forms.RadioButton();
((System.ComponentModel.ISupportInitialize)(this.m_depth)).BeginInit();
this.SuspendLayout();
//
// m_bottom
//
this.m_bottom.Location = new System.Drawing.Point(32, 48);
this.m_bottom.Name = "m_bottom";
this.m_bottom.Size = new System.Drawing.Size(16, 16);
this.m_bottom.TabIndex = 8;
//
// m_right
//
this.m_right.Location = new System.Drawing.Point(48, 32);
this.m_right.Name = "m_right";
this.m_right.Size = new System.Drawing.Size(16, 16);
this.m_right.TabIndex = 5;
//
// label1
//
this.label1.Location = new System.Drawing.Point(72, 16);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(56, 48);
this.label1.TabIndex = 9;
this.label1.Text = "Shadow Direction";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// m_cancel
//
this.m_cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.m_cancel.Location = new System.Drawing.Point(136, 120);
this.m_cancel.Name = "m_cancel";
this.m_cancel.Size = new System.Drawing.Size(112, 24);
this.m_cancel.TabIndex = 10;
this.m_cancel.Text = "Cancel";
this.m_cancel.Click += new System.EventHandler(this.OnOK);
//
// m_bottomRight
//
this.m_bottomRight.Checked = true;
this.m_bottomRight.Location = new System.Drawing.Point(48, 48);
this.m_bottomRight.Name = "m_bottomRight";
this.m_bottomRight.Size = new System.Drawing.Size(16, 16);
this.m_bottomRight.TabIndex = 7;
this.m_bottomRight.TabStop = true;
//
// m_depth
//
this.m_depth.Location = new System.Drawing.Point(16, 72);
this.m_depth.Maximum = new System.Decimal(new int[] {
10,
0,
0,
0});
this.m_depth.Minimum = new System.Decimal(new int[] {
1,
0,
0,
0});
this.m_depth.Name = "m_depth";
this.m_depth.ReadOnly = true;
this.m_depth.Size = new System.Drawing.Size(48, 20);
this.m_depth.TabIndex = 11;
this.m_depth.Value = new System.Decimal(new int[] {
1,
0,
0,
0});
//
// label3
//
this.label3.Location = new System.Drawing.Point(72, 104);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(56, 40);
this.label3.TabIndex = 14;
this.label3.Text = "Shadow Color";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// label2
//
this.label2.Location = new System.Drawing.Point(72, 72);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(48, 24);
this.label2.TabIndex = 12;
this.label2.Text = "Shadow Depth";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// m_topLeft
//
this.m_topLeft.Location = new System.Drawing.Point(16, 16);
this.m_topLeft.Name = "m_topLeft";
this.m_topLeft.Size = new System.Drawing.Size(16, 16);
this.m_topLeft.TabIndex = 1;
//
// m_top
//
this.m_top.Location = new System.Drawing.Point(32, 16);
this.m_top.Name = "m_top";
this.m_top.Size = new System.Drawing.Size(16, 16);
this.m_top.TabIndex = 2;
//
// m_color
//
this.m_color.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(224)), ((System.Byte)(224)), ((System.Byte)(224)));
this.m_color.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.m_color.Location = new System.Drawing.Point(16, 104);
this.m_color.Name = "m_color";
this.m_color.Size = new System.Drawing.Size(48, 40);
this.m_color.TabIndex = 13;
this.m_color.Click += new System.EventHandler(this.OnSelectColor);
//
// m_left
//
this.m_left.Location = new System.Drawing.Point(16, 32);
this.m_left.Name = "m_left";
this.m_left.Size = new System.Drawing.Size(16, 16);
this.m_left.TabIndex = 4;
//
// m_topRight
//
this.m_topRight.Location = new System.Drawing.Point(48, 16);
this.m_topRight.Name = "m_topRight";
this.m_topRight.Size = new System.Drawing.Size(16, 16);
this.m_topRight.TabIndex = 3;
//
// m_ok
//
this.m_ok.Location = new System.Drawing.Point(136, 88);
this.m_ok.Name = "m_ok";
this.m_ok.Size = new System.Drawing.Size(112, 24);
this.m_ok.TabIndex = 0;
this.m_ok.Text = "OK";
this.m_ok.Click += new System.EventHandler(this.OnOK);
//
// m_bottomLeft
//
this.m_bottomLeft.Location = new System.Drawing.Point(16, 48);
this.m_bottomLeft.Name = "m_bottomLeft";
this.m_bottomLeft.Size = new System.Drawing.Size(16, 16);
this.m_bottomLeft.TabIndex = 6;
//
// DropShadowForm
//
this.AcceptButton = this.m_ok;
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.CancelButton = this.m_cancel;
this.ClientSize = new System.Drawing.Size(258, 154);
this.Controls.Add(this.label3);
this.Controls.Add(this.m_color);
this.Controls.Add(this.label2);
this.Controls.Add(this.m_depth);
this.Controls.Add(this.m_cancel);
this.Controls.Add(this.label1);
this.Controls.Add(this.m_left);
this.Controls.Add(this.m_ok);
this.Controls.Add(this.m_bottomLeft);
this.Controls.Add(this.m_bottom);
this.Controls.Add(this.m_bottomRight);
this.Controls.Add(this.m_right);
this.Controls.Add(this.m_topRight);
this.Controls.Add(this.m_top);
this.Controls.Add(this.m_topLeft);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.Name = "DropShadowForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Drop Shadow";
((System.ComponentModel.ISupportInitialize)(this.m_depth)).EndInit();
this.ResumeLayout(false);
}
#endregion
public Shadow ShadowSize
{
get
{
foreach (Control c in Controls)
{
if (c is RadioButton)
{
RadioButton r=(RadioButton)c;
if (r.Checked)
{
Shadow s=(Shadow)r.Tag;
int depth=Convert.ToInt32(m_depth.Value);
return new Shadow(s.DX*depth,s.DY*depth);
}
}
}
return new Shadow(0,0);
}
}
public Color ShadowColour
{
get {return m_color.BackColor;}
}
void OnOK(object sender, System.EventArgs e)
{
DialogResult=DialogResult.OK;
Close();
}
void OnSelectColor(object sender, System.EventArgs e)
{
AlphaColourDialog d=new AlphaColourDialog("Select shadow colour");
d.Color=m_color.BackColor;
if (d.ShowDialog()==DialogResult.OK)
{
m_color.BackColor=d.Color;
}
}
}
}