using Myra.Graphics2D.Brushes; using Myra.Graphics2D.UI; using Sledgemapper.Messages; using System; using System.Threading.Tasks; using TinyMessenger; namespace Sledgemapper.UI { public partial class CampaignList { private readonly CommunicationManager CommunicationManager; private readonly Window Window; private readonly TinyMessengerHub Messenger; private bool campaignSelected; public CampaignList(CommunicationManager communicationManager, Window window, TinyMessengerHub messenger) { BuildUI(); CommunicationManager = communicationManager; Window = window; Messenger = messenger; BtnNewCampaign.Click += (s, e) => { window.Close(); OnMenuCampaignNew(s, e); }; BtnLoadCampaign.Click += (s, e) => { if (campaignSelected) { campaignSelected = false; Messenger.Publish(new CampaignSelectedMessage(this)); window.Close(); } }; BtnCancelCampaign.Click += (s, e) => { Window.Close(); }; } private void OnMenuCampaignNew(object sender, EventArgs e) { if (sender is MenuItem && !((MenuItem)sender).Enabled) { return; } Window window = new() { Title = "New campaign" }; var content = new CampaignWindow(CommunicationManager, window, Messenger); window.Content = content; window.ShowModal(Window.Desktop); } private void OnCampaignSelected(object sender, EventArgs e) { var item = sender as ListItem; State.Instance.CampaignName = item.ItemName.Text; var list = item.Parent as Grid; for (var i = 0; i < list.ChildrenCount; i++) { var currentItem = list.GetChild(i) as HorizontalStackPanel;// UI.ListItem; currentItem.Background = new SolidBrush("#D9D9D9FF"); } item.Background = new SolidBrush(Settings.Instance.OverlayTintColor); campaignSelected = true; } public async Task LoadCampaigns() { var campaigns = await CommunicationManager.Api.GetCampaigns(); foreach (var campaign in campaigns) { var item = new ListItem(); item.ItemName.Text = campaign.Name; item.TouchUp += OnCampaignSelected; StackCampaignsList.AddChild(item); } } } }