sledgemapper/Sledgemapper/UI/MapList.Custom.cs
Michele Scandura 7e3e645fc9
All checks were successful
continuous-integration/drone/push Build is passing
fixes and cleanup
2021-09-21 11:09:26 +01:00

76 lines
No EOL
2.6 KiB
C#

/* Generated by MyraPad at 03/09/2021 17:13:57 */
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 MapList
{
private CommunicationManager CommunicationManager { get; }
private TinyMessengerHub Messenger { get; }
private string _selectedMap;
private Guid _selectedMapId;
public MapList(CommunicationManager communicationManager, TinyMessengerHub messenger)
{
CommunicationManager = communicationManager;
Messenger = messenger;
BuildUI();
BtnNewCampaign.Click += (s, e) =>
{
OnMenuMapNew(s, e);
this.GetContainingWindow().Close();
};
BtnLoadCampaign.Click += BtnLoadCampaign_Click;
}
private void BtnLoadCampaign_Click(object sender, EventArgs e)
{
State.Instance.MapName = _selectedMap;
State.Instance.MapId = _selectedMapId;
// var map = CommunicationManager.Api.GetMap(State.Instance.CampaignId, State.Instance.MapId);
Messenger.Publish(new MapOpenedMessage(this, _selectedMap, _selectedMapId));
this.GetContainingWindow().Close();
}
public async Task LoadMaps()
{
var campaigns = await CommunicationManager.Api.GetMaps(State.Instance.CampaignId);
foreach (var campaign in campaigns)
{
var item = new ListItem();
item.ItemName.Text = campaign.SessionName;
item.Tag = campaign.SessionId;
item.TouchUp += OnMapSelected;
StackCampaignsList.AddChild(item);
}
}
private void OnMapSelected(object sender, EventArgs e)
{
var item = sender as ListItem;
var localContent = item.GetParentContentInWindow<Widget>();
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);
_selectedMap = item.ItemName.Text;
_selectedMapId = (Guid)item.Tag;
}
private void OnMenuMapNew(object sender, EventArgs e)
{
new MapWindow(CommunicationManager, Messenger).ShowInModalWindow(Desktop, "New map");
}
}
}