/// <summary> /// Create a new window for editng Text tiles, eg signs /// </summary> /// <param name="manager">UI Manager Object</param> /// <param name="interact">Interaction Parameters, includes level and position of sign</param> public TaskSign(Manager manager, InteractBlockEventArgs interact) : base(manager) { //Set up the window Text = "Sign"; Resizable = false; Init(); ClientWidth = 320; ClientHeight = 172; TopPanel.Visible = false; BottomPanel.Visible = true; Center(); //Create the input box for text editing Input = new TextBox(manager); Input.Init(); Input.Left = 8; Input.Top = 8; Input.Width = ClientArea.Width - 16; Input.Height = ClientArea.Height - 54; Input.Anchor = Anchors.All; Input.Mode = TextBoxMode.Multiline; Input.Text = (interact.level.tiles[interact.x, interact.y] as TextTile).Text; Input.SelectAll(); Input.Focused = true; Input.ScrollBars = ScrollBars.Both; Add(Input); //Saves the text, Durrr Save = new Button(manager); Save.Init(); Save.Text = "Save"; Save.Width = 64; Save.Height = 24; Save.Top = 8; Save.Left = (ClientWidth / 2) - Save.Width - 8; Save.Click += new TomShane.Neoforce.Controls.EventHandler(delegate(object sender, TomShane.Neoforce.Controls.EventArgs e) { //If the tile is still a text tile (Incase it got destroyed) then set it's text if (interact.level.tiles[interact.x, interact.y] is TextTile) { (interact.level.tiles[interact.x, interact.y] as TextTile).Text = Input.Text; } //Close up here Close(); }); //What could this do? Cancel = new Button(manager); Cancel.Init(); Cancel.Text = "Cancel"; Cancel.Width = 64; Cancel.Height = 24; Cancel.Top = 8; Cancel.Left = (ClientWidth / 2) + 8; Cancel.Click += new TomShane.Neoforce.Controls.EventHandler(delegate(object sender, TomShane.Neoforce.Controls.EventArgs e) { Close(); //Self-Explanitory }); //Add the new controls BottomPanel.Add(Save); BottomPanel.Add(Cancel); }
/// <summary> /// Create a new window for editng Text tiles, eg signs /// </summary> /// <param name="manager">UI Manager Object</param> /// <param name="interact">Interaction Parameters, includes level and position of sign</param> public TaskTimer(Manager manager, InteractBlockEventArgs interact) : base(manager) { this.interact = interact; if (interact.level.tiles[interact.x, interact.y] is TimerTile) { orgTime = (interact.level.tiles[interact.x, interact.y] as TimerTile).Time; orgLength = (interact.level.tiles[interact.x, interact.y] as TimerTile).Length; } //Set up the window Text = "Edit Timer"; Resizable = false; Init(); Width = 300 + 16; ClientHeight = 142; TopPanel.Visible = false; TopPanel.Height = 0; BottomPanel.Visible = true; DefaultControl = timeBar; Center(); timeLabel = new Label(manager); timeLabel.Init(); timeLabel.Top = TopPanel.Height + 6; timeLabel.Left = 8; timeLabel.Width = ClientWidth - 32; Add(timeLabel); timeBar = new TrackBar(manager); timeBar.Init(); timeBar.Top = timeLabel.Top + timeLabel.Height + 4; timeBar.Range = (30 * 10) - 5; timeBar.Value = 0; timeBar.Width = ClientWidth - 12; timeBar.Height = 24; timeBar.Left = (ClientWidth / 2) - (timeBar.Width / 2); timeBar.ValueChanged += timeBar_ValueChanged; Add(timeBar); lengthLabel = new Label(manager); lengthLabel.Init(); lengthLabel.Top = timeBar.Top + timeBar.Height + 4; lengthLabel.Left = 8; lengthLabel.Width = ClientWidth - 32; Add(lengthLabel); lengthBar = new TrackBar(manager); lengthBar.Init(); lengthBar.Top = lengthLabel.Top + lengthLabel.Height + 4; lengthBar.Range = (30 * 10) - 5; lengthBar.Value = 0; lengthBar.Width = ClientWidth - 12; lengthBar.Height = 24; lengthBar.Left = (ClientWidth / 2) - (timeBar.Width / 2); lengthBar.ValueChanged += lengthBar_ValueChanged; Add(lengthBar); //Saves the text, Durrr Save = new Button(manager); Save.Init(); Save.Text = "Save"; Save.Width = 64; Save.Height = 24; Save.Top = 8; Save.Left = (ClientWidth / 2) - Save.Width - 8; Save.Click += new TomShane.Neoforce.Controls.EventHandler(delegate(object sender, TomShane.Neoforce.Controls.EventArgs e) { if (interact.level.tiles[interact.x, interact.y] is TimerTile) { (interact.level.tiles[interact.x, interact.y] as TimerTile).Time = time; (interact.level.tiles[interact.x, interact.y] as TimerTile).Length = length; } Close(); }); //What could this do? Cancel = new Button(manager); Cancel.Init(); Cancel.Text = "Cancel"; Cancel.Width = 64; Cancel.Height = 24; Cancel.Top = 8; Cancel.Left = (ClientWidth / 2) + 8; Cancel.Click += new TomShane.Neoforce.Controls.EventHandler(delegate(object sender, TomShane.Neoforce.Controls.EventArgs e) { if (interact.level.tiles[interact.x, interact.y] is TimerTile) { (interact.level.tiles[interact.x, interact.y] as TimerTile).Time = orgTime; (interact.level.tiles[interact.x, interact.y] as TimerTile).Length = orgLength; } Close(); //Self-Explanitory }); //Add the new controls BottomPanel.Add(Save); BottomPanel.Add(Cancel); if (interact.level.tiles[interact.x, interact.y] is TimerTile) { timeBar.Value = (int)(((interact.level.tiles[interact.x, interact.y] as TimerTile).Time * 10) - 5); lengthBar.Value = (int)(((interact.level.tiles[interact.x, interact.y] as TimerTile).Length * 10) - 5); timeBar_ValueChanged(null, null); lengthBar_ValueChanged(null, null); } }