public CAForm() { // CONSTRUCTOR DoubleBuffered = true; Text = "CA 2011"; Size = new Size(WIDTH, HEIGHT); ToolTip tooltip = new ToolTip(); tooltip.SetToolTip(this, "Click or draw to add cells!"); Bitmap bm; try { bm = LoadBitmap("bgr.jpg"); } catch (Exception) { bm = CreateBitmap(SP_WIDTH, SP_HEIGHT); } caController = new Controller(bm, bm.Width, bm.Height); // ClientSize.Width, ClientSize.Height); ResizeRedraw = true; Graphics gf = CreateGraphics(); gf.DrawImageUnscaled(caController.Surface, 0, 0); //Bitmap shade = new Bitmap(ClientSize.Width, 50); //Graphics g = Graphics.FromImage(shade); //Brush b = new SolidBrush(Color.FromArgb(20, 200, 200, 200)); //gf.FillRectangle(b, new Rectangle(0, 0, ClientSize.Width, 50)); //g.DrawImageUnscaled(shade, 0, 0); //g.Dispose(); //Graphics gs = CreateGraphics(); //gf.DrawImageUnscaled(shade, 0, 0); tmr = new Timer(); tmr.Enabled = false; tmr.Interval = 50; tmr.Tick += new EventHandler(HandleTick); if (!caController.Calc.GradientTest) { //tmr.Start(); } Panel p = new Panel(); p.Width = ClientSize.Width - bm.Width; p.Dock = DockStyle.Right; p.Parent = this; Button startButton = new Button(); startButton.Text = "Start"; startButton.Location = new Point(p.Width - startButton.Width - 10, 20); startButton.Anchor = AnchorStyles.Right; startButton.Click += new EventHandler(OnStartClick); startButton.Parent = p; sb = new StatusBar(); sb.Parent = this; sb.Text = "Generations: 0"; caController.Calc.PropertyChanged += new PropertyChangedEventHandler(OnGenerationsChanged); //Controls.Add(); CenterToScreen(); }
public CAForm() { // CONSTRUCTOR DoubleBuffered = true; Text = "CA 2011"; Size = new Size(WIDTH, HEIGHT); ToolTip tooltip = new ToolTip(); tooltip.SetToolTip(this, "Click or draw to add cells!"); Bitmap bm; try { bm = LoadBitmap("bgr.jpg"); } catch (Exception) { bm = CreateBitmap(SP_WIDTH, SP_HEIGHT); } // Creating palette //Gfx.Palette.Map paletteMap = new Gfx.Palette.Map(); //paletteMap.setColorStop(0, new Gfx.Palette.ColorStop(0, Color.White)); //paletteMap.setColorStop(3, new Gfx.Palette.ColorStop(3, Color.LightSteelBlue)); // Color.Yellow)); //paletteMap.setColorStop(10, new Gfx.Palette.ColorStop(10, Color.SteelBlue)); // Color.Lime)); //paletteMap.setColorStop(95, new Gfx.Palette.ColorStop(99, Color.DarkBlue)); //.SaddleBrown)); //paletteMap.setColorStop(100, new Gfx.Palette.ColorStop(100, Color.DarkTurquoise)); //paletteMap.setColorStop(0, new Gfx.Palette.GradientEditor.GradientStop(Color.White, 0)); //paletteMap.setColorStop(3, new Gfx.Palette.GradientEditor.GradientStop(Color.LightSteelBlue, 3)); // Color.Yellow)); //paletteMap.setColorStop(10, new Gfx.Palette.GradientEditor.GradientStop(Color.SteelBlue, 10)); // Color.Lime)); //paletteMap.setColorStop(95, new Gfx.Palette.GradientEditor.GradientStop(Color.DarkBlue, 99)); //.SaddleBrown)); //paletteMap.setColorStop(100, new Gfx.Palette.GradientEditor.GradientStop(Color.DarkTurquoise, 100)); //paletteMap.setColorStop(0, new ColorStop(0, Color.Yellow)); //paletteMap.setColorStop(10, new ColorStop(10, Color.Lime)); //paletteMap.setColorStop(80, new ColorStop(85, Color.DarkRed)); //paletteMap.setColorStop(100, new ColorStop(100, Color.SaddleBrown)); Panel p = new TableLayoutPanel(); p.Width = ClientSize.Width - bm.Width; p.Padding = new Padding(5); p.Dock = DockStyle.Right; p.Parent = this; //GradientEditor gedit = new GradientEditor(paletteMap); gedit = new GradientEditor(); gedit.Anchor = AnchorStyles.Left | AnchorStyles.Right; gedit.setColorStop(new Gfx.Palette.GradientEditor.GradientStop(Color.White, 0)); gedit.setColorStop(new Gfx.Palette.GradientEditor.GradientStop(Color.LightSteelBlue, 3)); // Color.Yellow)); gedit.setColorStop(new Gfx.Palette.GradientEditor.GradientStop(Color.SteelBlue, 10)); // Color.Lime)); gedit.setColorStop(new Gfx.Palette.GradientEditor.GradientStop(Color.DarkBlue, 95)); //.SaddleBrown)); gedit.setColorStop(new Gfx.Palette.GradientEditor.GradientStop(Color.DarkTurquoise, 100)); gedit.MapChanged += new GradientEditor.MapChangedEventHandler(GeditMapChangedHandler); //caController = new Controller(bm, bm.Width, bm.Height, paletteMap); // ClientSize.Width, ClientSize.Height); caController = new Controller(bm, bm.Width, bm.Height, gedit.getMap()); ResizeRedraw = true; Graphics gf = CreateGraphics(); gf.DrawImageUnscaled(caController.Surface, 0, 0); //Bitmap shade = new Bitmap(ClientSize.Width, 50); //Graphics g = Graphics.FromImage(shade); //Brush b = new SolidBrush(Color.FromArgb(20, 200, 200, 200)); //gf.FillRectangle(b, new Rectangle(0, 0, ClientSize.Width, 50)); //g.DrawImageUnscaled(shade, 0, 0); //g.Dispose(); //Graphics gs = CreateGraphics(); //gf.DrawImageUnscaled(shade, 0, 0); startButton = new Button(); startButton.Text = "Start"; startButton.Anchor = AnchorStyles.Left | AnchorStyles.Right; startButton.Click += new EventHandler(OnStartClick); startButton.Parent = p; Button randomButton = new Button(); randomButton.Text = "Randomize"; randomButton.Anchor = AnchorStyles.Left | AnchorStyles.Right; randomButton.Click += new EventHandler(OnRandomClick); randomButton.Parent = p; Button resetButton = new Button(); resetButton.Text = "Reset"; resetButton.Anchor = AnchorStyles.Left | AnchorStyles.Right; resetButton.Click += new EventHandler(OnResetClick); resetButton.Parent = p; crmGB = new GroupBox(); crmGB.Text = "Cell relations"; crmGB.Anchor = AnchorStyles.Left | AnchorStyles.Right; crmGB.Width = p.Width - 20; crmGB.Parent = p; crmCB = new CellRelationCheckBox[3, 3]; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (!(i == 1 && j == 1)) { crmCB[i, j] = new CellRelationCheckBox(i, j); crmCB[i, j].Location = new Point(j * 20 + 20, i * 20 + 20); crmCB[i, j].Width = 20; crmCB[i, j].Checked = caController.Calc.sm[i, j]; crmCB[i, j].CheckedChanged += new EventHandler(OnCrmCBChanged); crmCB[i, j].Parent = crmGB; } } } Label livLabel = new Label(); livLabel.Text = "Create cells on:"; livLabel.AutoSize = true; livLabel.Parent = p; livTB = new TextBox(); livTB.Anchor = AnchorStyles.Left | AnchorStyles.Right; livTB.KeyUp += new KeyEventHandler(OnKeyUp); livTB.Name = "livTB"; RefreshLivDthTB(livTB); livTB.Validating += OnLivDthTextValidating; livTB.Parent = p; ToolTip livTT = new ToolTip(); livTT.SetToolTip(livTB, "Comma separated numbers of neighboring cells that makes an empty space filled (eg: 0,3,5,8)."); Label dthLabel = new Label(); dthLabel.Text = "Destroy cells on:"; dthLabel.AutoSize = true; dthLabel.Parent = p; dthTB = new TextBox(); dthTB.Anchor = AnchorStyles.Left | AnchorStyles.Right; dthTB.KeyUp += new KeyEventHandler(OnKeyUp); dthTB.Name = "dthTB"; RefreshLivDthTB(dthTB); dthTB.Validating += OnLivDthTextValidating; dthTB.Parent = p; ToolTip dthTT = new ToolTip(); dthTT.SetToolTip(dthTB, "Comma separated numbers of neighboring cells that makes a filled space empty (eg: 0,1,4,8)."); ageingCB = new CheckBox(); ageingCB.Location = new Point(10, 40); ageingCB.Text = "Ageing"; ageingCB.Checked = true; ageingCB.Parent = p; ageingCB.CheckedChanged += new EventHandler(OnAgeingCBChanged); Label geditLabel = new Label(); geditLabel.Text = "Colors of ageing:"; geditLabel.Location = new Point(10, 280); geditLabel.AutoSize = true; geditLabel.Parent = p; gedit.Parent = p; Button saveImg = new Button(); saveImg.Text = "Export image..."; saveImg.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom; saveImg.Click += new EventHandler(OnSaveImgClick); saveImg.Parent = p; Button loadImg = new Button(); loadImg.Text = "Import image..."; loadImg.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom; loadImg.Click += new EventHandler(OnLoadImgClick); loadImg.Parent = p; Button saveSettings = new Button(); saveSettings.Text = "Save config..."; saveSettings.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom; saveSettings.Click += new EventHandler(OnSaveSettingsClick); saveSettings.Parent = p; Button loadSettings = new Button(); loadSettings.Text = "Load config..."; loadSettings.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom; loadSettings.Click += new EventHandler(OnLoadSettingsClick); loadSettings.Parent = p; tmr = new Timer(); tmr.Enabled = false; tmr.Interval = 50; tmr.Tick += new EventHandler(HandleTick); if (!caController.Calc.GradientTest) { //tmr.Start(); } Button quitButton = new Button(); quitButton.Text = "Quit"; quitButton.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom; //quitButton.Dock = DockStyle.Top; quitButton.Click += new EventHandler(OnQuitClick); quitButton.Parent = p; sb = new StatusBar(); sb.Text = "Generations: 0"; sb.Parent = this; caController.Calc.PropertyChanged += new PropertyChangedEventHandler(OnGenerationsChanged); //Controls.Add(); CenterToScreen(); }