rendered paste bodyusing 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");
}
}
}