All pastes #234427 Raw Edit

Miscellany

public text v1 · immutable
·published 2006-11-02 15:33 UTC
rendered paste body
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Threading;
namespace FINN
{
	
	public class frmMain : Form
	{
		private System.Windows.Forms.PictureBox imgButton_next;
		private System.Windows.Forms.PictureBox imgButton_cancel;
		private udpServer udp;
		private Thread rec;
		private System.Windows.Forms.Timer Clock;
		private bool alreadyFired =false;
		public frmMain() 
		{
			//color representing the main block of background text's color
		    Color backColor = ColorTranslator.FromHtml("#FE00BE");
			
			
			//setup window components
			this.BackgroundImage = new Bitmap("Graphics/exclude/wave.bmp");
			this.Size = new System.Drawing.Size(597,296);
			this.FormBorderStyle = FormBorderStyle.None; // <=- Annoying whilst debugging
			this.Text = "TOK's FINN";
			this.StartPosition=FormStartPosition.CenterScreen;
			
			//imgButton_next Setup
			imgButton_next = new PictureBox();
			imgButton_next.Width = 103;
			imgButton_next.Height = 47;
			imgButton_next.Top = 247;
			imgButton_next.Left = 10;
			imgButton_next.Image = new Bitmap("Graphics/exclude/next.bmp");
			imgButton_next.Click += new EventHandler(imgButton_next_click);
			imgButton_next.MouseDown += new MouseEventHandler(imgButton_next_MouseDown);
			imgButton_next.MouseUp += new MouseEventHandler(imgButton_next_MouseUp);
			this.Controls.Add(imgButton_next);
			
			//imgButton_cancel Setup
			imgButton_cancel = new PictureBox();
			imgButton_cancel.Width = 103;
			imgButton_cancel.Height = 47;
			imgButton_cancel.Top = 247;
			imgButton_cancel.Left = 480;
			imgButton_cancel.Image = new Bitmap("Graphics/exclude/cancel.bmp");
			imgButton_cancel.Click += new EventHandler(imgButton_cancel_click);
			imgButton_cancel.MouseDown += new MouseEventHandler(imgButton_cancel_MouseDown);
			imgButton_cancel.MouseUp += new MouseEventHandler(imgButton_cancel_MouseUp);
			this.Controls.Add(imgButton_cancel);
			
			//lblNexus setup
			Label lblNexus = new Label();
			lblNexus.BackColor = backColor;
			lblNexus.Text = "\"Hi! I'm TOK, and I'll be your guide around\nTree Of Knowledge's Fun Interactive Network Nexus (FINN)...";
			lblNexus.Font = new Font("Arial", 14);
			lblNexus.ForeColor = Color.White;
			lblNexus.Top = 25;
			lblNexus.Left = 25;
			lblNexus.Width = 370;
			lblNexus.Height = 60;
			this.Controls.Add(lblNexus);
			
			//lblMain setup
			Label lblMain = new Label();
			lblMain.BackColor = backColor;
			lblMain.ForeColor = Color.White;
			lblMain.Font = new Font("Arial", 14);
			lblMain.Text += "When you click 'Next', I'll look";
			lblMain.Text += "\naround to see if there are any";
			lblMain.Text += "\nother games going on near you.\"";
			lblMain.Top = 95;
			lblMain.Left = 25;
			lblMain.Width = 270;
			lblMain.Height = 80;
			this.Controls.Add(lblMain);
			

		}
		//make our images behave like buttons
		private void imgButton_cancel_MouseDown(object sender, MouseEventArgs e) 
		{
			if(e.Button == MouseButtons.Left) {
				imgButton_cancel.Image = new Bitmap("Graphics/exclude/cancel_down.bmp");
			}
		}
		private void imgButton_cancel_MouseUp(object sender, MouseEventArgs e) 
		{
			if(e.Button == MouseButtons.Left) {
				imgButton_cancel.Image = new Bitmap("Graphics/exclude/cancel.bmp");
			}
		}
		private void imgButton_next_MouseDown(object sender, MouseEventArgs e)
		{
			if(e.Button == MouseButtons.Left) {
				imgButton_next.Image = new Bitmap("Graphics/exclude/next_down.bmp");
			}
		}
		private void imgButton_next_MouseUp(object sender, MouseEventArgs e)
		{
			if(e.Button == MouseButtons.Left) {
				imgButton_next.Image = new Bitmap("Graphics/exclude/next.bmp");
			}
		}
		
		//acctually do something when we are clicked
		private void imgButton_cancel_click(object sender, EventArgs e)
		{
			Application.Exit();
		}
		private void imgButton_next_click(object sender, EventArgs e) 
		{
			Console.WriteLine("imgButton next clicked");
			try
			{
				udp = new udpServer();
				udp.broadcast("?|games", 9090);
				udp.CancelTimer += new udpServer.CancelTimerHandler(udp_CancelTimer);
				Clock = new System.Windows.Forms.Timer();
				Clock.Interval = 1000;
				Clock.Start();
				Clock.Tick += new EventHandler(Timer_Tick);
				rec = new Thread(new ThreadStart(udp.recData));
				rec.IsBackground = true;
				rec.Start();
				this.Visible = false;
				//Stop thread and show form in timer Clock
			}
			catch(Exception ex)
			{
				MessageBox.Show( ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
				Console.WriteLine(ex.Message);
			}

		}
		private void udp_CancelTimer(object sender, EventArgs e) 
		{
			
			Console.WriteLine("CancelTimer Fired");
			//open the tokbox!
			if(!alreadyFired)
			{
				Console.WriteLine("Trying to show form");
				alreadyFired = true;
				handleTimer();
			}

		}
		private void handleTimer()
		{
			try
			{
				
				
				Clock.Stop();
				tokbox myTokBox = new tokbox(1, "network game found", "I found a network game going on.... \nwould you like to connect to it?", udp.gameip);
				
				
				//it's the displaying of these forms that fails.
				if(myTokBox.ShowDialog(this) == DialogResult.Cancel)
				{
					frmNetChoose frmNetChooser = new frmNetChoose();
					frmNetChooser.Show();
				}
				else
				{
					frmAvatar AvatarForm = new frmAvatar();
					AvatarForm.Show();
					AvatarForm.setip(udp.gameip);
				}
				
				udp.Close();


			}
			catch (Exception ex)
			{
				Console.WriteLine(ex.ToString());
			}
		}

		private void Timer_Tick(object sender, EventArgs e) 
		{
			Console.WriteLine("Timer_Tick fired");
			try
			{
				this.Hide();
				frmNetChoose frmNetChooser = new frmNetChoose();
				frmNetChooser.Show();
				Clock.Stop();
	
			}
			catch(Exception ex)
			{
				Console.WriteLine(ex.Message + ex.InnerException + ex.StackTrace);
				MessageBox.Show( ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
			}
			Console.WriteLine("End of timer tick");
		}
		
		
	}
	
}