using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using CategoryTheory;
using DiagramUI;
namespace ImageTransformations
{
/// <summary>
/// Summary description for FormSourceBitmap.
/// </summary>
public class FormSourceBitmap : System.Windows.Forms.Form, IUpdatableForm
{
private System.Windows.Forms.Panel panelBitmap;
private System.Windows.Forms.Panel panelComments;
private System.Windows.Forms.OpenFileDialog openFileDialogBmp;
private System.Windows.Forms.MainMenu mainMenuFile;
private System.Windows.Forms.MenuItem menuItemFile;
private System.Windows.Forms.MenuItem menuItemOpen;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
private IObjectLabel label;
private System.Windows.Forms.Panel panelBmp;
private System.Windows.Forms.Label labelB;
private System.Windows.Forms.Label labelG;
private System.Windows.Forms.Label labelR;
private System.Windows.Forms.Label labelY;
private System.Windows.Forms.Label labelX;
private SourceBitmap bitmap;
private FormSourceBitmap()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
public FormSourceBitmap(IObjectLabel label)
{
InitializeComponent();
ResourceService.Resources.LoadControlResources(this);
panelBmp.Top = 0;
panelBmp.Left = 0;
this.label = label;
bitmap = label.Object as SourceBitmap;
UpdateFormUI();
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
// NamedComponent.RemoveForm(label);
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(FormSourceBitmap));
this.panelBitmap = new System.Windows.Forms.Panel();
this.panelBmp = new System.Windows.Forms.Panel();
this.panelComments = new System.Windows.Forms.Panel();
this.openFileDialogBmp = new System.Windows.Forms.OpenFileDialog();
this.mainMenuFile = new System.Windows.Forms.MainMenu();
this.menuItemFile = new System.Windows.Forms.MenuItem();
this.menuItemOpen = new System.Windows.Forms.MenuItem();
this.labelB = new System.Windows.Forms.Label();
this.labelG = new System.Windows.Forms.Label();
this.labelR = new System.Windows.Forms.Label();
this.labelY = new System.Windows.Forms.Label();
this.labelX = new System.Windows.Forms.Label();
this.panelBitmap.SuspendLayout();
this.SuspendLayout();
//
// panelBitmap
//
this.panelBitmap.AllowDrop = true;
this.panelBitmap.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.panelBitmap.Controls.Add(this.panelBmp);
this.panelBitmap.Location = new System.Drawing.Point(88, 136);
this.panelBitmap.Name = "panelBitmap";
this.panelBitmap.Size = new System.Drawing.Size(840, 592);
this.panelBitmap.TabIndex = 0;
//
// panelBmp
//
this.panelBmp.Cursor = System.Windows.Forms.Cursors.Cross;
this.panelBmp.Location = new System.Drawing.Point(128, 48);
this.panelBmp.Name = "panelBmp";
this.panelBmp.TabIndex = 0;
this.panelBmp.Paint += new System.Windows.Forms.PaintEventHandler(this.panelBmp_Paint);
this.panelBmp.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panelBmp_MouseMove);
//
// panelComments
//
this.panelComments.BackColor = System.Drawing.SystemColors.ControlLightLight;
this.panelComments.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panelComments.Location = new System.Drawing.Point(96, 16);
this.panelComments.Name = "panelComments";
this.panelComments.Size = new System.Drawing.Size(832, 96);
this.panelComments.TabIndex = 1;
//
// openFileDialogBmp
//
this.openFileDialogBmp.Filter = "Bitmap files |*.bmp";
//
// mainMenuFile
//
this.mainMenuFile.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItemFile});
//
// menuItemFile
//
this.menuItemFile.Index = 0;
this.menuItemFile.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItemOpen});
this.menuItemFile.Text = "File";
//
// menuItemOpen
//
this.menuItemOpen.Index = 0;
this.menuItemOpen.Text = "Open";
this.menuItemOpen.Click += new System.EventHandler(this.menuItemOpen_Click);
//
// labelB
//
this.labelB.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204)));
this.labelB.ForeColor = System.Drawing.Color.Navy;
this.labelB.Location = new System.Drawing.Point(944, 432);
this.labelB.Name = "labelB";
this.labelB.TabIndex = 20;
this.labelB.Text = "B =";
//
// labelG
//
this.labelG.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204)));
this.labelG.ForeColor = System.Drawing.Color.Green;
this.labelG.Location = new System.Drawing.Point(944, 376);
this.labelG.Name = "labelG";
this.labelG.TabIndex = 19;
this.labelG.Text = "G = ";
//
// labelR
//
this.labelR.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204)));
this.labelR.ForeColor = System.Drawing.Color.Crimson;
this.labelR.Location = new System.Drawing.Point(944, 328);
this.labelR.Name = "labelR";
this.labelR.TabIndex = 18;
this.labelR.Text = "R = ";
//
// labelY
//
this.labelY.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204)));
this.labelY.Location = new System.Drawing.Point(944, 280);
this.labelY.Name = "labelY";
this.labelY.TabIndex = 17;
this.labelY.Text = "Y =";
//
// labelX
//
this.labelX.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204)));
this.labelX.Location = new System.Drawing.Point(944, 232);
this.labelX.Name = "labelX";
this.labelX.TabIndex = 16;
this.labelX.Text = "X = ";
//
// FormSourceBitmap
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(1056, 773);
this.Controls.Add(this.labelB);
this.Controls.Add(this.labelG);
this.Controls.Add(this.labelR);
this.Controls.Add(this.labelY);
this.Controls.Add(this.labelX);
this.Controls.Add(this.panelComments);
this.Controls.Add(this.panelBitmap);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Menu = this.mainMenuFile;
this.Name = "FormSourceBitmap";
this.Text = "FormSourceBitmap";
this.panelBitmap.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
#region IUpdatableForm Members
public void UpdateFormUI()
{
Text = label.RootName;//NamedComponent.GetText(label);
}
#endregion
private void menuItemOpen_Click(object sender, System.EventArgs e)
{
if (openFileDialogBmp.ShowDialog(this) != DialogResult.OK)
{
return;
}
Bitmap bmp = new Bitmap(openFileDialogBmp.FileName);
bitmap.SetBitmap(bmp);
Refresh();
}
private void panelBmp_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Bitmap bmp = bitmap.Bitmap;
if (bmp == null)
{
return;
}
if ((panelBmp.Width != bmp.Width) | (panelBmp.Height != bmp.Height))
{
panelBmp.Width = bmp.Width;
panelBmp.Height = bmp.Height;
}
e.Graphics.DrawImage(bmp, 0, 0);
}
private void panelBmp_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
int x = e.X;
int y = e.Y;
Bitmap bmp = bitmap.Bitmap;
if (bmp == null)
{
return;
}
if ((x >= bmp.Width) | (y >= bmp.Height))
{
return;
}
labelX.Text = "X = " + x;
labelY.Text = "Y = " + y;
Color c = bmp.GetPixel(x, y);
labelR.Text = "R = " + c.R;
labelG.Text = "G = " + c.G;
labelB.Text = "B = " + c.B;
}
}
}