using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace Menu_Drawing_Manual
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{

int dFunction = 0;
Color dColor = Color.Black;

MenuItem menuFunction, menuRectangle, menuEllipse; //drawing function submenu items
MenuItem menuColor, menuRed, menuGreen, menuBlue; //drawing color submenu items
MenuItem menuClear, menuQuit; //clear and quit menu items

/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;

public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

//
// TODO: Add any constructor code after InitializeComponent call
//

//Drawing Function
menuRectangle = new MenuItem("&Rectangle (Ctrl-R)", new EventHandler(MenuFunctionRectangleOnClick), Shortcut.CtrlR);
MenuItem menuSep = new MenuItem("-"); // a line separator
menuEllipse = new MenuItem("&Ellipse (Ctrl-E)", new EventHandler(MenuFunctionEllipseOnClick), Shortcut.CtrlE);
menuFunction = new MenuItem("Drawing &Function", new MenuItem[] {menuRectangle, menuSep, menuEllipse});

//Drawing Color
menuRed = new MenuItem("R&ed (Ctrl-D", new EventHandler(MenuColorRedOnClick), Shortcut.CtrlD);
menuGreen = new MenuItem("&Green (Ctrl-G)", new EventHandler(MenuColorGreenOnClick), Shortcut.CtrlG);
menuBlue = new MenuItem("&Blue (Ctrl-B)", new EventHandler(MenuColorBlueOnClick), Shortcut.CtrlB);
menuColor = new MenuItem("Drawing &Color", new MenuItem[] {menuRed, menuGreen, menuBlue});

//Clear
menuClear = new MenuItem("Clear &Screen (Ctrl-S)", new EventHandler(MenuClearOnClick), Shortcut.CtrlS);

//Quit
menuQuit = new MenuItem("&Quit (Ctrl-Q)", new EventHandler(MenuQuitOnClick), Shortcut.CtrlQ);

//Main Menu
this.Menu = new MainMenu(new MenuItem[] {menuFunction, menuColor, menuClear, menuQuit});

}

/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
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()
{
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(480, 309);
this.Name = "Form1";
this.Text = "Manual Menu";
this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);

}
#endregion

/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}

void MenuFunctionRectangleOnClick(object obj, EventArgs e)
{
dFunction = 1;
menuRectangle.Checked = true;
menuEllipse.Checked = false;
Invalidate();
}

void MenuFunctionEllipseOnClick(object obj, EventArgs e)
{
dFunction = 2;
menuEllipse.Checked = true;
menuRectangle.Checked = false;
Invalidate();
}

void MenuColorRedOnClick(object obj, EventArgs e)
{
dColor = Color.Red;
menuRed.Checked = true;
menuBlue.Checked = false;
menuGreen.Checked = false;
Invalidate();
}

void MenuColorGreenOnClick(object obj, EventArgs e)
{
dColor = Color.Green;
menuRed.Checked = false;
menuBlue.Checked = false;
menuGreen.Checked = true;
Invalidate();
}

void MenuColorBlueOnClick(object obj, EventArgs e)
{
dColor = Color.Blue;
menuRed.Checked = false;
menuBlue.Checked = true;
menuGreen.Checked = false;
Invalidate();
}

void MenuClearOnClick(object obj, EventArgs e)
{
dFunction = 0;
Invalidate();
}

void MenuQuitOnClick(object obj, EventArgs e)
{
Close();
}

private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics;
Brush b = new SolidBrush(dColor);
if (dFunction == 1)
g.FillRectangle(b, 10,10,100,100);
if (dFunction == 2)
g.FillEllipse(b, 100,100,100,100);
}

}
}