//
// 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;

namespace Messenger
{
	public enum StatusMessageType
	{
		Status = 0,
		Request,
		Response
	};

	/// <summary>
	/// Podsumowanie dla StatusForm.
	/// </summary>
	public class StatusForm : System.Windows.Forms.Form
	{
		private System.Windows.Forms.RichTextBox statusTextBox;
		/// <summary>
		/// Wymagana zmienna.
		/// </summary>
		private System.ComponentModel.Container components = null;

		public void StatusCallback(StatusMessageType type, string message)
		{
			if(type == StatusMessageType.Status)
				statusTextBox.SelectionColor = Color.Black;
			if(type == StatusMessageType.Request)
				statusTextBox.SelectionColor = Color.Blue;
			if(type == StatusMessageType.Response)
				statusTextBox.SelectionColor = Color.Red;
			statusTextBox.AppendText(message + "\r\n");
		}

		public StatusForm()
		{
			//
			// Wymagane do obsługi Windows Form Designer
			//
			InitializeComponent();

			//
			// TODO: Dodanie kodu konstruktora po wywołaniu InitializeComponent
			//
		}

		/// <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>
		/// Metoda wymagana do obsługi Designera - nie należy modyfikować
		/// zawartości tej metody przy użyciu edytora kodu.
		/// </summary>
		private void InitializeComponent()
		{
			this.statusTextBox = new System.Windows.Forms.RichTextBox();
			this.SuspendLayout();
			// 
			// statusTextBox
			// 
			this.statusTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
			this.statusTextBox.Location = new System.Drawing.Point(10, 20);
			this.statusTextBox.Name = "statusTextBox";
			this.statusTextBox.Size = new System.Drawing.Size(686, 286);
			this.statusTextBox.TabIndex = 1;
			this.statusTextBox.Text = "";
			// 
			// StatusForm
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
			this.ClientSize = new System.Drawing.Size(706, 333);
			this.Controls.AddRange(new System.Windows.Forms.Control[] {
																		  this.statusTextBox});
			this.Name = "StatusForm";
			this.Text = "Status";
			this.ResumeLayout(false);

		}
		#endregion
	}
}
