//
// Copyright (c) 2002
// Ronald Kevin Burton
//
// Z poniższym kodem nie jest związana żadna gwarancja poprawności działania.
// Program został dołączony do książki ".NET CLR. Księga eksperta" w celu
// ilustracji koncepcji i zasad przedstawionych w tej książce. Program może być 
// używany na własne ryzyko.
//
// Przyznaje się prawo do użycia lub kopiowania tego oprogramowania do dowolnego celu
// bez konieczności ponoszenia żadnych opłat pod warunkiem, że powyższe uwagi zostaną 
// zachowane we wszystkich kopiach. Przyznaje się także prawo do modyfikacji kodu
// i dystrybucji zmodyfikowanego kodu pod warunkiem zachowania powyższych uwag
// oraz dołączenia informacji mówiącej o modyfikacji kodu.
//
// 
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Diagnostics;
using AxBullsEyeLib;
using BullsEyeLib;

namespace BullsEyeApp
{
	/// <summary>
	/// Podsumowanie dla BullsEyeForm.
	/// </summary>
	public class BullsEyeForm : System.Windows.Forms.Form
	{
		private System.Windows.Forms.Label label1;
		private System.Windows.Forms.Label label2;
		private System.Windows.Forms.TextBox ring;
		private AxBullsEyeLib.AxBullsEye axBullsEye;
		private System.Windows.Forms.TextBox score;

		private void OnRingHit(object ringControl, _IBullsEyeEvents_OnRingHitEvent e)
		{
			ring.Text = Convert.ToString(e.ringNumber);
		}
		private void OnScoreChanged(object scoreControl, _IBullsEyeEvents_OnScoreChangedEvent e)
		{
			score.Text = Convert.ToString(e.ringValue);
		}
		/// <summary>
		/// Wymagana zmienna.
		/// </summary>
		private System.ComponentModel.Container components = null;

		public BullsEyeForm()
		{
			//
			// Wymagane do obsługi Windows Form Designer
			//
			InitializeComponent();
			axBullsEye.OnRingHit += new AxBullsEyeLib._IBullsEyeEvents_OnRingHitEventHandler(OnRingHit);
			axBullsEye.OnScoreChanged += new AxBullsEyeLib._IBullsEyeEvents_OnScoreChangedEventHandler(OnScoreChanged);
		}

		/// <summary>
		/// Oczyszczenie używanych zasobów.
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if (components != null) 
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#region Windows Form Designer generated code
		/// <summary>
		/// Wymagana metoda do obsługi Designera - nie należy modyfikować
		/// zawartości tej metody przy użyciu edytora kodu.
		/// </summary>
		private void InitializeComponent()
		{
			System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(BullsEyeForm));
			this.label1 = new System.Windows.Forms.Label();
			this.label2 = new System.Windows.Forms.Label();
			this.ring = new System.Windows.Forms.TextBox();
			this.score = new System.Windows.Forms.TextBox();
			this.axBullsEye = new AxBullsEyeLib.AxBullsEye();
			((System.ComponentModel.ISupportInitialize)(this.axBullsEye)).BeginInit();
			this.SuspendLayout();
			// 
			// etykieta 1
			// 
			this.label1.Location = new System.Drawing.Point(346, 19);
			this.label1.Name = "label1";
			this.label1.Size = new System.Drawing.Size(117, 27);
			this.label1.TabIndex = 1;
			this.label1.Text = "Pierścień";
			this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
			// 
			// etykieta 2
			// 
			this.label2.Location = new System.Drawing.Point(346, 159);
			this.label2.Name = "label2";
			this.label2.Size = new System.Drawing.Size(117, 27);
			this.label2.TabIndex = 2;
			this.label2.Text = "Wynik";
			this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
			// 
			// pierścień
			// 
			this.ring.Location = new System.Drawing.Point(346, 65);
			this.ring.Name = "ring";
			this.ring.ReadOnly = true;
			this.ring.Size = new System.Drawing.Size(117, 22);
			this.ring.TabIndex = 3;
			this.ring.Text = "";
			this.ring.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
			// 
			// wynik
			// 
			this.score.Location = new System.Drawing.Point(346, 206);
			this.score.Name = "score";
			this.score.ReadOnly = true;
			this.score.Size = new System.Drawing.Size(117, 22);
			this.score.TabIndex = 4;
			this.score.Text = "";
			this.score.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
			// 
			// axBullsEye
			// 
			this.axBullsEye.Location = new System.Drawing.Point(16, 16);
			this.axBullsEye.Name = "axBullsEye";
			this.axBullsEye.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axBullsEye.OcxState")));
			this.axBullsEye.Size = new System.Drawing.Size(288, 272);
			this.axBullsEye.TabIndex = 5;
			// 
			// BullsEyeForm
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
			this.ClientSize = new System.Drawing.Size(513, 307);
			this.Controls.AddRange(new System.Windows.Forms.Control[] {
																		  this.axBullsEye,
																		  this.score,
																		  this.ring,
																		  this.label2,
																		  this.label1});
			this.Name = "BullsEyeForm";
			this.Text = "BullsEye Form";
			((System.ComponentModel.ISupportInitialize)(this.axBullsEye)).EndInit();
			this.ResumeLayout(false);

		}
		#endregion

		/// <summary>
		/// Głowny punkt wejścia dla aplikacji.
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new BullsEyeForm());
		}
	}
}
