public Control CreateControl(Manager manager, Control parent, PropertyInfo field, object existingData) { var enumValues = Enum.GetNames(field.PropertyType); var selectedItemIndex = -1; // Get a list of the pretty names var prettyNames = new List<ItemValue>(enumValues.Length); for (var i = 0; i < enumValues.Length; i++) { var enumMember = field.PropertyType.GetMember(enumValues[i])[0]; var editableAttributeDetails = enumMember.GetCustomAttributes(typeof(EditableAttribute), false).Cast<EditableAttribute>().FirstOrDefault(); if (editableAttributeDetails != null) { // Logical implication // requiresAdmin => isAdmin if (!editableAttributeDetails.AdminRequired || Constants.Editing.IsAdminMode) { prettyNames.Add(new ItemValue(editableAttributeDetails.PrettyName, enumValues[i])); } } else { Console.WriteLine("Didn't find an editable attribute for {0}", enumValues[i]); } } if (existingData != null) { var found = false; foreach(var prettyName in prettyNames) { selectedItemIndex++; if(prettyName.Value == existingData.ToString()) { found = true; break; } } if(!found) { selectedItemIndex = 0; } } else { selectedItemIndex = 0; } var dropDownMenu = new ComboBox(manager) { Parent = parent, Name = field.Name }; dropDownMenu.Items.AddRange(prettyNames); dropDownMenu.Init(); dropDownMenu.ItemIndex = selectedItemIndex; //dropDownMenu.Text = prettyNames[selectedItemIndex].Text; return dropDownMenu; }
private void CreatePureLogicEditor(Control parent) { var prettyNames = new string[_pureLogicTypes.Count()]; var index = 0; foreach (var type in _pureLogicTypes) { prettyNames[index++] = EditableAttribute.GetPrettyName(type); } var logicLabel = new Label(Manager) { Text = "Node Logic :: ", Width = 150, Left = 16, Top = 16, Parent = parent }; var logicChoices = new ComboBox(Manager) { Parent = parent, Width = 100, Left = logicLabel.Left + logicLabel.Width + 16, Top = 16, Height = 20 }; logicChoices.Items.AddRange(prettyNames); logicChoices.Init(); logicChoices.Width = 200; logicChoices.Parent = parent; pureLogicContainer = new Panel(Manager) { Width = parent.Width - 48, Top = logicChoices.Height + 32, Left = 16, AutoScroll = true, Parent = parent }; pureLogicContainer.Init(); pureLogicContainer.Visible = true; logicChoices.ItemIndexChanged += (sender, args) => PureLogicChanged(_pureLogicTypes[((ComboBox)sender).ItemIndex], pureLogicContainer); var currentPos = Array.IndexOf(_pureLogicTypes, _node.BindedLogic.PureLogic.GetType()); if (currentPos == -1) { Console.WriteLine("Missing logic type within drop down menu"); logicChoices.ItemIndex = 0; } else { logicChoices.ItemIndex = currentPos; } }
private void ItemCreatorDelegate(DetailedItem item, object obj) { //editGroupWindow = new EditNodeWindow(sidebar, "All Players", room.groups.playerGroup.Name); //editGroupWindow.componentView.SwitchGroup(room.groups.playerGroup); //editGroupWindow.componentView.SwitchNode(n, false); if (obj == null) return; if (obj is InspectorInfo) { InspectorInfo inspectorItem = (InspectorInfo)obj; if (inspectorItem.methodInfo != null) { Button btnInvoke = new Button(manager); btnInvoke.Init(); btnInvoke.Parent = item.panel; btnInvoke.TextColor = Color.Blue; btnInvoke.Width = 50; btnInvoke.Left = item.panel.Width - btnInvoke.Width - btnInvoke.Width - 5; btnInvoke.Height = item.buttonHeight; btnInvoke.ToolTip.Text = "Invoke Method"; btnInvoke.Name = "method_button_invoke"; btnInvoke.Text = "Do"; item.AddControl(btnInvoke); } if (inspectorItem.obj == null) return; object o = inspectorItem.obj; bool isToggle = Utils.isToggle(o); if (o != null) { if (o is Node) { //item.label.Text = "Root"; Node n = (Node)o; Button btnEdit = new Button(manager); btnEdit.Init(); btnEdit.Parent = item.panel; btnEdit.Width = 30; btnEdit.Left = item.panel.Width - btnEdit.Width - 10; btnEdit.Top = 2; btnEdit.Height = item.buttonHeight; EventHandler editnode = (s, e) => { //item.isSelected = true; EditNodeWindow editNodeWindow = new EditNodeWindow(sidebar, inspectorItem.Name(), n.name, ViewType.Node); editNodeWindow.componentView.SwitchNode(n, false); }; btnEdit.Text = "Edit"; btnEdit.ToolTip.Text = "Edit"; btnEdit.TextColor = UserInterface.TomShanePuke; btnEdit.Click += editnode; } else if (o is Link) { Link link = (Link)o; Button btnEdit = new Button(manager); btnEdit.Init(); btnEdit.Parent = item.panel; btnEdit.Width = 30; btnEdit.Left = item.panel.Width - btnEdit.Width - 10; btnEdit.Top = 2; btnEdit.Height = item.buttonHeight; EventHandler editlink = (s, e) => { EditLinkWindow editLinkWindow = new EditLinkWindow(sidebar, link, inspectorItem.Name()); }; btnEdit.Text = "Edit"; btnEdit.ToolTip.Text = "Edit"; btnEdit.TextColor = UserInterface.TomShanePuke; btnEdit.Click += editlink; } else if (o is Body || o is Component) { item.label.Text = o.GetType().ToString().LastWord('.'); } if (o is Component) { Component comp = (Component)o; Button btnEnabled = new Button(manager); btnEnabled.Init(); btnEnabled.Parent = item.panel; btnEnabled.TextColor = Color.Red; btnEnabled.Width = 25; btnEnabled.Left = item.panel.Width - btnEnabled.Width - 20; btnEnabled.Top = 3; btnEnabled.Height = item.buttonHeight; btnEnabled.ToolTip.Text = "Toggle Active"; btnEnabled.Name = "component_button_enabled"; SetButtonBool(btnEnabled, comp.active); item.AddControl(btnEnabled); //check for essential if (!comp.isEssential()) { Button btnRemove = new Button(manager); btnRemove.Init(); btnRemove.Parent = item.panel; btnRemove.TextColor = Color.Red; btnRemove.Left = btnEnabled.Left - 20; btnRemove.Top = 3; btnRemove.Height = item.buttonHeight; btnRemove.Width = item.buttonWidth; btnRemove.Text = "-"; btnRemove.ToolTip.Text = "Remove"; btnRemove.Name = "component_button_remove"; item.AddControl(btnRemove); } } else if (o is int || o is Single || o is byte || isToggle) { int w = 60; TextBox textbox = new TextBox(manager); textbox.ClientMargins = new Margins(); textbox.Init(); textbox.Parent = item.panel; textbox.TextColor = UserInterface.TomShanePuke; textbox.Left = backPanel.Width - w - 26; textbox.Width = w; textbox.Height = textbox.Height - 4; textbox.Name = "number_textbox"; if (isToggle) { textbox.Name = "toggle_textbox"; Button btnEnabled = new Button(manager); btnEnabled.Init(); btnEnabled.Parent = item.panel; btnEnabled.TextColor = Color.Red; btnEnabled.Width = 25; btnEnabled.Left = textbox.Left - btnEnabled.Width; //btnEnabled.Top = 3; btnEnabled.Height = item.buttonHeight; btnEnabled.ToolTip.Text = "Toggle Active"; btnEnabled.Name = "toggle_button_enabled"; SetButtonBool(btnEnabled, (o as dynamic).enabled); item.AddControl(btnEnabled); //item.AddControl(checkbox); //textbox.Text = (o as dynamic).valueString(); // too slow. textbox.Text = "..."; } else textbox.Text = o.ToString(); textbox.ClientArea.Top += 2; textbox.ClientArea.Left += 4; textbox.FocusLost += delegate { textbox.SendMessage(Message.KeyUp, new KeyEventArgs(Microsoft.Xna.Framework.Input.Keys.Enter)); }; textbox.ClientArea.Move += delegate { marginalize(textbox); }; item.AddControl(textbox); Type primitiveType = !isToggle ? o.GetType() : ((dynamic)o).value.GetType(); Button up = new Button(manager); up.SetSize(textbox.ClientArea.Height, textbox.ClientArea.Height / 2); up.Anchor = Anchors.Right; up.Init(); up.Left = textbox.ClientArea.Width - up.Width; sidebar.ui.SetScrollableControl(up, List_ChangeScrollPosition); up.ToolTip.Text = "Increment : RightClick = byOne, MiddleClick = byTen, RightClick = Double"; up.MouseDown += (s, e) => { switch (e.Button) { case MouseButton.Left: textbox.Text = textbox.Text.increment(primitiveType, NumBoxMode.byOne); break; case MouseButton.Right: textbox.Text = textbox.Text.increment(primitiveType, NumBoxMode.quadratic); break; case MouseButton.Middle: textbox.Text = textbox.Text.increment(primitiveType, NumBoxMode.byTen); break; } textbox.SendMessage(Message.KeyUp, new KeyEventArgs(Microsoft.Xna.Framework.Input.Keys.Enter)); marginalize(textbox); }; textbox.Add(up); Button down = new Button(manager); down.SetSize(textbox.ClientArea.Height, textbox.ClientArea.Height / 2); down.Anchor = Anchors.Right; down.Top = up.Height; down.Init(); down.ToolTip.Text = "Decrement : RightClick = byOne, MiddleClick = byTen, RightClick = half"; down.MouseDown += (s, e) => { switch (e.Button) { case MouseButton.Left: textbox.Text = textbox.Text.decrement(primitiveType, NumBoxMode.byOne); break; case MouseButton.Right: textbox.Text = textbox.Text.decrement(primitiveType, NumBoxMode.quadratic); break; case MouseButton.Middle: textbox.Text = textbox.Text.decrement(primitiveType, NumBoxMode.byTen); break; } textbox.SendMessage(Message.KeyUp, new KeyEventArgs(Microsoft.Xna.Framework.Input.Keys.Enter)); marginalize(textbox); }; down.Left = textbox.ClientArea.Width - down.Width; sidebar.ui.SetScrollableControl(down, List_ChangeScrollPosition); textbox.Add(down); //todo: make tiny + and - buttons } else if (o is string) { int w = 60; TextBox textbox = new TextBox(manager); textbox.ClientMargins = new Margins(); textbox.Init(); textbox.Parent = item.panel; textbox.TextColor = UserInterface.TomShanePuke; textbox.Left = backPanel.Width - w - 26; textbox.Width = w; textbox.Height = textbox.Height - 4; textbox.Text = o.ToString(); textbox.Name = "string_textbox"; item.AddControl(textbox); textbox.ClientArea.Top += 2; textbox.ClientArea.Left += 2; textbox.KeyPress += delegate { if (!textbox.Text.Equals("")) { textbox.ClientArea.Top += 2; textbox.ClientArea.Left += 2; } }; } else if (o is bool) { Button btnEnabled = new Button(manager); btnEnabled.Init(); btnEnabled.Parent = item.panel; btnEnabled.TextColor = Color.Red; btnEnabled.Width = 25; btnEnabled.Left = item.panel.Width - btnEnabled.Width - 20; //btnEnabled.Top = 3; btnEnabled.Height = item.buttonHeight; btnEnabled.ToolTip.Text = "Toggle Enabled"; btnEnabled.Name = "bool_button_enabled"; SetButtonBool(btnEnabled, (bool)o); item.AddControl(btnEnabled); } else if (o.GetType().IsEnum) { int w = 95; ComboBox combobox = new ComboBox(manager); combobox.ClientMargins = new Margins(); combobox.Init(); combobox.TextColor = UserInterface.TomShanePuke; combobox.Parent = item.panel; combobox.Left = backPanel.Width - w - 26; combobox.Height = combobox.Height - 4; combobox.Width = w; combobox.MaxItems = 15; int i = 0; foreach(string s in Enum.GetNames(o.GetType())) { combobox.Items.Add(s); if (s.Equals(o.ToString())) combobox.ItemIndex = i; i++; } combobox.Name = "enum_combobox"; item.AddControl(combobox); combobox.ClientArea.Top += 2; combobox.ClientArea.Left += 2; combobox.ItemIndexChanged += delegate { if (!combobox.Text.Equals("")) { combobox.ClientArea.Top += 2; combobox.ClientArea.Left += 2; } }; } } } }
public Control CreateControl(Manager manager, Control parent, PropertyInfo field, object existingData) { var worldNamesSelection = new ComboBox(manager) { Width = 200, Name = field.Name }; worldNamesSelection.Items.AddRange(_worldNames); worldNamesSelection.Init(); worldNamesSelection.ItemIndex = 0; return worldNamesSelection; }
private Panel CreateExistingWorldInterface(String[] worldNames) { var panel = new Panel(ControlManager.Manager) { Width = 856, Height = 467, AutoScroll = true, Left = 300, Top = 50 }; panel.Init(); ControlManager.Add(panel); if (!worldNames.Any()) { var label = new Label(ControlManager.Manager) { Height = 50, Left = 20, Width = 400, Text = "There are no existing worlds to edit!\nSelect the Create New World tab to create one." }; panel.Add(label); return panel; } var existingWorldLabel = new Label(ControlManager.Manager) { Text = "Existing World :: ", Width = 200, Left = 16, Top = 16, Parent = panel }; var worldNamesSelection = new ComboBox(ControlManager.Manager) { Width = 200, Parent = panel, Top = 16, Left = existingWorldLabel.Left + existingWorldLabel.Width + 20 }; worldNamesSelection.Items.AddRange(worldNames); worldNamesSelection.Init(); worldNamesSelection.ItemIndex = 0; worldNamesSelection.Left = existingWorldLabel.Left + existingWorldLabel.Width + 16; panel.Add(worldNamesSelection); var beginWorldEditor = new Button(ControlManager.Manager) { Text = "Load world", Top = 200, Left = 100, Width = 200 }; beginWorldEditor.Init(); beginWorldEditor.Click += (sender, args) => LoadExistingWorld(worldNamesSelection.Text); panel.Add(beginWorldEditor); return panel; }
private void ConfigMenu() { NeoforceGui guiManager = this.Gui as NeoforceGui; System.Diagnostics.Debug.Assert(guiManager != null); // Create and setup Window control. Window window = new Window(guiManager.Manager); window.Init(); window.Text = "PloobsEngine Config"; window.Width = 350; window.Height = 300; window.Center(); window.Visible = true; Label lab1 = new Label(guiManager.Manager); lab1.Text = "Resolução"; lab1.Top = 20; lab1.Left = 20; lab1.Parent = window; List<string> colors = new List<string>(); foreach (var item in GraphicInfo.GraphicsAdapter.SupportedDisplayModes) { if (item.Format == Microsoft.Xna.Framework.Graphics.SurfaceFormat.Color) { colors.Add(item.Width + "x" + item.Height); } } lb1 = new ComboBox(guiManager.Manager); lb1.Init(); lb1.Parent = window; lb1.Left = lab1.Left; lb1.Top = lab1.Top + lab1.Height; lb1.Width = 200; lb1.ItemIndex = 0; lb1.Height = 20; lb1.ItemIndexChanged += new TomShane.Neoforce.Controls.EventHandler(lb1_ItemIndexChanged); lb1.Anchor = Anchors.Left | Anchors.Top | Anchors.Right; lb1.Items.AddRange(colors); lb1.Text = "800x600"; lb1.SelectionStart = 0; // Create Button control and set the previous window as its parent. Button button = new Button(guiManager.Manager); button.Init(); button.Text = "Apply"; button.Width = button.Text.Length * 10; button.Height = 24; button.Left = (window.ClientWidth / 2) - (button.Width / 2); button.Top = window.ClientHeight - button.Height - 8; button.Anchor = Anchors.Bottom; button.Parent = window; button.Click += new TomShane.Neoforce.Controls.EventHandler(button_Click); CheckBox ck1 = new CheckBox(guiManager.Manager); ck1.Text = "FullScreen"; ck1.Checked = false; ck1.Click += new TomShane.Neoforce.Controls.EventHandler(ck1_Click); ck1.Top = lb1.Top + lb1.Height + 10; ck1.Parent = window; ck1.Left = lb1.Left; ck1.Width = ck1.Text.Length*10; CheckBox ms1 = new CheckBox(guiManager.Manager); ms1.Text = "MultiSampling"; ms1.Checked = false; ms1.Top = ck1.Top + ck1.Height + 10; ms1.Parent = window; ms1.Click += new TomShane.Neoforce.Controls.EventHandler(ms1_Click); ms1.Left = lb1.Left; ms1.Width = ms1.Text.Length * 10; CheckBox vsy = new CheckBox(guiManager.Manager); vsy.Text = "Vertical Sincronization"; vsy.Checked = false; vsy.Top = ms1.Top + ms1.Height + 10; vsy.Parent = window; vsy.Click += new TomShane.Neoforce.Controls.EventHandler(vsy_Click); vsy.Left = lb1.Left; vsy.Width = vsy.Text.Length * 10; CheckBox mip = new CheckBox(guiManager.Manager); mip.Text = "Use MipMap"; mip.Checked = false; mip.Top = vsy.Top + vsy.Height + 10; mip.Parent = window; mip.Click += new TomShane.Neoforce.Controls.EventHandler(mip_Click); mip.Left = lb1.Left; mip.Width = mip.Text.Length * 10; CheckBox ans = new CheckBox(guiManager.Manager); ans.Text = "Use Anisotropic Filtering"; ans.Checked = false; ans.Top = mip.Top + mip.Height + 10; ans.Parent = window; ans.Click += new TomShane.Neoforce.Controls.EventHandler(ans_Click); ans.Left = lb1.Left; ans.Width = ans.Text.Length * 10; // Add the window control to the manager processing queue. guiManager.Manager.Add(window); }
public void UpdateGroupComboBox(ComboBox cb, params string[] additionalItems) { if (room == null || cb == null) return; string tempName = ""; if (cb.ItemIndex >= 0) tempName = cb.Items.ElementAt(cb.ItemIndex).ToString(); cb.ItemIndex = 0; List<object> list = cb.Items; list.ToList().ForEach((o) => list.Remove(o)); room.masterGroup.GroupNamesToList(list); for (int i = 0; i < additionalItems.Length; i++) { list.Add(additionalItems[i]); } if (!tempName.Equals("")) cb.ItemIndex = cb.Items.IndexOf(tempName); }
public LobbyWindow(Manager manager) : base(manager) { //Setup the window CaptionVisible = false; TopPanel.Visible = false; Movable = false; Resizable = false; Width = 700; Height = 500; Shadow = true; Center(); //Group panels grpLobby = new GroupPanel(Manager) { Width = ClientWidth / 2, Height = ClientHeight - BottomPanel.Height + 2, Text = "Rooms" }; grpLobby.Init(); Add(grpLobby); grpServer = new GroupPanel(Manager) { Left = (ClientWidth / 2) - 1, Width = (ClientWidth / 2) + 1, Height = ClientHeight - BottomPanel.Height + 2, Text = "Server" }; grpServer.Init(); Add(grpServer); //Top controls txtSearch = new TextBox(Manager) { Left = 8, Top = 8, Width = (ClientWidth / 4) - 16, }; txtSearch.Init(); txtSearch.Text = searchStr; txtSearch.TextChanged += new TomShane.Neoforce.Controls.EventHandler(delegate(object o, TomShane.Neoforce.Controls.EventArgs e) { RefreshRooms(); }); //Show "Search..." text, but make it dissapear on focus txtSearch.FocusGained += new TomShane.Neoforce.Controls.EventHandler(delegate(object o, TomShane.Neoforce.Controls.EventArgs e) { if (txtSearch.Text.Trim() == searchStr) txtSearch.Text = string.Empty; }); txtSearch.FocusLost += new TomShane.Neoforce.Controls.EventHandler(delegate(object o, TomShane.Neoforce.Controls.EventArgs e) { if (txtSearch.Text.Trim() == string.Empty) txtSearch.Text = searchStr; }); grpLobby.Add(txtSearch); cmbSort = new ComboBox(Manager) { Left = txtSearch.Right + 8, Top = 8, Width = (ClientWidth / 4) - 16 - 20, }; cmbSort.Init(); cmbSort.Items.AddRange(sortFilters); cmbSort.ItemIndex = 0; cmbSort.ItemIndexChanged += new TomShane.Neoforce.Controls.EventHandler(delegate(object o, TomShane.Neoforce.Controls.EventArgs e) { RefreshRooms(); }); grpLobby.Add(cmbSort); btnReload = new Button(Manager) { Left = cmbSort.Right + 8, Top = 8, Width = 20, Height = 20, Text = string.Empty, }; btnReload.Init(); btnReload.Glyph = new Glyph(ContentPack.Textures["gui\\icons\\refresh"]); btnReload.ToolTip.Text = "Refresh"; btnReload.Click += new TomShane.Neoforce.Controls.EventHandler(delegate(object o, TomShane.Neoforce.Controls.EventArgs e) { Game.NetManager.Send(new RequestMessage(MessageTypes.Lobby)); }); grpLobby.Add(btnReload); //Main room list RoomListCtrl = new ControlList<LobbyDataControl>(Manager) { Left = 8, Top = txtSearch.Bottom + 8, Width = grpLobby.Width - 16, Height = grpLobby.Height - 16 - txtSearch.Bottom - 24 }; RoomListCtrl.Init(); grpLobby.Add(RoomListCtrl); //Server info labels lblName = new Label(Manager) { Text = "Loading...", Top = 8, Font = FontSize.Default20, Left = 8, Alignment = Alignment.MiddleCenter, Height = 30, Width = grpServer.ClientWidth - 16 }; lblName.Init(); grpServer.Add(lblName); lblDescription = new Label(Manager) { Text = string.Empty, Top = 8 + lblName.Bottom, Left = 8, Alignment = Alignment.MiddleCenter, Width = grpServer.ClientWidth - 16 }; lblDescription.Init(); grpServer.Add(lblDescription); lblInfo = new Label(Manager) { Text = string.Empty, Top = 8 + lblDescription.Bottom, Left = 8, Alignment = Alignment.TopLeft, Width = grpServer.ClientWidth - 16, Height = grpServer.Height }; lblInfo.Init(); grpServer.Add(lblInfo); //Bottom buttons btnCreate = new Button(Manager) { Top = 8, Text = "Create" }; btnCreate.Left = (ClientWidth / 2) - (btnCreate.Width / 2); btnCreate.Init(); btnCreate.Click += new TomShane.Neoforce.Controls.EventHandler(delegate(object o, TomShane.Neoforce.Controls.EventArgs e) { CreateWorldDialog window = new CreateWorldDialog(manager, this); window.Init(); Manager.Add(window); window.Show(); }); BottomPanel.Add(btnCreate); btnJoin = new Button(Manager) { Right = btnCreate.Left - 8, Top = 8, Text = "Join" }; btnJoin.Init(); btnJoin.Click += new TomShane.Neoforce.Controls.EventHandler(delegate(object o, TomShane.Neoforce.Controls.EventArgs e) { JoinRoom(RoomListCtrl.ItemIndex); }); BottomPanel.Add(btnJoin); btnDisconnect = new Button(Manager) { Left = btnCreate.Right + 8, Top = 8, Text = "Quit" }; btnDisconnect.Init(); btnDisconnect.Click += new TomShane.Neoforce.Controls.EventHandler(delegate(object o, TomShane.Neoforce.Controls.EventArgs e) { Game.NetManager.Disconnect("Left Lobby"); Game.CurrentGameState = GameState.Login; Interface.MainWindow.ScreenManager.SwitchScreen(new LoginScreen()); }); BottomPanel.Add(btnDisconnect); //When finished, request server send lobby data Game.NetManager.Send(new RequestMessage(MessageTypes.Lobby)); }
private void InitializeControls() { _manager.Initialize(); _manager.AutoCreateRenderTarget = true; _tabControl = new TabControl(_manager); _tabControl.Init(); _tabControl.Left = 600; _tabControl.Top = 0; _tabControl.Width = Width; _tabControl.Height = Height; _tabControl.Show(); #region WavePage _wavePage = _tabControl.AddPage(); _wavePage.Text = "Waves"; #region Constructors _health = new Label(_manager); _health.Init(); _texture = new Label(_manager); _texture.Init(); _speed = new Label(_manager); _speed.Init(); _number = new Label(_manager); _number.Init(); _waves = new ListBox(_manager); _waves.Init(); _deleteWaveButton = new Button(_manager); _deleteWaveButton.Init(); _addWaveButton = new Button(_manager); _addWaveButton.Init(); _currentWave = new ListBox(_manager); _currentWave.Init(); _addCreepsButton = new Button(_manager); _addCreepsButton.Init(); _numberOfCreeps = new TextBox(_manager); _numberOfCreeps.Init(); _speedOfCreeps = new TextBox(_manager); _speedOfCreeps.Init(); _healthOfCreeps = new TextBox(_manager); _healthOfCreeps.Init(); _creepTexture = new ComboBox(_manager); _creepTexture.Init(); #endregion #region Properties _texture.Text = "Textur"; _texture.Top = 2; _texture.Left = 2; _texture.Parent = _wavePage; _wavePage.Add(_texture); _creepTexture.Items.AddRange(new[] { "Slyder", "Drone", "Ape", "Paw" }); _creepTexture.Text = "Slyder"; _creepTexture.Width = 80; _creepTexture.Left = 2; _creepTexture.Top = _texture.Top + _texture.Height + 2; _creepTexture.TextColor = Color.LightGray; _creepTexture.Parent = _wavePage; _health.Text = "Gesundheit"; _health.Top = 2; _health.Left = _creepTexture.Left + _creepTexture.Width + 5; _health.Parent = _wavePage; _healthOfCreeps.Left = _health.Left; _healthOfCreeps.Top = _health.Top + _health.Height + 2; _healthOfCreeps.Width = _health.Width; _healthOfCreeps.TextColor = Color.LightGray; _healthOfCreeps.Parent = _wavePage; _speed.Text = "Geschwindigkeit"; _speed.Left = _health.Left + _health.Width + 5; _speed.Top = 2; _speed.Width = 93; _speed.Parent = _wavePage; _speedOfCreeps.Left = _speed.Left; _speedOfCreeps.Top = _speed.Top + _speed.Height + 2; _speedOfCreeps.Width = _speed.Width; _speedOfCreeps.TextColor = Color.LightGray; _speedOfCreeps.Parent = _wavePage; _number.Text = "Anzahl"; _number.Top = 2; _number.Left = _speed.Left + _speed.Width + 5; _number.Width = 40; _number.Parent = _wavePage; _numberOfCreeps.Left = _number.Left; _numberOfCreeps.Top = _number.Top + _number.Height + 2; _numberOfCreeps.Width = _number.Width; _numberOfCreeps.TextColor = Color.LightGray; _numberOfCreeps.Parent = _wavePage; _addCreepsButton.Text = "Creeps hinzufügen"; _addCreepsButton.Top = _numberOfCreeps.Top + _numberOfCreeps.Height - _addCreepsButton.Height; _addCreepsButton.Left = _numberOfCreeps.Left + _numberOfCreeps.Width + 5; _addCreepsButton.Width = 120; _addCreepsButton.Parent = _wavePage; _currentWave.Left = 2; _currentWave.Top = _creepTexture.Top + _creepTexture.Height + 5; _currentWave.Width = _addCreepsButton.Left + _addCreepsButton.Width; _currentWave.Height = 150; _currentWave.TextColor = Color.LightGray; _currentWave.Parent = _wavePage; _addWaveButton.Text = "Wave hinzufügen"; _addWaveButton.Left = 2; _addWaveButton.Top = _currentWave.Top + _currentWave.Height + 5; _addWaveButton.Width = 150; _addWaveButton.Parent = _wavePage; _deleteWaveButton.Text = "Wave löschen"; _deleteWaveButton.Left = _addWaveButton.Left + _addWaveButton.Width + 5; _deleteWaveButton.Top = _currentWave.Top + _currentWave.Height + 5; _deleteWaveButton.Width = _addWaveButton.Width; _deleteWaveButton.Parent = _wavePage; _waves.Left = 2; _waves.Top = _addWaveButton.Top + _addWaveButton.Height + 5; _waves.Width = _currentWave.Width; _waves.Height = 150; _waves.TextColor = Color.LightGray; _waves.Parent = _wavePage; _waves.ItemIndexChanged += _waves_ItemIndexChanged; #endregion #region Events _addCreepsButton.Click += AddCreepsButton_Click; _addWaveButton.Click += AddWaveButton_Click; _deleteWaveButton.Click += DeleteWaveButton_Click; #endregion #endregion #region SavePage _savePage = _tabControl.AddPage(); _savePage.Text = "Speichern & Laden"; _path = new TextBox(_manager); _path.Init(); _path.Top = 2; _path.Left = 2; _path.Width = 200; _path.Parent = _savePage; _path.ReadOnly = true; _fileNameButton = new Button(_manager); _fileNameButton.Init(); _fileNameButton.Text = "..."; _fileNameButton.Width = 17; _fileNameButton.Height = _fileNameButton.Width; _fileNameButton.Top = _path.Top + _path.Height / 2 - _fileNameButton.Height / 2; _fileNameButton.Left = _path.Left + _path.Width + 2; _fileNameButton.Parent = _savePage; _fileNameButton.Click += delegate { var dlg = new SaveFileDialog { Filter = "Level-Dateien|*.xml", InitialDirectory = Path.GetFullPath( Path.GetDirectoryName( Assembly.GetExecutingAssembly().Location) + @"\..\Content\Map") }; dlg.ShowDialog(); _path.Text = dlg.FileName; }; _saveButton = new Button(_manager); _saveButton.Init(); _saveButton.Top = _path.Top + _path.Height + 2; _saveButton.Left = 2; _saveButton.Text = "Speichern"; _saveButton.Width = 120; _saveButton.Parent = _savePage; _saveButton.Click += delegate { if (_path.Text.Length > 0) { string fileName = _path.Text; Save(fileName); } }; LoadButton = new Button(_manager); LoadButton.Init(); LoadButton.Left = 2; LoadButton.Top = 50; LoadButton.Text = "Laden"; LoadButton.Width = 120; LoadButton.Parent = _savePage; LoadButton.Click += LoadButton_Click; #endregion _manager.Add(_tabControl); }
/// <summary> /// Initializes UI elements /// </summary> private void InitControls() { //Map MapControl = new MapWindow(Manager); MapControl.Init(); MapControl.SetPosition(201, 0); MapControl.Environment = Environment; MapControl.Renderer = Renderers[0]; MapControl.SetSize(Height, Height); MapControl.Resizable = true; MapControl.Movable = true; Add(MapControl); //Left side bar SideBar = new SideBar(Manager); SideBar.Init(); SideBar.StayOnBack = true; SideBar.Passive = true; SideBar.SetSize(200, Height); SideBar.Anchor = Anchors.Left | Anchors.Top | Anchors.Bottom; Add(SideBar); NewMapBtn = new Button(Manager); NewMapBtn.Init(); NewMapBtn.Text = "New Map"; NewMapBtn.SetPosition(25, 10); NewMapBtn.SetSize(150, 25); NewMapBtn.Anchor = Anchors.Top | Anchors.Left; NewMapBtn.Click += new EventHandler(NewMapBtn_Click); SideBar.Add(NewMapBtn); SelectMapBtn = new Button(Manager); SelectMapBtn.Init(); SelectMapBtn.Text = "Select Map"; SelectMapBtn.Click += new EventHandler(selectMapBtn_Click); SelectMapBtn.SetPosition(25, 40); SelectMapBtn.SetSize(150, 25); SelectMapBtn.Anchor = Anchors.Top | Anchors.Left; SideBar.Add(SelectMapBtn); DoOneStepBtn = new Button(Manager); DoOneStepBtn.Init(); DoOneStepBtn.Text = "Do One Step"; DoOneStepBtn.SetPosition(25, 90); DoOneStepBtn.SetSize(150, 25); DoOneStepBtn.Anchor = Anchors.Top | Anchors.Left; DoOneStepBtn.Click += new EventHandler(DoOneStepBtn_Click); SideBar.Add(DoOneStepBtn); DoOneRunBtn = new Button(Manager); DoOneRunBtn.Init(); DoOneRunBtn.Text = "Do One Run"; DoOneRunBtn.SetPosition(25, 120); DoOneRunBtn.SetSize(150, 25); DoOneRunBtn.Anchor = Anchors.Top | Anchors.Left; DoOneRunBtn.Click += new EventHandler(DoOneRunBtn_Click); SideBar.Add(DoOneRunBtn); NextRunBtn = new Button(Manager); NextRunBtn.Init(); NextRunBtn.Text = "Next Run"; NextRunBtn.SetPosition(25, 150); NextRunBtn.SetSize(150, 25); NextRunBtn.Anchor = Anchors.Top | Anchors.Left; NextRunBtn.Click += new EventHandler(NextRunBtn_Click); SideBar.Add(NextRunBtn); DoAllRunBtn = new Button(Manager); DoAllRunBtn.Init(); DoAllRunBtn.Text = "Do All Run"; DoAllRunBtn.SetPosition(25, 180); DoAllRunBtn.SetSize(150, 25); DoAllRunBtn.Anchor = Anchors.Top | Anchors.Left; DoAllRunBtn.Click += new EventHandler(DoAllRunBtn_Click); SideBar.Add(DoAllRunBtn); GrpBox = new GroupBox(Manager); GrpBox.Init(); GrpBox.SetSize(SideBar.Width - 30, 135); GrpBox.SetPosition(5, 220); GrpBox.ClientWidth = 180; GrpBox.Text = "Display Options"; GrpBox.TextColor = Color.Wheat; SideBar.Add(GrpBox); Label stepsLbl = new Label(Manager); stepsLbl.Init(); stepsLbl.Text = "Steps:"; stepsLbl.SetPosition(5, 25); GrpBox.Add(stepsLbl); StepsTxt = new TextBox(Manager); StepsTxt.Init(); StepsTxt.Text = "100"; StepsTxt.SetSize(100, 25); StepsTxt.SetPosition(5 + stepsLbl.Width, 20); StepsTxt.TextColor = Color.WhiteSmoke; StepsTxt.TextChanged += new EventHandler(TimeTxt_TextChanged); GrpBox.Add(StepsTxt); Label timeLbl = new Label(Manager); timeLbl.Init(); timeLbl.Text = "Time:"; timeLbl.SetPosition(5, 60); GrpBox.Add(timeLbl); TimeTxt = new TextBox(Manager); TimeTxt.Init(); TimeTxt.Text = "20"; TimeTxt.SetSize(100, 25); TimeTxt.SetPosition(5 + stepsLbl.Width, 55); TimeTxt.TextChanged += new EventHandler(TimeTxt_TextChanged); TimeTxt.TextColor = Color.WhiteSmoke; GrpBox.Add(TimeTxt); DisplayBtn = new Button(Manager); DisplayBtn.Init(); DisplayBtn.Text = "Display"; DisplayBtn.Click += new EventHandler(displayBtn_Click); DisplayBtn.SetSize(120, 25); DisplayBtn.SetPosition(50, 90); GrpBox.Add(DisplayBtn); Label rendererLbl = new Label(Manager); rendererLbl.Init(); rendererLbl.Text = "Renderer:"; rendererLbl.SetPosition(25, 360); Add(rendererLbl); RenderersComboBox = new ComboBox(Manager); RenderersComboBox.Init(); RenderersComboBox.SetPosition(25, 385); RenderersComboBox.Width = 150; RenderersComboBox.TextColor = Color.Wheat; RenderersComboBox.Items.AddRange(Renderers); RenderersComboBox.ItemIndex = 0; RenderersComboBox.TextChanged += new EventHandler(RenderersComboBox_TextChanged); Add(RenderersComboBox); Button makeFullScreenBtn = new Button(Manager); makeFullScreenBtn.Init(); makeFullScreenBtn.Text = "Fullscreen"; makeFullScreenBtn.SetPosition(25, 475); makeFullScreenBtn.SetSize(150, 25); makeFullScreenBtn.Click += new EventHandler(makeFullScreenBtn_Click); makeFullScreenBtn.Anchor = Anchors.Top | Anchors.Left; SideBar.Add(makeFullScreenBtn); Button exitBtn = new Button(Manager); exitBtn.Init(); exitBtn.Text = "Quit"; exitBtn.SetPosition(25, 510); exitBtn.SetSize(150, 25); exitBtn.Click += new EventHandler(exitBtn_Click); exitBtn.Anchor = Anchors.Top | Anchors.Left; SideBar.Add(exitBtn); ExitDlg = new ExitDialog(Manager); ExitDlg.Init(); ExitDlg.Closed += new WindowClosedEventHandler(ExitDlg_Closed); Manager.Add(ExitDlg); ExitDlg.Hide(); //Right side bar SideBarRight = new SideBar(Manager); SideBarRight.Init(); SideBarRight.StayOnBack = true; SideBarRight.Resizable = true; SideBarRight.ResizeEdge = Anchors.Left; SideBarRight.SetSize(200, Height); SideBarRight.SetPosition(Width - SideBarRight.Width, 0); SideBarRight.Anchor = Anchors.Right | Anchors.Top | Anchors.Bottom; Add(SideBarRight); GroupBox runParamsGrpBox = new GroupBox(Manager); runParamsGrpBox.Init(); runParamsGrpBox.SetSize(SideBarRight.Width - 30, 155); runParamsGrpBox.SetPosition(5, 10); runParamsGrpBox.ClientWidth = 38; runParamsGrpBox.Text = "Run Statistics"; runParamsGrpBox.TextColor = Color.Wheat; runParamsGrpBox.Anchor = Anchors.Left | Anchors.Right | Anchors.Top; SideBarRight.Add(runParamsGrpBox); Label runLbl1 = new Label(Manager); runLbl1.Init(); runLbl1.Text = "Run:"; runLbl1.SetPosition(10, 20); runLbl1.Width = 120; runParamsGrpBox.Add(runLbl1); Label runLbl2 = new Label(Manager); runLbl2.Init(); runLbl2.Text = "0"; runLbl2.SetPosition(runLbl1.Left + runLbl1.Width + 10, 20); runParamsGrpBox.Add(runLbl2); RunStatsLbls.Add(runLbl2); Label timeStepLbl1 = new Label(Manager); timeStepLbl1.Init(); timeStepLbl1.Text = "Time step:"; timeStepLbl1.SetPosition(10, 35); timeStepLbl1.Width = 120; runParamsGrpBox.Add(timeStepLbl1); Label timeStepLbl2 = new Label(Manager); timeStepLbl2.Init(); timeStepLbl2.Text = "0"; timeStepLbl2.SetPosition(timeStepLbl1.Left + timeStepLbl1.Width + 10, 35); runParamsGrpBox.Add(timeStepLbl2); RunStatsLbls.Add(timeStepLbl2); Label actionLbl1 = new Label(Manager); actionLbl1.Init(); actionLbl1.Text = "Action:"; actionLbl1.SetPosition(10, 60); actionLbl1.Width = 120; runParamsGrpBox.Add(actionLbl1); Label actionLbl2 = new Label(Manager); actionLbl2.Init(); actionLbl2.Text = "0"; actionLbl2.SetPosition(actionLbl1.Left + actionLbl1.Width + 10, 60); runParamsGrpBox.Add(actionLbl2); RunStatsLbls.Add(actionLbl2); Label dirtyOnMapLbl1 = new Label(Manager); dirtyOnMapLbl1.Init(); dirtyOnMapLbl1.Text = "Dirty on map:"; dirtyOnMapLbl1.SetPosition(10, 85); dirtyOnMapLbl1.Width = 120; runParamsGrpBox.Add(dirtyOnMapLbl1); Label dirtyOnMapLbl2 = new Label(Manager); dirtyOnMapLbl2.Init(); dirtyOnMapLbl2.Text = "0"; dirtyOnMapLbl2.SetPosition(dirtyOnMapLbl1.Left + dirtyOnMapLbl1.Width + 10, 85); runParamsGrpBox.Add(dirtyOnMapLbl2); RunStatsLbls.Add(dirtyOnMapLbl2); Label overAllDirtyLbl1 = new Label(Manager); overAllDirtyLbl1.Init(); overAllDirtyLbl1.Text = "Overall dirty:"; overAllDirtyLbl1.SetPosition(10, 100); overAllDirtyLbl1.Width = 120; runParamsGrpBox.Add(overAllDirtyLbl1); Label overAllDirtyLbl2 = new Label(Manager); overAllDirtyLbl2.Init(); overAllDirtyLbl2.Text = "0"; overAllDirtyLbl2.SetPosition(overAllDirtyLbl1.Left + overAllDirtyLbl1.Width + 10, 100); runParamsGrpBox.Add(overAllDirtyLbl2); RunStatsLbls.Add(overAllDirtyLbl2); Label cleanedDirtyLbl1 = new Label(Manager); cleanedDirtyLbl1.Init(); cleanedDirtyLbl1.Text = "Cleaned dirty:"; cleanedDirtyLbl1.SetPosition(10, 115); cleanedDirtyLbl1.Width = 120; runParamsGrpBox.Add(cleanedDirtyLbl1); Label cleanedDirtyLbl2 = new Label(Manager); cleanedDirtyLbl2.Init(); cleanedDirtyLbl2.Text = "0"; cleanedDirtyLbl2.SetPosition(cleanedDirtyLbl1.Left + cleanedDirtyLbl1.Width + 10, 115); runParamsGrpBox.Add(cleanedDirtyLbl2); RunStatsLbls.Add(cleanedDirtyLbl2); Label consumedEnergyLbl1 = new Label(Manager); consumedEnergyLbl1.Init(); consumedEnergyLbl1.Text = "Consumed energy:"; consumedEnergyLbl1.SetPosition(10, 130); consumedEnergyLbl1.Width = 120; runParamsGrpBox.Add(consumedEnergyLbl1); Label consumedEnergyLbl2 = new Label(Manager); consumedEnergyLbl2.Init(); consumedEnergyLbl2.Text = "0"; consumedEnergyLbl2.SetPosition(consumedEnergyLbl1.Left + consumedEnergyLbl1.Width + 10, 130); runParamsGrpBox.Add(consumedEnergyLbl2); RunStatsLbls.Add(consumedEnergyLbl2); //// GroupBox totalParamsGrpBox = new GroupBox(Manager); totalParamsGrpBox.Init(); totalParamsGrpBox.SetSize(SideBarRight.Width - 30, 215); totalParamsGrpBox.SetPosition(5, runParamsGrpBox.Top + runParamsGrpBox.Height + 10); totalParamsGrpBox.ClientWidth = 38; totalParamsGrpBox.Text = "Total Statistics"; totalParamsGrpBox.TextColor = Color.Wheat; totalParamsGrpBox.Anchor = Anchors.Left | Anchors.Right | Anchors.Top; SideBarRight.Add(totalParamsGrpBox); Label completedRunsLbl1 = new Label(Manager); completedRunsLbl1.Init(); completedRunsLbl1.Text = "Completed Runs:"; completedRunsLbl1.SetPosition(10, 20); completedRunsLbl1.Width = 120; totalParamsGrpBox.Add(completedRunsLbl1); Label completedRunsLbl2 = new Label(Manager); completedRunsLbl2.Init(); completedRunsLbl2.Text = "0"; completedRunsLbl2.SetPosition(completedRunsLbl1.Left + completedRunsLbl1.Width + 10, 20); totalParamsGrpBox.Add(completedRunsLbl2); TotalStatsLbls.Add(completedRunsLbl2); Label totalDirtyLbl1 = new Label(Manager); totalDirtyLbl1.Init(); totalDirtyLbl1.Text = "Total dirty degree:"; totalDirtyLbl1.SetPosition(10, 35); totalDirtyLbl1.Width = 120; totalParamsGrpBox.Add(totalDirtyLbl1); Label totalDirtyLbl2 = new Label(Manager); totalDirtyLbl2.Init(); totalDirtyLbl2.Text = "0"; totalDirtyLbl2.SetPosition(totalDirtyLbl1.Left + totalDirtyLbl1.Width + 10, 35); totalParamsGrpBox.Add(totalDirtyLbl2); TotalStatsLbls.Add(totalDirtyLbl2); Label totalCleanedLbl1 = new Label(Manager); totalCleanedLbl1.Init(); totalCleanedLbl1.Text = "Total cleaned dirty:"; totalCleanedLbl1.SetPosition(10, 60); totalCleanedLbl1.Width = 120; totalParamsGrpBox.Add(totalCleanedLbl1); Label totalCleanedLbl2 = new Label(Manager); totalCleanedLbl2.Init(); totalCleanedLbl2.Text = "0"; totalCleanedLbl2.SetPosition(totalCleanedLbl1.Left + totalCleanedLbl1.Width + 10, 60); totalParamsGrpBox.Add(totalCleanedLbl2); TotalStatsLbls.Add(totalCleanedLbl2); Label totalConsumedLbl1 = new Label(Manager); totalConsumedLbl1.Init(); totalConsumedLbl1.Text = "Total consumed\nenergy:"; totalConsumedLbl1.SetPosition(10, 85); totalConsumedLbl1.SetSize(120, 30); totalParamsGrpBox.Add(totalConsumedLbl1); Label totalConsumedLbl2 = new Label(Manager); totalConsumedLbl2.Init(); totalConsumedLbl2.Text = "0"; totalConsumedLbl2.SetPosition(totalConsumedLbl1.Left + totalConsumedLbl1.Width + 10, 85); totalParamsGrpBox.Add(totalConsumedLbl2); TotalStatsLbls.Add(totalConsumedLbl2); Label avarageDirtyLbl1 = new Label(Manager); avarageDirtyLbl1.Init(); avarageDirtyLbl1.Text = "Average dirty\ndegree:"; avarageDirtyLbl1.SetPosition(10, 115); avarageDirtyLbl1.SetSize(120, 30); totalParamsGrpBox.Add(avarageDirtyLbl1); Label avarageDirtyLbl2 = new Label(Manager); avarageDirtyLbl2.Init(); avarageDirtyLbl2.Text = "0"; avarageDirtyLbl2.SetPosition(avarageDirtyLbl1.Left + avarageDirtyLbl1.Width + 10, 115); totalParamsGrpBox.Add(avarageDirtyLbl2); TotalStatsLbls.Add(avarageDirtyLbl2); Label avarageCleanedLbl1 = new Label(Manager); avarageCleanedLbl1.Init(); avarageCleanedLbl1.Text = "Average cleaned\ndirty:"; avarageCleanedLbl1.SetPosition(10, 145); avarageCleanedLbl1.SetSize(120, 30); totalParamsGrpBox.Add(avarageCleanedLbl1); Label avarageCleanedLbl2 = new Label(Manager); avarageCleanedLbl2.Init(); avarageCleanedLbl2.Text = "0"; avarageCleanedLbl2.SetPosition(avarageCleanedLbl1.Left + avarageCleanedLbl1.Width + 10, 145); totalParamsGrpBox.Add(avarageCleanedLbl2); TotalStatsLbls.Add(avarageCleanedLbl2); Label avarageConsumedLbl1 = new Label(Manager); avarageConsumedLbl1.Init(); avarageConsumedLbl1.Text = "Average consumed\nenergy:"; avarageConsumedLbl1.SetPosition(10, 175); avarageConsumedLbl1.Width = 120; avarageConsumedLbl1.Height = 30; totalParamsGrpBox.Add(avarageConsumedLbl1); Label avarageConsumedLbl2 = new Label(Manager); avarageConsumedLbl2.Init(); avarageConsumedLbl2.Text = "0"; avarageConsumedLbl2.SetPosition(avarageConsumedLbl1.Left + avarageConsumedLbl1.Width + 10, 175); totalParamsGrpBox.Add(avarageConsumedLbl2); TotalStatsLbls.Add(avarageConsumedLbl2); ///// //Select map OpenFileDialog = new Dialog(Manager); OpenFileDialog.Init(); OpenFileDialog.Text = "Select map file"; OpenFileDialog.Description.Visible = false; OpenFileDialog.Caption.Text = ""; OpenFileDialog.Width = 600; OpenFileDialog.Resize += new ResizeEventHandler(OpenFileDialog_Resize); Manager.Add(OpenFileDialog); OpenFileDialog.Hide(); FilesList = new ListBox(Manager); FilesList.Init(); FilesList.Tag = System.Environment.CurrentDirectory; FilesList.SetPosition(0, 40); FilesList.ClientWidth = OpenFileDialog.Width - 15; FilesList.ClientHeight = OpenFileDialog.ClientHeight - 40; FilesList.TextColor = Color.Wheat; FilesList.DoubleClick += new EventHandler(FilesList_DoubleClick); GetFilesAndFolders(); OpenFileDialog.Add(FilesList); LifeTimeLbl = new Label(Manager); LifeTimeLbl.Init(); LifeTimeLbl.Text = "Life Time:"; LifeTimeLbl.SetPosition(5, 10); OpenFileDialog.Add(LifeTimeLbl); LifeTimeTxt = new TextBox(Manager); LifeTimeTxt.Init(); LifeTimeTxt.Text = "2000"; LifeTimeTxt.SetSize(100, 25); LifeTimeTxt.SetPosition(5 + stepsLbl.Width, 5); LifeTimeTxt.TextColor = Color.WhiteSmoke; LifeTimeTxt.TextChanged += new EventHandler(TimeTxt_TextChanged); OpenFileDialog.Add(LifeTimeTxt); TestCaseLbl = new Label(Manager); TestCaseLbl.Init(); TestCaseLbl.Text = "Test Case:"; TestCaseLbl.SetPosition(LifeTimeTxt.Left + LifeTimeTxt.Width + 5, 10); OpenFileDialog.Add(TestCaseLbl); TestCaseTxt = new TextBox(Manager); TestCaseTxt.Init(); TestCaseTxt.Text = "10"; TestCaseTxt.SetSize(100, 25); TestCaseTxt.SetPosition(TestCaseLbl.Left + TestCaseLbl.Width + 5, 5); TestCaseTxt.TextColor = Color.WhiteSmoke; TestCaseTxt.TextChanged += new EventHandler(TimeTxt_TextChanged); OpenFileDialog.Add(TestCaseTxt); AgentLbl = new Label(Manager); AgentLbl.Init(); AgentLbl.Text = "Agent:"; AgentLbl.SetPosition(TestCaseTxt.Left + TestCaseTxt.Width + 5, 10); OpenFileDialog.Add(AgentLbl); AgentsComboBox = new ComboBox(Manager); AgentsComboBox.Init(); AgentsComboBox.SetPosition(AgentLbl.Left + AgentLbl.Width - 10, 5); AgentsComboBox.Width = 150; AgentsComboBox.Height = 25; AgentsComboBox.TextColor = Color.Wheat; AgentsComboBox.Items.Add("RandomAgent"); AgentsComboBox.Items.Add("ModelAgent"); AgentsComboBox.Items.Add("ModelAgentNoIdle"); AgentsComboBox.ItemIndex = 0; OpenFileDialog.Add(AgentsComboBox); NewGameDialog = new Dialog(Manager); NewGameDialog.Init(); NewGameDialog.Text = "Start new tests"; NewGameDialog.Description.Visible = false; NewGameDialog.BottomPanel.Visible = false; NewGameDialog.Caption.Text = ""; NewGameDialog.Width = 600; NewGameDialog.Height = 130; NewGameDialog.TopPanel.Height = 100; Manager.Add(NewGameDialog); NewGameDialog.Hide(); Button newGameOk = new Button(Manager); newGameOk.Init(); newGameOk.SetPosition(20, 50); newGameOk.Text = "Confirm"; newGameOk.Click += new EventHandler(newGameOk_Click); NewGameDialog.Add(newGameOk); EnableDisableMapControls(false); }
//////////////////////////////////////////////////////////////////////////// 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); }
public void InitializeThirdPage() { stackview2 = new StackView(); tbcMain.AddPage(); TabPage third = tbcMain.TabPages[2]; third.Text = "Other"; backPanel2 = new Panel(manager); backPanel2.Height = third.Height; backPanel2.Width = third.Width; //backPanel2.Width = second.Width + 20; backPanel2.AutoScroll = true; backPanel2.Init(); third.Add(backPanel2); HeightCounter4 = 0; VertPadding4 = 0; ConsolePanel = new CollapsePanel(manager, backPanel2, "Console"); stackview2.AddPanel(ConsolePanel); PresetsPanel = new CollapsePanel(manager, backPanel2, "Presets"); stackview2.AddPanel(PresetsPanel); CheckBoxes = new CollapsePanel(manager, backPanel2, "CheckBoxes", extended: false); stackview2.AddPanel(CheckBoxes); //c14 = new CollapsePanel(manager, backPanel2, "fourth", extended: false); stackview2.AddPanel(c14); //c15 = new CollapsePanel(manager, backPanel2, "fifth", extended: false); stackview2.AddPanel(c15); //c16 = new CollapsePanel(manager, backPanel2, "sixth", extended: false); stackview2.AddPanel(c16); //c17 = new CollapsePanel(manager, backPanel2, "seventh", extended: false); stackview2.AddPanel(c17); //c18 = new CollapsePanel(manager, backPanel2, "eighth", extended: false); stackview2.AddPanel(c18); backPanel2.Color = UserInterface.TomDark; tbcMain.SelectedPage = tbcMain.TabPages[2]; #region /// Page 3 /// GroupPanel parent; #region /// Console /// parent = ConsolePanel.panel; #region /// Console textbox /// consoletextbox = new TextBox(manager); consoletextbox.Init(); consoletextbox.Parent = parent; consoletextbox.Left = LeftPadding; consoletextbox.Top = HeightCounter2; HeightCounter2 += VertPadding + consoletextbox.Height; consoletextbox.Width = parent.Width - LeftPadding * 2; consoletextbox.Height = consoletextbox.Height + 3; consoletextbox.ToolTip.Text = "Enter a command, and push enter"; consoletextbox.KeyUp += consolePressed; #endregion #region /// Enter Button /// Button btnEnter = new Button(manager); btnEnter.Init(); btnEnter.Parent = parent; btnEnter.Left = LeftPadding; btnEnter.Top = HeightCounter2; btnEnter.Width = (parent.Width - LeftPadding * 2) / 2; btnEnter.Text = "Enter"; btnEnter.Click += consolePressed; #endregion #region /// Clear /// Button btnClear = new Button(manager); btnClear.Init(); btnClear.Parent = parent; btnClear.Left = LeftPadding + btnEnter.Width; btnClear.Top = HeightCounter2; HeightCounter2 += VertPadding + btnClear.Height; btnClear.Width = (parent.Width - LeftPadding * 2) / 2; btnClear.Text = "Clear"; btnClear.Click += btnClear_Click; #endregion #endregion ConsolePanel.Collapse(); #region /// Presets /// parent = PresetsPanel.panel; PresetsPanel.ExpandedHeight = 175; HeightCounter4 = VertPadding4; lstPresets = new ListBox(manager); lstPresets.Init(); lstPresets.Parent = parent; lstPresets.Top = HeightCounter4; lstPresets.Left = LeftPadding; lstPresets.Width = parent.Width - LeftPadding * 2; lstPresets.Height = third.Height / 4; HeightCounter += VertPadding + lstPresets.Height; lstPresets.Anchor = Anchors.Top | Anchors.Left | Anchors.Bottom; lstPresets.HideSelection = false; lstPresets.ItemIndexChanged += lstPresets_ItemIndexChanged; // go to cmbPresets to find the preset synching reference. #region /// Presets ContextMenu /// presetContextMenu = new ContextMenu(manager); deletePresetMenuItem = new MenuItem("Delete Preset"); deletePresetMenuItem.Click += deletePresetMenuItem_Click; presetContextMenu.Items.Add(deletePresetMenuItem); presetContextMenu.Enabled = false; #endregion lstPresets.ContextMenu = presetContextMenu; CheckBoxes.ExpandedHeight = 150; HeightCounter4 = 0; cbUserLevel = new ComboBox(manager); cbUserLevel.Init(); cbUserLevel.Parent = CheckBoxes.panel; cbUserLevel.Top = HeightCounter4; cbUserLevel.Width = 150; HeightCounter4 += cbUserLevel.Height; foreach(string ul in Enum.GetNames(typeof(UserLevel))) { cbUserLevel.Items.Add(ul); } cbUserLevel.ItemIndexChanged += (s, e) => { userLevel = (UserLevel)cbUserLevel.ItemIndex; }; int count = 0; foreach(object s in cbUserLevel.Items) { if (s.ToString().Equals(userLevel.ToString())) { cbUserLevel.ItemIndex = count; } count++; } #endregion Dictionary<string, EventHandler> checkBoxHandlers = new Dictionary<string, EventHandler>(){ { "FullScreen", (o,e) => { if ((o as CheckBox).Checked) game.setResolution(resolutions.AutoFullScreen, true); else game.setResolution(resolutions.WSXGA_1680x1050, false); } }, { "Hide Links", (o,e) => { game.room.DrawLinks = !(o as CheckBox).Checked; } }, }; foreach (string key in checkBoxHandlers.Keys) { CreateCheckBox(key, checkBoxHandlers[key]); } tbcMain.SelectedPage = tbcMain.TabPages[0]; #endregion }
public void InitializeSecondPage() { stackview = new StackView(); TabPage second = tbcMain.TabPages[1]; second.Text = "Links"; backPanel = new Panel(manager); backPanel.Height = second.Height; backPanel.Width = second.Width; //backPanel.Width = second.Width + 20; backPanel.AutoScroll = true; backPanel.Init(); //backPanel.Color = master.BackColor; second.Add(backPanel); HeightCounter3 = 0; VertPadding3 = 0; SourceTarget = new CollapsePanel(manager, backPanel, "Source | Target"); stackview.AddPanel(SourceTarget); LinkPalette = new CollapsePanel(manager, backPanel, "Link Palette"); stackview.AddPanel(LinkPalette); //c3 = new CollapsePanel(manager, backPanel, "third", extended: false); stackview.AddPanel(c3); //c4 = new CollapsePanel(manager, backPanel, "fourth", extended: false); stackview.AddPanel(c4); //c5 = new CollapsePanel(manager, backPanel, "fifth", extended: false); stackview.AddPanel(c5); //c6 = new CollapsePanel(manager, backPanel, "sixth", extended: false); stackview.AddPanel(c6); //c7 = new CollapsePanel(manager, backPanel, "seventh", extended: false); stackview.AddPanel(c7); //c8 = new CollapsePanel(manager, backPanel, "eighth", extended: false); stackview.AddPanel(c8); backPanel.Color = UserInterface.TomDark; tbcMain.SelectedPage = tbcMain.TabPages[1]; #region /// Source | Target /// int left = backPanel.Left; int middle = backPanel.Left + backPanel.Width / 2 - 15; int right = backPanel.Width - 15; SourceTarget.ExpandedHeight += 60; #region /// Source Side /// lblSource = new Label(manager); lblSource.Init(); lblSource.Left = left; lblSource.Top = HeightCounter3; HeightCounter3 += lblSource.Height + VertPadding3; lblSource.Text = " Source"; lblSource.Parent = SourceTarget.panel; lblGroupS = new Label(manager); lblGroupS.Init(); lblGroupS.Left = left; lblGroupS.Top = HeightCounter3; HeightCounter3 += lblGroupS.Height + VertPadding3; lblGroupS.Text = "Group"; lblGroupS.Parent = SourceTarget.panel; cbGroupS = new ComboBox(manager); cbGroupS.Init(); cbGroupS.Left = left; cbGroupS.Top = HeightCounter3; HeightCounter3 += cbGroupS.Height + VertPadding3; cbGroupS.Width = middle; cbGroupS.Parent = SourceTarget.panel; cbGroupS.ItemIndexChanged += cbGroupS_ItemIndexChanged; cbGroupS.MaxItems = 100; lblNodeS = new Label(manager); lblNodeS.Init(); lblNodeS.Left = left; lblNodeS.Top = HeightCounter3; HeightCounter3 += lblNodeS.Height + VertPadding3; lblNodeS.Text = "Node"; lblNodeS.Parent = SourceTarget.panel; cbNodeS = new ComboBox(manager); cbNodeS.Init(); cbNodeS.Left = left; cbNodeS.Top = HeightCounter3; HeightCounter3 += cbNodeS.Height + VertPadding3; cbNodeS.Width = middle; cbNodeS.Parent = SourceTarget.panel; GroupBox radioBoxSource = new GroupBox(manager); radioBoxSource.Init(); radioBoxSource.Left = left; radioBoxSource.Top = HeightCounter3 - 7; radioBoxSource.Width = middle; radioBoxSource.Height = 75; radioBoxSource.Text = ""; radioBoxSource.Parent = SourceTarget.panel; HeightCounter3 = 5; rdGroupS = new RadioButton(manager); rdGroupS.Init(); rdGroupS.Left = left; rdGroupS.Top = HeightCounter3; HeightCounter3 += rdGroupS.Height + VertPadding3; rdGroupS.Width = middle; rdGroupS.Text = "Group"; rdGroupS.Parent = radioBoxSource; rdGroupS.Click += rdGroupS_Click; rdNodeS = new RadioButton(manager); rdNodeS.Init(); rdNodeS.Left = left; rdNodeS.Top = HeightCounter3; HeightCounter3 += rdNodeS.Height + VertPadding3; rdNodeS.Width = middle; rdNodeS.Text = "Node"; rdNodeS.Parent = radioBoxSource; rdNodeS.Click += rdNodeS_Click; chSelectionS = new CheckBox(manager); chSelectionS.Init(); chSelectionS.Left = left; chSelectionS.Top = HeightCounter3; HeightCounter3 += chSelectionS.Height + VertPadding3; chSelectionS.Width = middle; chSelectionS.Text = "Selection"; chSelectionS.Parent = radioBoxSource; chSelectionS.Click += chSelectionS_Click; #endregion #region /// Target Side /// HeightCounter3 = 0; lblTarget = new Label(manager); lblTarget.Init(); lblTarget.Left = middle; lblTarget.Top = HeightCounter3; HeightCounter3 += lblTarget.Height + VertPadding3; lblTarget.Text = "| Target"; lblTarget.Parent = SourceTarget.panel; lblGroupT = new Label(manager); lblGroupT.Init(); lblGroupT.Left = middle; lblGroupT.Top = HeightCounter3; HeightCounter3 += lblGroupT.Height + VertPadding3; lblGroupT.Text = "Group"; lblGroupT.Parent = SourceTarget.panel; cbGroupT = new ComboBox(manager); cbGroupT.Init(); cbGroupT.Left = middle; cbGroupT.Top = HeightCounter3; HeightCounter3 += cbGroupT.Height + VertPadding3; cbGroupT.Width = middle; cbGroupT.Parent = SourceTarget.panel; cbGroupT.ItemIndexChanged += cbGroupT_ItemIndexChanged; cbGroupT.MaxItems = 100; lblNodeT = new Label(manager); lblNodeT.Init(); lblNodeT.Left = middle; lblNodeT.Top = HeightCounter3; HeightCounter3 += lblNodeT.Height + VertPadding3; lblNodeT.Text = "Node"; lblNodeT.Parent = SourceTarget.panel; cbNodeT = new ComboBox(manager); cbNodeT.Init(); cbNodeT.Left = middle; cbNodeT.Top = HeightCounter3; HeightCounter3 += cbNodeT.Height + VertPadding3; cbNodeT.Width = middle; cbNodeT.Parent = SourceTarget.panel; GroupBox radioBoxTarget = new GroupBox(manager); radioBoxTarget.Init(); radioBoxTarget.Left = middle; radioBoxTarget.Top = HeightCounter3 - 7; radioBoxTarget.Width = middle; radioBoxTarget.Height = 75; radioBoxTarget.Text = ""; radioBoxTarget.Parent = SourceTarget.panel; HeightCounter3 = 5; rdGroupT = new RadioButton(manager); rdGroupT.Init(); rdGroupT.Left = left; rdGroupT.Top = HeightCounter3; HeightCounter3 += rdGroupT.Height + VertPadding3; rdGroupT.Width = middle; rdGroupT.Text = "Group"; rdGroupT.Parent = radioBoxTarget; rdGroupT.Click += rdGroupT_Click; rdNodeT = new RadioButton(manager); rdNodeT.Init(); rdNodeT.Left = left; rdNodeT.Top = HeightCounter3; HeightCounter3 += rdNodeT.Height + VertPadding3; rdNodeT.Width = middle; rdNodeT.Text = "Node"; rdNodeT.Parent = radioBoxTarget; rdNodeT.Click += rdNodeT_Click; chSelectionT = new CheckBox(manager); chSelectionT.Init(); chSelectionT.Left = left; chSelectionT.Top = HeightCounter3; HeightCounter3 += chSelectionT.Height + VertPadding3; chSelectionT.Width = middle; chSelectionT.Text = "Selection"; chSelectionT.Parent = radioBoxTarget; chSelectionT.Click += chSelectionT_Click; #endregion #endregion #region /// Link Palette /// LinkPalette.ExpandedHeight += 130; HeightCounter3 = 5; GroupPanel parent3 = LinkPalette.panel; cbLinkList = new ComboBox(manager); cbLinkList.Init(); cbLinkList.Top = HeightCounter3; HeightCounter3 += cbLinkList.Height; cbLinkList.Left = 0; cbLinkList.Width = 150; cbLinkList.Parent = parent3; cbLinkList.Items.AddRange(new List<object>() { "Palette Links", "Source's Links", "Target's Links", "All Active Links" }); cbLinkList.ItemIndexChanged += cbLinkList_ItemIndexChanged; btnCreateLink = new Button(manager); btnCreateLink.Init(); btnCreateLink.Top = HeightCounter3; //HeightCounter3 += btnCreateLink.Height; btnCreateLink.Left = 0; btnCreateLink.Width = (parent3.Width - 10) / 2; btnCreateLink.Text = "Create Link"; btnCreateLink.Parent = parent3; btnCreateLink.Click += btnCreateLink_Click; btnOpenGenerator = new Button(manager); btnOpenGenerator.Init(); btnOpenGenerator.Top = HeightCounter3; HeightCounter3 += btnOpenGenerator.Height; btnOpenGenerator.Left = btnCreateLink.Width; btnOpenGenerator.Width = btnCreateLink.Width; btnOpenGenerator.Text = "Generator"; btnOpenGenerator.Parent = parent3; btnOpenGenerator.Click += btnOpenGenerator_Click; insArea2 = new InspectorArea(this, parent3, 0, HeightCounter3); //insArea2.backPanel.AutoScroll = true; LinkPalette.ExpandedHeight = HeightCounter3 + insArea2.Height + 20; cbLinkList.ItemIndex = 0; rdGroupS.Checked = true; rdGroupT.Checked = true; rdGroupS_Click(null, null); rdGroupT_Click(null, null); #endregion backPanel.Refresh(); tbcMain.SelectedPage = tbcMain.TabPages[0]; }
public CreateGroupWindow(Sidebar sidebar) { this.sidebar = sidebar; this.manager = sidebar.manager; sidebar.CreatingGroup = true; //sidebar.ui.game.SwitchToTempRoom(); //temproom = sidebar.ui.game.tempRoom; //tempgroup = g;// sidebar.ActiveGroup;//temproom.groups.generalGroups.childGroups.ElementAt(0).Value; neoSidebar = new NeoSidebar(manager); neoSidebar.Init(); int tomtom = 5; neoSidebar.ClientArea.BackColor = UserInterface.TomDark; neoSidebar.BackColor = Color.Black; neoSidebar.BevelBorder = BevelBorder.All; Margins tomtomtomtom = new Margins(tomtom, tomtom, tomtom, tomtom); neoSidebar.ClientMargins = tomtomtomtom; neoSidebar.Left = sidebar.master.Left; neoSidebar.Width = sidebar.Width; neoSidebar.Top = 0; neoSidebar.Height = OrbIt.ScreenHeight; //poop.Text = "Create Group"; //poop.Closed += delegate { UserInterface.GameInputDisabled = false; sidebar.CreatingGroup = false; sidebar.ui.game.SwitchToMainRoom(); sidebar.groupsView.createGroupWindow = null; }; //window.ShowModal(); manager.Add(neoSidebar); int width = 120; int offset = neoSidebar.Width - width - 20; TitlePanel titlePanelCreateGroup = new TitlePanel(sidebar, neoSidebar, "Create Group", true); titlePanelCreateGroup.btnBack.Click += (s, e) => Close(); HeightCounter += titlePanelCreateGroup.Height; Label lblName = new Label(manager); lblName.Init(); lblName.Parent = neoSidebar; lblName.Left = LeftPadding; lblName.Top = HeightCounter; lblName.Width = width; lblName.Text = "Group Name:"; TextBox txtName = new TextBox(manager); txtName.Init(); txtName.Parent = neoSidebar; txtName.Top = HeightCounter; txtName.Width = width; txtName.Left = offset; HeightCounter += txtName.Height + LeftPadding; Button btnRandomName = new Button(manager); btnRandomName.Init(); btnRandomName.Parent = neoSidebar; btnRandomName.Top = HeightCounter; btnRandomName.Width = txtName.Width; btnRandomName.Left = offset; btnRandomName.Text = "Random Name"; HeightCounter += txtName.Height + LeftPadding; btnRandomName.Click += (s, e) => { txtName.Text = Utils.RandomName(); }; RadioButton rdEmpty = new RadioButton(manager); rdEmpty.Init(); rdEmpty.Parent = neoSidebar; rdEmpty.Top = HeightCounter; rdEmpty.Left = LeftPadding; rdEmpty.Text = "Default"; rdEmpty.Checked = true; HeightCounter += rdEmpty.Height + LeftPadding; RadioButton rdExisting = new RadioButton(manager); rdExisting.Init(); rdExisting.Parent = neoSidebar; rdExisting.Top = HeightCounter; rdExisting.Left = LeftPadding; rdExisting.Text = "Existing"; rdExisting.Checked = false; rdExisting.Width = width; ComboBox cbExisting = new ComboBox(manager); cbExisting.Init(); cbExisting.Parent = neoSidebar; cbExisting.Top = HeightCounter; cbExisting.Width = width; cbExisting.Left = offset; foreach(Group gg in sidebar.game.room.groups.general.childGroups.Values) { cbExisting.Items.Add(gg); } cbExisting.ItemIndex = 0; cbExisting.Enabled = false; HeightCounter += cbExisting.Height + LeftPadding; RadioButton rdTemplate = new RadioButton(manager); rdTemplate.Init(); rdTemplate.Parent = neoSidebar; rdTemplate.Top = HeightCounter; rdTemplate.Left = LeftPadding; rdTemplate.Text = "Template"; rdTemplate.Checked = false; rdTemplate.Width = width; ComboBox cbTemplate = new ComboBox(manager); cbTemplate.Init(); cbTemplate.Parent = neoSidebar; cbTemplate.Top = HeightCounter; cbTemplate.Width = width; cbTemplate.Left = offset; foreach (Node n in Assets.NodePresets) { cbTemplate.Items.Add(n); } if (Assets.NodePresets.Count > 0) cbTemplate.ItemIndex = 0; cbTemplate.Enabled = false; HeightCounter += cbTemplate.Height + LeftPadding; componentView = new ComponentView(sidebar, neoSidebar, 0, HeightCounter, ViewType.Group); componentView.Height = 150; componentView.Width = neoSidebar.Width - LeftPadding * 4; neoSidebar.Width += 100; neoSidebar.Width -= 100; tempgroup = new Group(sidebar.room, sidebar.room.defaultNode.CreateClone(sidebar.room), null, "tempgroup", false); SetGroup(sidebar.room.defaultNode); rdEmpty.Click += (s, e) => { cbExisting.Enabled = false; cbTemplate.Enabled = false; SetGroup(sidebar.room.defaultNode); }; rdExisting.Click += (s, e) => { cbExisting.Enabled = true; cbTemplate.Enabled = false; ComboUpdate(cbExisting); }; cbExisting.ItemIndexChanged += (s, e) => { ComboUpdate(cbExisting); }; rdTemplate.Click += (s, e) => { cbExisting.Enabled = false; cbTemplate.Enabled = true; ComboUpdate(cbTemplate); }; cbTemplate.ItemIndexChanged += (s, e) => { ComboUpdate(cbTemplate); }; btnCreateGroup = new Button(manager); btnCreateGroup.Init(); btnCreateGroup.Parent = neoSidebar; btnCreateGroup.Top = componentView.bottomArea.Top + componentView.bottomArea.Height + LeftPadding * 2; btnCreateGroup.Text = "Create Group"; btnCreateGroup.Width = width; btnCreateGroup.Left = neoSidebar.Width / 2 - btnCreateGroup.Width / 2; btnCreateGroup.Click += (s, e) => { if (String.IsNullOrWhiteSpace(txtName.Text)) PopUp.Toast("Please enter a group name."); else if(sidebar.game.room.groups.general.childGroups.Keys.Contains(txtName.Text)) PopUp.Toast("Group already exists."); else{ OrbIt.game.room = sidebar.game.room; Node newNode = tempgroup.defaultNode.CreateClone(sidebar.game.room); newNode.body.color = ColorChanger.randomColorHue(); newNode.basicdraw.UpdateColor(); Group newGroup = new Group(sidebar.game.room, newNode, sidebar.game.room.groups.general, txtName.Text.Trim()); newNode.name = txtName.Text.Trim(); newNode.group = newGroup; sidebar.groupsView.UpdateGroups(); foreach(DetailedItem item in sidebar.groupsView.viewItems) { if (item.obj == newGroup) { sidebar.groupsView.SelectItem(item); break; } } Close(); } }; }
public void ComboUpdate(ComboBox cb) { if (cb.ItemIndex >= 0 && !cb.Text.Equals("")) { object o = cb.Items.ElementAt(cb.ItemIndex); if (o is Group) { SetGroup((o as Group).defaultNode); } else if (o is Node) { SetGroup((Node)o); } } }
private void InitializeControls() { _manager.Initialize(); _manager.AutoCreateRenderTarget = true; _tabControl = new TabControl(_manager); _tabControl.Init(); _tabControl.Left = 600; _tabControl.Top = 0; _tabControl.Width = Width; _tabControl.Height = Height; _tabControl.Show(); #region WavePage _wavePage = _tabControl.AddPage(); _wavePage.Text = "Waves"; #region Constructors _health = new Label(_manager); _health.Init(); _texture = new Label(_manager); _texture.Init(); _speed = new Label(_manager); _speed.Init(); _number = new Label(_manager); _number.Init(); _waves = new ListBox(_manager); _waves.Init(); _deleteWaveButton = new Button(_manager); _deleteWaveButton.Init(); _addWaveButton = new Button(_manager); _addWaveButton.Init(); _currentWave = new ListBox(_manager); _currentWave.Init(); _addCreepsButton = new Button(_manager); _addCreepsButton.Init(); _numberOfCreeps = new TextBox(_manager); _numberOfCreeps.Init(); _speedOfCreeps = new TextBox(_manager); _speedOfCreeps.Init(); _healthOfCreeps = new TextBox(_manager); _healthOfCreeps.Init(); _creepTexture = new ComboBox(_manager); _creepTexture.Init(); #endregion #region Properties _texture.Text = "Textur"; _texture.Top = 2; _texture.Left = 2; _texture.Parent = _wavePage; _wavePage.Add(_texture); _creepTexture.Items.AddRange(new[] { "Slyder", "Drone", "Ape", "Paw" }); _creepTexture.Text = "Slyder"; _creepTexture.Width = 80; _creepTexture.Left = 2; _creepTexture.Top = _texture.Top + _texture.Height + 2; _creepTexture.TextColor = Color.LightGray; _creepTexture.Parent = _wavePage; _health.Text = "Gesundheit"; _health.Top = 2; _health.Left = _creepTexture.Left + _creepTexture.Width + 5; _health.Parent = _wavePage; _healthOfCreeps.Left = _health.Left; _healthOfCreeps.Top = _health.Top + _health.Height + 2; _healthOfCreeps.Width = _health.Width; _healthOfCreeps.TextColor = Color.LightGray; _healthOfCreeps.Parent = _wavePage; _speed.Text = "Geschwindigkeit"; _speed.Left = _health.Left + _health.Width + 5; _speed.Top = 2; _speed.Width = 93; _speed.Parent = _wavePage; _speedOfCreeps.Left = _speed.Left; _speedOfCreeps.Top = _speed.Top + _speed.Height + 2; _speedOfCreeps.Width = _speed.Width; _speedOfCreeps.TextColor = Color.LightGray; _speedOfCreeps.Parent = _wavePage; _number.Text = "Anzahl"; _number.Top = 2; _number.Left = _speed.Left + _speed.Width + 5; _number.Width = 40; _number.Parent = _wavePage; _numberOfCreeps.Left = _number.Left; _numberOfCreeps.Top = _number.Top + _number.Height + 2; _numberOfCreeps.Width = _number.Width; _numberOfCreeps.TextColor = Color.LightGray; _numberOfCreeps.Parent = _wavePage; _addCreepsButton.Text = "Creeps hinzufügen"; _addCreepsButton.Top = _numberOfCreeps.Top + _numberOfCreeps.Height - _addCreepsButton.Height; _addCreepsButton.Left = _numberOfCreeps.Left + _numberOfCreeps.Width + 5; _addCreepsButton.Width = 120; _addCreepsButton.Parent = _wavePage; _currentWave.Left = 2; _currentWave.Top = _creepTexture.Top + _creepTexture.Height + 5; _currentWave.Width = _addCreepsButton.Left + _addCreepsButton.Width; _currentWave.Height = 150; _currentWave.TextColor = Color.LightGray; _currentWave.Parent = _wavePage; _addWaveButton.Text = "Wave hinzufügen"; _addWaveButton.Left = 2; _addWaveButton.Top = _currentWave.Top + _currentWave.Height + 5; _addWaveButton.Width = 150; _addWaveButton.Parent = _wavePage; _deleteWaveButton.Text = "Wave löschen"; _deleteWaveButton.Left = _addWaveButton.Left + _addWaveButton.Width + 5; _deleteWaveButton.Top = _currentWave.Top + _currentWave.Height + 5; _deleteWaveButton.Width = _addWaveButton.Width; _deleteWaveButton.Parent = _wavePage; _waves.Left = 2; _waves.Top = _addWaveButton.Top + _addWaveButton.Height + 5; _waves.Width = _currentWave.Width; _waves.Height = 150; _waves.TextColor = Color.LightGray; _waves.Parent = _wavePage; _waves.ItemIndexChanged += _waves_ItemIndexChanged; #endregion #region Events _addCreepsButton.Click += AddCreepsButton_Click; _addWaveButton.Click += AddWaveButton_Click; _deleteWaveButton.Click += DeleteWaveButton_Click; #endregion #endregion #region SavePage _savePage = _tabControl.AddPage(); _savePage.Text = "Speichern & Laden"; _path = new TextBox(_manager); _path.Init(); _path.Top = 2; _path.Left = 2; _path.Width = 200; _path.Parent = _savePage; _path.ReadOnly = true; _fileNameButton = new Button(_manager); _fileNameButton.Init(); _fileNameButton.Text = "..."; _fileNameButton.Width = 17; _fileNameButton.Height = _fileNameButton.Width; _fileNameButton.Top = _path.Top + _path.Height / 2 - _fileNameButton.Height / 2; _fileNameButton.Left = _path.Left + _path.Width + 2; _fileNameButton.Parent = _savePage; _fileNameButton.Click += delegate { var dlg = new SaveFileDialog { Filter = "Level-Dateien|*.xml", InitialDirectory = Path.GetFullPath( Path.GetDirectoryName( Assembly.GetExecutingAssembly().Location) + @"\..\Content\Map") }; dlg.ShowDialog(); _path.Text = dlg.FileName; }; _saveButton = new Button(_manager); _saveButton.Init(); _saveButton.Top = _path.Top + _path.Height + 2; _saveButton.Left = 2; _saveButton.Text = "Speichern"; _saveButton.Width = 120; _saveButton.Parent = _savePage; _saveButton.Click += delegate { if (_path.Text.Length > 0) { string fileName = _path.Text; Save(fileName); } }; LoadButton = new Button(_manager); LoadButton.Init(); LoadButton.Left = 2; LoadButton.Top = 50; LoadButton.Text = "Laden"; LoadButton.Width = 120; LoadButton.Parent = _savePage; LoadButton.Click += LoadButton_Click; #endregion _manager.Add(_tabControl); }
public override void Initialize() { #region Initialize Window //Create Window m_Window = new Window(Global.GUIManager); m_Window.Init(); m_Window.CloseButtonVisible = false; m_Window.Movable = false; m_Window.StayOnBack = true; m_Window.Resizable = false; m_Window.Text = "Inititalize Editor"; m_Window.Top = Global.INITEDITORWINDOW_TOP; m_Window.Left = Global.INITEDITORWINDOW_LEFT; m_Window.Width = Global.INITEDITORWINDOW_WIDTH; m_Window.Height = Global.INITEDITORWINDOW_HEIGHT; m_Panel.Add(m_Window); Global.GUIManager.Add(m_Window); #endregion #region Initialize combo box for board height and width m_ComboBoxs = new ComboBox[2]; for (int i = 0; i < m_ComboBoxs.Length; i++) { m_ComboBoxs[i] = new ComboBox(Global.GUIManager); m_ComboBoxs[i].Top = Global.INITCOMBO_TOP + (i * Global.INITCOMBO_SPACE); m_ComboBoxs[i].Left = Global.INITCOMBO_LEFT; m_ComboBoxs[i].Width = Global.INITCOMBO_WIDTH; m_ComboBoxs[i].Items.Add(4); m_ComboBoxs[i].Items.Add(5); m_ComboBoxs[i].Items.Add(6); m_ComboBoxs[i].Items.Add(7); m_ComboBoxs[i].Items.Add(8); m_ComboBoxs[i].Items.Add(9); m_ComboBoxs[i].ReadOnly = true; m_ComboBoxs[i].Init(); //Add the buttons m_Panel.Add(m_ComboBoxs[i]); Global.GUIManager.Add(m_ComboBoxs[i]); } #endregion #region Initialize Buttons m_Buttons = new Button[Global.INITEDITOR_MENU.Length]; for (int i = 0; i < m_Buttons.Length; i++) { //Create buttons m_Buttons[i] = new Button(Global.GUIManager); m_Buttons[i].Text = Global.INITEDITOR_MENU[i]; m_Buttons[i].Top = Global.INITEDITOR_TOP; m_Buttons[i].Left = Global.INITEDITOR_LEFT + (i * (Global.INITEDITOR_WIDTH + Global.INITEDITOR_SPACE)); m_Buttons[i].Width = Global.INITEDITOR_WIDTH; m_Buttons[i].Init(); //Add the buttons m_Panel.Add(m_Buttons[i]); Global.GUIManager.Add(m_Buttons[i]); //Set event handler m_Buttons[i].Click += InitChoose; } #endregion //Create label m_Label = new Label(Global.GUIManager); m_Label.Init(); m_Label.Text = Global.INITEDITORLABEL_TEXT; m_Label.Top = Global.INITEDITORLABEL_TOP; m_Label.Left = Global.INITEDITORLABEL_LEFT; m_Label.Width = Global.INITEDITORLABEL_WIDTH; m_Label.Height = Global.INITEDITORLABEL_HEIGHT; //Add Label m_Panel.Add(m_Label); Global.GUIManager.Add(m_Label); }
public void UpdatePanel(InspectorInfo inspectorItem) { //if (activeInspectorItem == inspectorItem) return; if (inspectorItem.membertype == member_type.previouslevel) return; if (panelControls.Keys.Count > 0) DisableControls(); grouppanel.Visible = true; grouppanel.Refresh(); activeInspectorItem = inspectorItem; //grouppanel.Text = activeInspectorItem.ToString(); //.Name(); grouppanel.Text = activeInspectorItem.Name(); if (!activeInspectorItem.HasPanelElements()) return; editType = activeInspectorItem.obj.GetType(); object value = activeInspectorItem.GetValue(); if (value == null) return; if (editType == typeof(int) || editType == typeof(Single) || editType == typeof(string) || editType == typeof(byte)) { //System.Console.WriteLine("It's an int or float."); TextBox txtbox = new TextBox(grouppanel.Manager); txtbox.Init(); txtbox.Parent = grouppanel; txtbox.Left = LeftPadding; txtbox.Top = 10; txtbox.Width = 80; txtbox.Height = txtbox.Height + 3; txtbox.KeyUp += delegate (object sender, KeyEventArgs e) { if (!txtbox.Text.Equals("") && e.Key == Microsoft.Xna.Framework.Input.Keys.Enter) { btnModify_Click(sender, e); } }; //txtbox.BackColor = Color.Green; //txtbox.DrawBorders = true; //txtbox.Text = activeInspectorItem.obj.ToString(); txtbox.Text = value.ToString(); Button btnModify = new Button(grouppanel.Manager); btnModify.Init(); btnModify.Parent = grouppanel; btnModify.Left = LeftPadding * 2 + txtbox.Width; btnModify.Top = 10; btnModify.Width = 80; btnModify.Text = "Modify"; btnModify.Click += btnModify_Click; panelControls.Add("txtbox", txtbox); panelControls.Add("btnModify", btnModify); if (editType == typeof(int) || editType == typeof(Single) || editType == typeof(byte)) { Slider trkMain = new Slider(grouppanel.Manager); trkMain.Init(); trkMain.Parent = grouppanel; trkMain.Left = LeftPadding; trkMain.Top = 20 + btnModify.Height; trkMain.Width = txtbox.Width + btnModify.Width + LeftPadding; trkMain.Anchor = Anchors.Left | Anchors.Top | Anchors.Right; int val = Convert.ToInt32(value); //int range = Math.Max(100, val * 2); trkMain.Range = Math.Max(100, val * 2); trkMain.Value = val; //trkMain. trkMain.ValueChanged += new TomShane.Neoforce.Controls.EventHandler(trkMain_ValueChanged); trkMain.Click += delegate(object sender, TomShane.Neoforce.Controls.EventArgs e) { MouseEventArgs me = (MouseEventArgs)e; if (me.Button != MouseButton.Right) return; int relpos = me.Position.X - 810; //MAGIC NUMBER HACK OMG int sliderpos = (int)(((float)trkMain.Value / (float)trkMain.Range) * trkMain.Width); if (relpos < sliderpos) trkMain.Range = trkMain.Range / 2; else trkMain.Range = trkMain.Range * 2; }; //trkMain. trkMain.btnSlider.MouseUp += trkMain_MouseUp; //trkMain.btnSlider.MouseUp += new TomShane.Neoforce.Controls.MouseEventHandler(trkMain_MouseUp); panelControls.Add("trkMain", trkMain); } } else if (editType == typeof(bool)) { //System.Console.WriteLine("It's a boolean."); CheckBox chkbox = new CheckBox(grouppanel.Manager); chkbox.Init(); chkbox.Parent = grouppanel; chkbox.Left = LeftPadding; chkbox.Top = 10; chkbox.Width = 120; chkbox.Checked = (bool)value; chkbox.Text = activeInspectorItem.Name() + " (" + value + ")"; chkbox.CheckedChanged += new TomShane.Neoforce.Controls.EventHandler(chkbox_CheckedChanged); panelControls.Add("chkbox", chkbox); } else if (editType.IsSubclassOf(typeof(Enum))) { //System.Console.WriteLine("ENUM!"); ComboBox cb = new ComboBox(grouppanel.Manager); cb.Init(); cb.Parent = grouppanel; cb.MaxItems = 20; cb.Left = LeftPadding; cb.Top = 10; cb.Width = 120; foreach (string enumname in Enum.GetNames(editType)) { cb.Items.Add(enumname); } cb.ItemIndex = (int)value; cb.ItemIndexChanged += cb_ItemIndexChanged; panelControls.Add("cb", cb); } grouppanel.Refresh(); }
public void Initialize() { manager.Initialize(); #region /// Master /// master = new SideBar(manager); master.Init(); master.Name = "Sidebar"; master.Width = Width; master.Height = OrbIt.game.MainWindow.ClientArea.Height; master.Visible = true; master.Anchor = Anchors.Top | Anchors.Left | Anchors.Bottom; ui.game.MainWindow.Add(master); #endregion #region /// tabcontrol /// tbcMain = new TabControl(manager); tbcMain.Init(); //tbcMain.BackColor = Color.Transparent; //tbcMain.Color = Color.Transparent; tbcMain.Parent = master; tbcMain.Left = 0; tbcMain.Top = 0; tbcMain.Width = master.Width - 5; tbcMain.Height = master.Height - 40; tbcMain.Anchor = Anchors.All; activeTabControl = tbcMain; #endregion #region /// Page1 /// tbcMain.AddPage(); tbcMain.TabPages[0].Text = "First"; TabPage first = tbcMain.TabPages[0]; tbcMain.SelectedIndex = 0; #region /// Title /// title1 = new Label(manager); title1.Init(); title1.Parent = first; title1.Top = HeightCounter; title1.Text = "Node List"; title1.Width = 130; title1.Left = first.Width / 2 - title1.Width / 2; //TODO : Center auto HeightCounter += VertPadding + title1.Height; title1.Anchor = Anchors.Left; #endregion #region /// List Main /// lstMain = new ListBox(manager); lstMain.Init(); lstMain.Parent = first; lstMain.Top = HeightCounter; lstMain.Left = LeftPadding; lstMain.Width = first.Width - LeftPadding * 2; lstMain.Height = first.Height / 5; HeightCounter += VertPadding + lstMain.Height; lstMain.Anchor = Anchors.Top | Anchors.Left | Anchors.Bottom; lstMain.HideSelection = false; lstMain.ItemIndexChanged += lstMain_ItemIndexChanged; lstMain.Click += lstMain_Click; lstMain.Refresh(); //room.nodes.CollectionChanged += nodes_Sync; mainNodeContextMenu = new ContextMenu(manager); ConvertIntoList = new MenuItem("Make Default of new Group."); ConvertIntoList.Click += ConvertIntoList_Click; PromoteToDefault = new MenuItem("Make Default of current Group"); PromoteToDefault.Click += PromoteToDefault_Click; mainNodeContextMenu.Items.Add(ConvertIntoList); lstMain.ContextMenu = mainNodeContextMenu; ui.SetScrollableControl(lstMain, lstMain_ChangeScrollPosition); #endregion #region /// List Picker /// cbListPicker = new ComboBox(manager); cbListPicker.Init(); cbListPicker.Parent = first; cbListPicker.MaxItems = 20; cbListPicker.Width = first.Width - LeftPadding * 6; cbListPicker.Left = LeftPadding; cbListPicker.Top = HeightCounter; cbListPicker.Items.Add("Other Objects"); cbListPicker.ItemIndex = 0; //cbListPicker. cbListPicker.Click += cbListPicker_Click; cbListPicker.ItemIndexChanged += cbListPicker_ItemIndexChanged; #endregion #region /// Delete Group Button /// btnDeleteGroup = new Button(manager); btnDeleteGroup.Init(); btnDeleteGroup.Parent = first; btnDeleteGroup.Left = LeftPadding + cbListPicker.Width + 5; btnDeleteGroup.Width = 15; btnDeleteGroup.Height = cbListPicker.Height; btnDeleteGroup.Top = HeightCounter; HeightCounter += VertPadding + cbListPicker.Height; btnDeleteGroup.Text = "X"; btnDeleteGroup.Click += btnDeleteGroup_Click; #endregion #region /// Remove Node Button /// btnRemoveNode = new Button(manager); btnRemoveNode.Init(); btnRemoveNode.Parent = first; btnRemoveNode.Top = HeightCounter; btnRemoveNode.Width = first.Width / 2 - LeftPadding; btnRemoveNode.Height = 24; btnRemoveNode.Left = LeftPadding; btnRemoveNode.Text = "Remove Node"; btnRemoveNode.Click += btnRemoveNode_Click; #endregion #region /// Remove All Nodes Button /// btnRemoveAllNodes = new Button(manager); btnRemoveAllNodes.Init(); btnRemoveAllNodes.Parent = first; btnRemoveAllNodes.Top = HeightCounter; //btnRemoveAllNodes.Width = first.Width / 2 - LeftPadding; btnRemoveAllNodes.Width = first.Width / 2 - LeftPadding; btnRemoveAllNodes.Height = 24; HeightCounter += VertPadding + btnRemoveAllNodes.Height; btnRemoveAllNodes.Left = LeftPadding + btnRemoveNode.Width; btnRemoveAllNodes.Text = "Remove All"; btnRemoveAllNodes.Click += btnRemoveAllNodes_Click; #endregion #region /// Add Componenet /// btnAddComponent = new Button(manager); btnAddComponent.Init(); btnAddComponent.Parent = first; btnAddComponent.Top = HeightCounter; btnAddComponent.Width = first.Width / 2 - LeftPadding; btnAddComponent.Height = 20; btnAddComponent.Left = LeftPadding; btnAddComponent.Text = "Add Component"; btnAddComponent.Click += btnAddComponent_Click; #endregion #region /// Default Node /// btnDefaultNode = new Button(manager); btnDefaultNode.Init(); btnDefaultNode.Parent = first; btnDefaultNode.Top = HeightCounter; btnDefaultNode.Width = first.Width / 2 - LeftPadding; btnDefaultNode.Height = 20; HeightCounter += VertPadding + btnDefaultNode.Height; btnDefaultNode.Left = LeftPadding + btnRemoveNode.Width; btnDefaultNode.Text = "Default Node"; btnDefaultNode.Click += btnDefaultNode_Click; #endregion #region /// Presets Dropdown /// cbPresets = new ComboBox(manager); cbPresets.Init(); cbPresets.Parent = first; cbPresets.MaxItems = 20; cbPresets.Width = 160; cbPresets.Left = LeftPadding; cbPresets.Top = HeightCounter; HeightCounter += cbPresets.Height; Assets.NodePresets.CollectionChanged += NodePresets_Sync; cbPresets.ItemIndexChanged += cbPresets_ItemIndexChanged; cbPresets.Click += cmbPresets_Click; #endregion inspectorArea = new InspectorArea(this, first, LeftPadding, HeightCounter); HeightCounter += inspectorArea.Height; #region /// Apply to Group /// btnApplyToAll = new Button(manager); btnApplyToAll.Init(); btnApplyToAll.Parent = first; btnApplyToAll.Text = "Apply To Group"; btnApplyToAll.Top = HeightCounter; btnApplyToAll.Width = first.Width / 2 - LeftPadding; btnApplyToAll.Height = 20; //HeightCounter += VertPadding + btnApplyToAll.Height; btnApplyToAll.Left = LeftPadding; btnApplyToAll.Click += applyToAllNodesMenuItem_Click; #endregion #region /// Save as Preset /// btnSaveNode = new Button(manager); btnSaveNode.Init(); btnSaveNode.Text = "Save Node"; btnSaveNode.Top = HeightCounter; btnSaveNode.Width = first.Width / 2 - LeftPadding; btnSaveNode.Height = 20; HeightCounter += VertPadding + btnSaveNode.Height; btnSaveNode.Left = LeftPadding + btnApplyToAll.Width; btnSaveNode.Parent = first; btnSaveNode.Click += btnSaveNode_Click; #endregion #endregion #region /// Page 2 /// tbcMain.AddPage(); tbcMain.TabPages[1].Text = "Second"; TabPage second = tbcMain.TabPages[1]; HeightCounter = 0; #endregion inspectorArea.ResetInspectorBox(ActiveDefaultNode); InitializeSecondPage(); InitializeThirdPage(); }
public LinkGeneratorWindow(Manager manager, Sidebar sidebar) { OrbIt game = OrbIt.game; UserInterface.GameInputDisabled = true; this.manager = manager; this.sidebar = sidebar; window = new Window(manager); window.Init(); window.Left = OrbIt.ui.sidebar.master.Left; window.Width = OrbIt.ui.sidebar.master.Width; window.Top = 200; window.Height = 200; window.Text = "Link Generator"; window.Closed += delegate { UserInterface.GameInputDisabled = false; }; window.ShowModal(); manager.Add(window); //LinkGenerator.ExpandedHeight += 30; HeightCounter3 = 0; int left = 0; int middle = 100; lblGenerateLink = new Label(manager); lblGenerateLink.Init(); lblGenerateLink.Left = left + middle / 2; lblGenerateLink.Top = HeightCounter3; HeightCounter3 += lblGenerateLink.Height; lblGenerateLink.Text = "Generate Link"; lblGenerateLink.Width += 40; lblGenerateLink.Parent = window; lblLinkType = new Label(manager); lblLinkType.Init(); lblLinkType.Left = left; lblLinkType.Text = "Link Type"; lblLinkType.Parent = window; lblLinkType.Top = HeightCounter3; HeightCounter3 += lblLinkType.Height; cbLinkType = new ComboBox(manager); cbLinkType.Init(); cbLinkType.Left = left; cbLinkType.Width += 100; cbLinkType.Parent = window; cbLinkType.MaxItems = 15; cbLinkType.Top = HeightCounter3; HeightCounter3 += cbLinkType.Height; //cbLinkType.Items.AddRange(new List<object>() { }); Link.GetILinkableEnumVals(cbLinkType.Items); /* foreach (comp key in Enum.GetValues(typeof(comp))) { Type compType = Game1.compTypes[key]; if (!typeof(ILinkable).IsAssignableFrom(compType)) continue; cbLinkType.Items.Add(key); /* MethodInfo mInfo = compType.GetMethod("AffectOther"); if (mInfo != null && mInfo.DeclaringType == compType) { cbLinkType.Items.Add(key); } // } */ lblLinkFormation = new Label(manager); lblLinkFormation.Init(); lblLinkFormation.Left = left; lblLinkFormation.Text = "Formation"; lblLinkFormation.Parent = window; lblLinkFormation.Top = HeightCounter3; HeightCounter3 += lblLinkFormation.Height; cbLinkFormation = new ComboBox(manager); cbLinkFormation.Init(); cbLinkFormation.Left = left; cbLinkFormation.Width += 20; cbLinkFormation.Parent = window; cbLinkFormation.Top = HeightCounter3; HeightCounter3 += cbLinkFormation.Height; foreach (formationtype f in Enum.GetValues(typeof(formationtype))) { cbLinkFormation.Items.Add(f); } cbLinkFormation.ItemIndex = 0; chkEntangled = new CheckBox(manager); chkEntangled.Init(); chkEntangled.Left = left; chkEntangled.Width += 20; chkEntangled.Text = "Entangled"; chkEntangled.Parent = window; chkEntangled.Top = HeightCounter3; HeightCounter3 += chkEntangled.Height; HeightCounter3 = lblGenerateLink.Height; lblLinkPresets = new Label(manager); lblLinkPresets.Init(); lblLinkPresets.Left = left + middle; lblLinkPresets.Text = "Preset"; lblLinkPresets.Parent = window; lblLinkPresets.Top = lblLinkFormation.Top; cbLinkPresets = new ComboBox(manager); cbLinkPresets.Init(); cbLinkPresets.Left = left + middle; //cbLinkPresets.Width += 20; cbLinkPresets.Parent = window; cbLinkPresets.Top = cbLinkFormation.Top; cbLinkPresets.Items.Add("Default"); cbLinkPresets.ItemIndex = 0; btnAddToPalette = new Button(manager); btnAddToPalette.Init(); btnAddToPalette.Left = left + middle; btnAddToPalette.Width = middle - 20; btnAddToPalette.Text = "Add to\nPalette"; btnAddToPalette.Height = btnAddToPalette.Height * 2 - 10; btnAddToPalette.Parent = window; btnAddToPalette.Top = chkEntangled.Top + chkEntangled.Height; btnAddToPalette.Click += btnAddToPalette_Click; }
public OptionsWindow(Sidebar sidebar) { UserInterface.GameInputDisabled = true; this.manager = sidebar.manager; this.sidebar = sidebar; window = new Window(manager); window.Init(); window.Left = sidebar.master.Left; window.Width = sidebar.master.Width; window.Top = 200; window.Height = 200; window.Width = 240; window.Text = "Options"; window.Resizable = false; window.Movable = false; window.Closed += delegate { UserInterface.GameInputDisabled = false; }; window.ShowModal(); manager.Add(window); btnOk = new Button(manager); btnOk.Init(); btnOk.Parent = window; btnOk.Left = LeftPadding; btnOk.Top = window.Height - (btnOk.Height * 3); btnOk.Text = "Ok";// +"\u2713"; btnOk.Click += (s, e) => window.Close(); //btnLoadLevel = new Button(manager); //btnLoadLevel.Init(); //window.Add(btnLoadLevel); //btnLoadLevel.Width += 30; //btnLoadLevel.Left = window.Width - btnLoadLevel.Width - LeftPadding * 5; //btnLoadLevel.Text = "Load Level"; //btnLoadLevel.Top = window.Height - (btnLoadLevel.Height * 3); //btnLoadLevel.Click += btnLoadLevel_Click; // //btnSaveLevel = new Button(manager); //btnSaveLevel.Init(); //window.Add(btnSaveLevel); //btnSaveLevel.Width += 30; //btnSaveLevel.Left = window.Width - btnSaveLevel.Width - LeftPadding * 5; //btnSaveLevel.Text = "Save Level"; //btnSaveLevel.Top = btnLoadLevel.Top - btnSaveLevel.Height - LeftPadding; //btnSaveLevel.Click += btnSaveLevel_Click; lblUserLevel = new Label(manager); lblUserLevel.Init(); lblUserLevel.Parent = window; lblUserLevel.Left = LeftPadding; lblUserLevel.Top = HeightCounter; lblUserLevel.Text = "User Level"; lblUserLevel.Width += 10; cbUserLevel = new ComboBox(manager); cbUserLevel.Init(); cbUserLevel.Parent = window; cbUserLevel.Top = HeightCounter; cbUserLevel.Left = lblUserLevel.Width; cbUserLevel.Width = 150; HeightCounter += cbUserLevel.Height; cbUserLevel.TextColor = Color.Black; foreach(string ul in Enum.GetNames(typeof(UserLevel))) { cbUserLevel.Items.Add(ul); } cbUserLevel.ItemIndexChanged += (s, e) => { sidebar.userLevel = (UserLevel)cbUserLevel.ItemIndex; }; int count = 0; foreach(object s in cbUserLevel.Items) { if (s.ToString().Equals(sidebar.userLevel.ToString())) { cbUserLevel.ItemIndex = count; } count++; } Label lblRes = new Label(manager); lblRes.Init(); lblRes.Parent = window; lblRes.Left = LeftPadding; lblRes.Top = HeightCounter; lblRes.Text = "Resolution"; lblRes.Width += 10; ComboBox cbResolutions = new ComboBox(manager); cbResolutions.Init(); cbResolutions.Parent = window; cbResolutions.Top = HeightCounter; cbResolutions.Left = lblUserLevel.Width; cbResolutions.Width = 150; HeightCounter += cbResolutions.Height; cbUserLevel.TextColor = Color.Black; foreach (resolutions r in Enum.GetValues(typeof(resolutions))) { cbResolutions.Items.Add(r); } cbResolutions.ItemIndexChanged += (s, e) => { OrbIt.game.setResolution((resolutions)cbResolutions.ItemIndex, OrbIt.game.Graphics.IsFullScreen); if (OrbIt.game.Graphics.IsFullScreen) OrbIt.game.prefFullScreenResolution = (resolutions)cbResolutions.ItemIndex; else OrbIt.game.prefWindowedResolution = (resolutions)cbResolutions.ItemIndex; }; CreateCheckBox("FullScreen", OrbIt.isFullScreen, (o, e) => { if ((o as CheckBox).Checked) OrbIt.game.setResolution(resolutions.AutoFullScreen, true); else OrbIt.game.setResolution(resolutions.WXGA_1280x800, false); }); CreateCheckBox("Hide Links", sidebar.ui.game.room.DrawLinks, (o, e) => sidebar.ui.game.room.DrawLinks = !(o as CheckBox).Checked); CreateCheckBox("Edit Selected Node", false, (o, e) => Utils.notImplementedException() ); //CreateCheckBox("Edit Selected Node", sidebar.EditSelectedNode, (o, e) => sidebar.EditSelectedNode = (o as CheckBox).Checked); }
public static void makePopup(UserInterface ui, opt[] options, String title = "Hey! Listen!", ConfirmDelegate action = null) { Manager manager = ui.game.Manager; bool confirmed = false; object[] answer = new object[options.Length]; bool[] answered = new bool[options.Length]; ConfirmDelegate emptyDelegate = delegate{ return true;}; action = action ?? emptyDelegate; Dialog window = new Dialog(manager); window.Text = title; window.Init(); window.ShowModal(); window.Caption.Text = ""; window.Description.Text = ""; window.Width = 200; window.Height = 200; window.SetPosition(20, OrbIt.ScreenHeight / 4); int heightCounter = window.Caption.Top; int i = 0; Button btnOk = new Button(manager); btnOk.Top = window.Description.Top + window.Description.Height; btnOk.Anchor = Anchors.Top; btnOk.Parent = window; btnOk.Text = "Ok"; btnOk.Left = btnOk.Left = window.Width / 2 - btnOk.Width / 2; btnOk.Init(); foreach (opt opt in options) { if (opt.type.In(OptType.info,OptType.prompt)) { Label info = new Label(manager); info.Init(); info.Parent = window; info.Left = VertPadding; info.Width = window.Width - VertPadding * 5; string message = ((string)opt.content).wordWrap(MAX_CHARS_PER_LINE); info.Text = message; info.Height = (info.Text.Count(x => x == '\n')+1) * info.Height; info.Top = heightCounter; heightCounter += info.Height + VertPadding; } if (opt.type == OptType.dropDown) { ComboBox cbBox = new ComboBox(manager); cbBox.Init(); cbBox.Parent = window; cbBox.MaxItems = 20; // TODO : ERROR? cbBox.Width = window.Width - VertPadding * 5; cbBox.Left = VertPadding; cbBox.Top = heightCounter; heightCounter += cbBox.Height + VertPadding; ObservableCollection<object> q = (ObservableCollection<object>)opt.content; foreach (object o in q) cbBox.Items.Add(o); q.CollectionChanged += delegate(object s, NotifyCollectionChangedEventArgs e) { cbBox.Items.syncToOCDelegate(e); }; int qq = i; answer[qq] = null; cbBox.ItemIndexChanged += delegate { answer[qq] = (cbBox.Items.ElementAt(cbBox.ItemIndex)); }; cbBox.ItemIndexChanged += opt.action; } if (opt.type == OptType.textBox) { TextBox tbName = new TextBox(manager); tbName.Init(); tbName.Parent = window; tbName.Width = window.Width - VertPadding * 5; tbName.Left = VertPadding; tbName.Top = heightCounter; heightCounter += tbName.Height + VertPadding; int qq = i; answer[qq] = null; tbName.TextChanged += delegate { answer[qq] = tbName.Text; }; tbName.KeyUp += delegate(object sender, KeyEventArgs e) { if (e.Key == Keys.Enter) { confirmed = true; if (action(true, answer)) window.Close(); } }; tbName.TextChanged += opt.action; } if (opt.type == OptType.radialButton) { GroupPanel gp = new GroupPanel(manager); gp.Init(); gp.Parent = window; gp.Width = window.Width - VertPadding * 5; gp.Left = VertPadding; int qq = i; answer[qq] = -1; for (int j = 0; j < ((string[])opt.content).Length; j++) { RadioButton rb = new RadioButton(manager); rb.Init(); rb.Parent = gp; rb.Text = (string)opt.content; int jj = j; rb.Click += delegate { answer[qq] = jj; }; rb.Click += opt.action; } gp.Top = heightCounter; heightCounter += gp.Height + VertPadding; } if (opt.type == OptType.checkBox) { CheckBox cb = new CheckBox(manager); cb.Init(); cb.Parent = window; cb.Width = window.Width - VertPadding * 5; cb.Left = VertPadding; cb.Top = heightCounter; heightCounter += cb.Height + VertPadding; int qq = i; answer[qq] = false; cb.Text = (string)opt.content; cb.Click += delegate { answer[qq] = cb.Checked; }; cb.Click += opt.action; } i++; } if (options.Any<opt>(x => x.type != OptType.info)) { btnOk.Left = VertPadding; Button btnCancel = new Button(manager); btnCancel.Init(); btnCancel.Parent = window; btnCancel.Top = heightCounter; btnCancel.Text = "Cancel"; btnCancel.Left = VertPadding * 2 + btnOk.Width; btnCancel.Click += delegate { window.Close(); action(false, answer); }; } btnOk.Click += delegate { confirmed = true; window.Close(ModalResult.Cancel); bool res = action(true, answer); if (!res) { window.Show(); }; }; btnOk.Top = heightCounter; window.Closing += delegate { if (confirmed == false) action(false, answer); }; window.Height = (btnOk.Top) + 70; manager.Add(window); }