From fb9f2ab945ec9795905eb738e115a05354cd6c58 Mon Sep 17 00:00:00 2001 From: Ian C Date: Tue, 2 Aug 2005 23:20:19 +0000 Subject: Added extra manipulations --- DropShadowForm.cs | 319 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 319 insertions(+) create mode 100644 DropShadowForm.cs (limited to 'DropShadowForm.cs') diff --git a/DropShadowForm.cs b/DropShadowForm.cs new file mode 100644 index 0000000..2550187 --- /dev/null +++ b/DropShadowForm.cs @@ -0,0 +1,319 @@ +// 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; + } + } + } +} -- cgit v1.2.3