public void GuiInitialize(Manager manager, GraphicsDeviceManager graphics) { // Create and setup Window control. BottomBar = new Window(manager); BottomBar.Init(); BottomBar.Width = graphics.PreferredBackBufferWidth; BottomBar.Height = 100; BottomBar.Top = graphics.PreferredBackBufferHeight - BottomBar.Height; BottomBar.Left = 0; BottomBar.BorderVisible = false; BottomBar.Movable = false; BottomBar.Resizable = false; BottomBar.Visible = true; // Create Alert Text textbox = new TextBox(manager); textbox.Init(); textbox.Text = "In philosophy and science, emergence is the way complex systems and patterns arise out of a multiplicity of relatively simple interactions."; textbox.Width = 830; textbox.Height = 20; textbox.ReadOnly = true; textbox.Passive = true; textbox.Left = (1024 / 2) - (textbox.Width / 2); textbox.Top = 0; textbox.Parent = BottomBar; #region BottomBar // Create Tool Select. radStimulant = new RadioButton(manager); radStimulant.Init(); radStimulant.Parent = BottomBar; radStimulant.Left = (1024 / 2) - (textbox.Width / 2); radStimulant.Top = 30; radStimulant.Width = 100; radStimulant.Height = 16; radStimulant.Text = "Stimulant"; radStimulant.Checked = false; radStimulant.Click += new MouseEventHandler(Tool_Click); radPoison = new RadioButton(manager); radPoison.Init(); radPoison.Parent = BottomBar; radPoison.Left = (1024 / 2) - (textbox.Width / 2) + 110; radPoison.Top = 30; radPoison.Width = 100; radPoison.Height = 16; radPoison.Text = "Poison"; radPoison.Checked = false; radPoison.Click += new MouseEventHandler(Tool_Click); radMutigen = new RadioButton(manager); radMutigen.Init(); radMutigen.Parent = BottomBar; radMutigen.Left = (1024 / 2) - (textbox.Width / 2) + 220; radMutigen.Top = 30; radMutigen.Width = 100; radMutigen.Height = 16; radMutigen.Text = "Mutigen"; radMutigen.Checked = false; radMutigen.Click += new MouseEventHandler(Tool_Click); radGrab = new RadioButton(manager); radGrab.Init(); radGrab.Parent = BottomBar; radGrab.Left = (1024 / 2) - (textbox.Width / 2) + 330; radGrab.Top = 30; radGrab.Width = 100; radGrab.Height = 16; radGrab.Text = "Grab"; radGrab.Checked = true; radGrab.Click += new MouseEventHandler(Tool_Click); // Create Settings button. btnSettings = new Button(manager); btnSettings.Init(); btnSettings.Text = "Settings"; btnSettings.Width = 72; btnSettings.Height = 24; btnSettings.Left = 10; btnSettings.Top = 10; btnSettings.Anchor = Anchors.Bottom; btnSettings.Parent = BottomBar; btnSettings.Click += new MouseEventHandler(btnSettings_Click); // Create Sample button. btnSample = new Button(manager); btnSample.Init(); btnSample.Text = "Sample"; btnSample.Width = 72; btnSample.Height = 24; btnSample.Left = 10; btnSample.Top = 44; btnSample.Anchor = Anchors.Bottom; btnSample.Parent = BottomBar; btnSample.Click += new MouseEventHandler(btnSample_Click); // Create Edit button. btnEdit = new Button(manager); btnEdit.Init(); btnEdit.Text = "Edit"; btnEdit.Width = 72; btnEdit.Height = 24; btnEdit.Left = textbox.Left + textbox.Width - btnEdit.Width; btnEdit.Top = textbox.Top + textbox.Height + 10; btnEdit.Anchor = Anchors.Bottom; btnEdit.Parent = BottomBar; btnEdit.Click += new MouseEventHandler(btnEdit_Click); // Create Save Button. btnSave = new Button(manager); btnSave.Init(); btnSave.Text = "Save"; btnSave.Width = 72; btnSave.Height = 24; btnSave.Left = 1024 - btnSave.Width - 10; btnSave.Top = 10; btnSave.Anchor = Anchors.Bottom; btnSave.Parent = BottomBar; // Create Load Button. btnLoad = new Button(manager); btnLoad.Init(); btnLoad.Text = "Load"; btnLoad.Width = 72; btnLoad.Height = 24; btnLoad.Left = 1024 - btnLoad.Width - 10; btnLoad.Top = 44; btnLoad.Anchor = Anchors.Bottom; btnLoad.Parent = BottomBar; #endregion #region SettingsPane //Create Settings Pane wndSettings = new Window(manager); wndSettings.Init(); wndSettings.Text = "Settings"; wndSettings.Width = 400; wndSettings.Height = 300; wndSettings.Top = 20; wndSettings.Left = 20; wndSettings.Resizable = false; wndSettings.Visible = false; //Create Environment settings lblMutRate = new Label(manager); lblMutRate.Init(); lblMutRate.Parent = wndSettings; lblMutRate.Left = 10; lblMutRate.Top = 10; lblMutRate.Text = "Mutation rate:"; lblMutRate.Width = 130; lblMutRate.Height = 20; spnMutRate = new SpinBox(manager, SpinBoxMode.Range); spnMutRate.Init(); spnMutRate.ReadOnly = true; spnMutRate.Width = 60; spnMutRate.Height = 20; spnMutRate.Top = 30; spnMutRate.Left = 10; spnMutRate.Maximum = 10; spnMutRate.Minimum = 0; spnMutRate.Rounding = 0; spnMutRate.Value = Game1.Globals.MutationRate; spnMutRate.Step = 1; spnMutRate.Passive = true; spnMutRate.Text = Convert.ToString(spnMutRate.Value); spnMutRate.Parent = wndSettings; lblSolar = new Label(manager); lblSolar.Init(); lblSolar.Parent = wndSettings; lblSolar.Left = 10; lblSolar.Top = 60; lblSolar.Text = "Solar Radiation:"; lblSolar.Width = 130; lblSolar.Height = 20; spnSolar = new SpinBox(manager, SpinBoxMode.Range); spnSolar.Init(); spnSolar.ReadOnly = true; spnSolar.Width = 60; spnSolar.Height = 20; spnSolar.Top = 80; spnSolar.Left = 10; spnSolar.Maximum = 10; spnSolar.Minimum = 0; spnSolar.Rounding = 0; spnSolar.Step = 1; spnSolar.Value = Game1.Globals.SolarIntensity; spnSolar.Passive = true; spnSolar.Text = Convert.ToString(spnSolar.Value); spnSolar.Parent = wndSettings; lblLifeSpan = new Label(manager); lblLifeSpan.Init(); lblLifeSpan.Parent = wndSettings; lblLifeSpan.Left = 10; lblLifeSpan.Top = 110; lblLifeSpan.Text = "Life in Mins:"; lblLifeSpan.Width = 130; lblLifeSpan.Height = 20; spnLifeSpan = new SpinBox(manager, SpinBoxMode.Range); spnLifeSpan.Init(); spnLifeSpan.ReadOnly = true; spnLifeSpan.Width = 60; spnLifeSpan.Height = 20; spnLifeSpan.Top = 130; spnLifeSpan.Left = 10; spnLifeSpan.Maximum = 30; spnLifeSpan.Minimum = 0; spnLifeSpan.Rounding = 0; spnLifeSpan.Step = 1; spnLifeSpan.Value = Game1.Globals.SymetLifespan; spnLifeSpan.Passive = true; spnLifeSpan.Text = Convert.ToString(spnLifeSpan.Value); spnLifeSpan.Parent = wndSettings; lblSpeed = new Label(manager); lblSpeed.Init(); lblSpeed.Parent = wndSettings; lblSpeed.Left = 10; lblSpeed.Top = 160; lblSpeed.Text = "Game Speed:"; lblSpeed.Width = 130; lblSpeed.Height = 20; spnSpeed = new SpinBox(manager, SpinBoxMode.Range); spnSpeed.Init(); spnSpeed.ReadOnly = true; spnSpeed.Width = 60; spnSpeed.Height = 20; spnSpeed.Top = 180; spnSpeed.Left = 10; spnSpeed.Maximum = 10; spnSpeed.Minimum = 0; spnSpeed.Rounding = 0; spnSpeed.Step = 1; spnSpeed.Value = Game1.Globals.SymetSpeed; spnSpeed.Text = Convert.ToString(spnSpeed.Value); spnSpeed.Passive = true; spnSpeed.Parent = wndSettings; // Create Done Button. btnSettingsClose = new Button(manager); btnSettingsClose.Init(); btnSettingsClose.Text = "Done"; btnSettingsClose.Width = 72; btnSettingsClose.Height = 24; btnSettingsClose.Left = 400 - 92; btnSettingsClose.Top = 300 - 64; btnSettingsClose.Anchor = Anchors.Bottom; btnSettingsClose.Parent = wndSettings; btnSettingsClose.Click += new MouseEventHandler(btnDone_Click); #endregion // Add the window controls to the manager processing queue. manager.Add(BottomBar); manager.Add(wndSettings); }
//////////////////////////////////////////////////////////////////////////// public TaskControls(Manager manager) : base(manager) { MinimumWidth = 340; MinimumHeight = 140; Height = 480; Center(); Text = "Controls Test"; TopPanel.Visible = true; Caption.Text = "Information"; Description.Text = "Demonstration of various controls available in Neoforce Controls library."; Caption.TextColor = Description.TextColor = new Color(96, 96, 96); grpEdit = new GroupPanel(Manager); grpEdit.Init(); grpEdit.Parent = this; grpEdit.Anchor = Anchors.Left | Anchors.Top | Anchors.Right; grpEdit.Width = ClientWidth - 200; grpEdit.Height = 160; grpEdit.Left = 8; grpEdit.Top = TopPanel.Height + 8; grpEdit.Text = "EditBox"; pnlControls = new Panel(Manager); pnlControls.Init(); pnlControls.Passive = true; pnlControls.Parent = this; pnlControls.Anchor = Anchors.Left | Anchors.Top | Anchors.Right; pnlControls.Left = 8; pnlControls.Top = grpEdit.Top + grpEdit.Height + 8; pnlControls.Width = ClientWidth - 200; pnlControls.Height = BottomPanel.Top - 32 - pnlControls.Top; pnlControls.BevelBorder = BevelBorder.All; pnlControls.BevelMargin = 1; pnlControls.BevelStyle = BevelStyle.Etched; pnlControls.Color = Color.Transparent; lblEdit = new Label(manager); lblEdit.Init(); lblEdit.Parent = grpEdit; lblEdit.Left = 16; lblEdit.Top = 8; lblEdit.Text = "Testing field:"; lblEdit.Width = 128; lblEdit.Height = 16; txtEdit = new TextBox(manager); txtEdit.Init(); txtEdit.Parent = grpEdit; txtEdit.Left = 16; txtEdit.Top = 24; txtEdit.Width = grpEdit.ClientWidth - 32; txtEdit.Height = 20; txtEdit.Anchor = Anchors.Left | Anchors.Top | Anchors.Right | Anchors.Bottom; txtEdit.Text = "Text"; rdbNormal = new RadioButton(manager); rdbNormal.Init(); rdbNormal.Parent = grpEdit; rdbNormal.Left = 16; rdbNormal.Top = 52; rdbNormal.Width = grpEdit.ClientWidth - 32; rdbNormal.Anchor = Anchors.Left | Anchors.Bottom | Anchors.Right; rdbNormal.Checked = true; rdbNormal.Text = "Normal mode"; rdbNormal.ToolTip.Text = "Enables normal mode for TextBox control."; rdbNormal.CheckedChanged += new TomShane.Neoforce.Controls.EventHandler(ModeChanged); rdbPassword = new RadioButton(manager); rdbPassword.Init(); rdbPassword.Parent = grpEdit; rdbPassword.Left = 16; rdbPassword.Top = 68; rdbPassword.Width = grpEdit.ClientWidth - 32; rdbPassword.Anchor = Anchors.Left | Anchors.Bottom | Anchors.Right; rdbPassword.Checked = false; rdbPassword.Text = "Password mode"; rdbPassword.ToolTip.Text = "Enables password mode for TextBox control."; rdbPassword.CheckedChanged += new TomShane.Neoforce.Controls.EventHandler(ModeChanged); chkBorders = new CheckBox(manager); chkBorders.Init(); chkBorders.Parent = grpEdit; chkBorders.Left = 16; chkBorders.Top = 96; chkBorders.Width = grpEdit.ClientWidth - 32; chkBorders.Anchor = Anchors.Left | Anchors.Bottom | Anchors.Right; chkBorders.Checked = false; chkBorders.Text = "Borderless mode"; chkBorders.ToolTip.Text = "Enables or disables borderless mode for TextBox control."; chkBorders.CheckedChanged += new TomShane.Neoforce.Controls.EventHandler(chkBorders_CheckedChanged); chkReadOnly = new CheckBox(manager); chkReadOnly.Init(); chkReadOnly.Parent = grpEdit; chkReadOnly.Left = 16; chkReadOnly.Top = 110; chkReadOnly.Width = grpEdit.ClientWidth - 32; chkReadOnly.Anchor = Anchors.Left | Anchors.Bottom | Anchors.Right; chkReadOnly.Checked = false; chkReadOnly.Text = "Read only mode"; chkReadOnly.ToolTip.Text = "Enables or disables read only mode for TextBox control.\nThis mode is necessary to enable explicitly."; chkReadOnly.CheckedChanged += new TomShane.Neoforce.Controls.EventHandler(chkReadOnly_CheckedChanged); string[] colors = new string[] {"Red", "Green", "Blue", "Yellow", "Orange", "Purple", "White", "Black", "Magenta", "Cyan", "Brown", "Aqua", "Beige", "Coral", "Crimson", "Gray", "Azure", "Ivory", "Indigo", "Khaki", "Orchid", "Plum", "Salmon", "Silver", "Gold", "Pink", "Linen", "Lime", "Olive", "Slate"}; spnMain = new SpinBox(manager, SpinBoxMode.List); spnMain.Init(); spnMain.Parent = pnlControls; spnMain.Left = 16; spnMain.Top = 16; spnMain.Width = pnlControls.Width - 32; spnMain.Height = 20; spnMain.Anchor = Anchors.Left | Anchors.Top | Anchors.Right; spnMain.Items.AddRange(colors); spnMain.Mode = SpinBoxMode.Range; spnMain.ItemIndex = 0; cmbMain = new ComboBox(manager); cmbMain.Init(); cmbMain.Parent = pnlControls; cmbMain.Left = 16; cmbMain.Top = 44; cmbMain.Width = pnlControls.Width - 32; cmbMain.Height = 20; cmbMain.ReadOnly = true; cmbMain.Anchor = Anchors.Left | Anchors.Top | Anchors.Right; cmbMain.Items.AddRange(colors); cmbMain.ItemIndex = 0; cmbMain.MaxItems = 5; cmbMain.ToolTip.Color = Color.Yellow; cmbMain.Movable = cmbMain.Resizable = true; cmbMain.OutlineMoving = cmbMain.OutlineResizing = true; trkMain = new TrackBar(manager); trkMain.Init(); trkMain.Parent = pnlControls; trkMain.Left = 16; trkMain.Top = 72; trkMain.Width = pnlControls.Width - 32; trkMain.Anchor = Anchors.Left | Anchors.Top | Anchors.Right; trkMain.Range = 64; trkMain.Value = 16; trkMain.ValueChanged += new TomShane.Neoforce.Controls.EventHandler(trkMain_ValueChanged); lblTrack = new Label(manager); lblTrack.Init(); lblTrack.Parent = pnlControls; lblTrack.Left = 16; lblTrack.Top = 96; lblTrack.Width = pnlControls.Width - 32; lblTrack.Anchor = Anchors.Left | Anchors.Top | Anchors.Right; lblTrack.Alignment = Alignment.TopRight; lblTrack.TextColor = new Color(32, 32, 32); trkMain_ValueChanged(this, null); // forcing label redraw with init values mnuListBox = new ContextMenu(manager); MenuItem i1 = new MenuItem("This is very long text"); MenuItem i2 = new MenuItem("Menu", true); MenuItem i3 = new MenuItem("Item", false); //i3.Enabled = false; MenuItem i4 = new MenuItem("Separated", true); MenuItem i11 = new MenuItem(); MenuItem i12 = new MenuItem(); MenuItem i13 = new MenuItem(); MenuItem i14 = new MenuItem(); MenuItem i111 = new MenuItem(); MenuItem i112 = new MenuItem(); MenuItem i113 = new MenuItem(); mnuListBox.Items.AddRange(new MenuItem[]{i1,i2, i3, i4}); i2.Items.AddRange(new MenuItem[] { i11, i12, i13, i14 }); i13.Items.AddRange(new MenuItem[] { i111, i112, i113 }); lstMain = new ListBox(manager); lstMain.Init(); lstMain.Parent = this; lstMain.Top = TopPanel.Height + 8; lstMain.Left = grpEdit.Left + grpEdit.Width + 8; lstMain.Width = ClientWidth - lstMain.Left - 8; lstMain.Height = ClientHeight - 16 - BottomPanel.Height - TopPanel.Height; lstMain.Anchor = Anchors.Top | Anchors.Right | Anchors.Bottom; lstMain.HideSelection = false; lstMain.Items.AddRange(colors); lstMain.ContextMenu = mnuListBox; prgMain = new ProgressBar(manager); prgMain.Init(); prgMain.Parent = this.BottomPanel; prgMain.Left = lstMain.Left; prgMain.Top = 10; prgMain.Width = lstMain.Width; prgMain.Height = 16; prgMain.Anchor = Anchors.Top | Anchors.Right; prgMain.Mode = ProgressBarMode.Infinite; prgMain.Passive = false; btnDisable = new Button(manager); btnDisable.Init(); btnDisable.Parent = BottomPanel; btnDisable.Left = 8; btnDisable.Top = 8; btnDisable.Text = "Disable"; btnDisable.Click += new Controls.EventHandler(btnDisable_Click); btnDisable.TextColor = Color.FromNonPremultiplied(255, 64, 32, 200); btnProgress = new Button(manager); btnProgress.Init(); btnProgress.Parent = BottomPanel; btnProgress.Left = prgMain.Left - 16; btnProgress.Top = prgMain.Top; btnProgress.Height = 16; btnProgress.Width = 16; btnProgress.Text = "!"; btnProgress.Anchor = Anchors.Top | Anchors.Right; btnProgress.Click += new Controls.EventHandler(btnProgress_Click); mnuMain = new MainMenu(manager); mnuMain.Items.Add(i2); mnuMain.Items.Add(i13); mnuMain.Items.Add(i3); mnuMain.Items.Add(i4); MainMenu = mnuMain; ToolBarPanel tlp = new ToolBarPanel(manager); ToolBarPanel = tlp; ToolBar tlb = new ToolBar(manager); ToolBar tlbx = new ToolBar(manager); tlb.FullRow = true; tlbx.Row = 1; tlbx.FullRow = false; tlp.Add(tlb); tlp.Add(tlbx); /* tlb.Init(); tlb.Width = 256; tlb.Parent = ToolBarPanel;*/ //tlbx.Init(); /* tlbx.Width = 512; tlbx.Top = 25; tlbx.Parent = ToolBarPanel;*/ /* ToolBarButton tb1 = new ToolBarButton(manager); tb1.Init(); tb1.Parent = tlb; tb1.Left = 10; tb1.Top = 1; tb1.Glyph = new Glyph(Manager.Skin.Images["Icon.Warning"].Resource); tb1.Glyph.SizeMode = SizeMode.Stretched; */ StatusBar stb = new StatusBar(Manager); StatusBar = stb; DefaultControl = txtEdit; OutlineMoving = true; OutlineResizing = true; BottomPanel.BringToFront(); SkinChanged += new TomShane.Neoforce.Controls.EventHandler(TaskControls_SkinChanged); TaskControls_SkinChanged(null, null); }