From 651aeb407bf7d7949fd81e475de053f221cd63da Mon Sep 17 00:00:00 2001 From: Michele Scandura Date: Wed, 2 Dec 2020 10:55:34 +0000 Subject: [PATCH] Added settings --- Sledgemapper/Settings.cs | 20 ++++++++ Sledgemapper/Sledgemapper.cs | 62 +++++++++++++------------ Sledgemapper/UI/MainWidget.Generated.cs | 16 +++++-- Sledgemapper/UI/mainwidget.xml | 2 + 4 files changed, 68 insertions(+), 32 deletions(-) create mode 100644 Sledgemapper/Settings.cs diff --git a/Sledgemapper/Settings.cs b/Sledgemapper/Settings.cs new file mode 100644 index 0000000..82d8339 --- /dev/null +++ b/Sledgemapper/Settings.cs @@ -0,0 +1,20 @@ +using Microsoft.Xna.Framework; + +namespace Sledgemapper +{ + public class Settings + { + public Color BackgroundColor { get; set; } + public Color OverlayTintColor { get; set; } + public Color GridColor { get; set; } + public Color NoteColor { get; set; } + + public Settings() + { + BackgroundColor=Color.LightGray; + GridColor=Color.Black; + NoteColor=Color.DarkRed; + OverlayTintColor = new Color(24, 118, 157); + } + } +} diff --git a/Sledgemapper/Sledgemapper.cs b/Sledgemapper/Sledgemapper.cs index fe7d44d..d5fa279 100644 --- a/Sledgemapper/Sledgemapper.cs +++ b/Sledgemapper/Sledgemapper.cs @@ -7,6 +7,7 @@ using Myra.Graphics2D.Brushes; using Myra.Graphics2D.TextureAtlases; using Myra.Graphics2D.UI; using Myra.Graphics2D.UI.File; +using Myra.Graphics2D.UI.Properties; using Newtonsoft.Json; using Sledgemapper.Shared.Entities; using Sledgemapper.UI; @@ -37,6 +38,7 @@ namespace Sledgemapper private AuthenticateResponse _authResponse; private MainWidget _mainWidget; private bool _showCellNumbers; + private readonly Settings _settings; public Sledgemapper() { @@ -55,6 +57,7 @@ namespace Sledgemapper _communicationManager.Connection.Reconnecting += OnHubReconnecting; _communicationManager.Connection.Closed += OnHubDisconnected; _state = new State(); + _settings= new Settings(); } private async Task OnHubDisconnected(Exception arg) @@ -108,6 +111,7 @@ namespace Sledgemapper _mainWidget.MenuConnectSync.Selected += OnMenuConnectSyncSelected; _mainWidget.MenuFileLoad.Selected += OnMenuFileLoadSelected; _mainWidget.MenuFileSave.Selected += OnMenuFileSaveSelected; + _mainWidget.MenuFileSettings.Selected += OneMenuFileSettingsSelected; _mainWidget.MenuConnectLogin.Selected += OnMenuConnectLoginSelected; _mainWidget.MenuConnectNew.Selected += OnMenuConnectNewSelected; _mainWidget.MenuConnectJoin.Selected += OnMenuConnectJoinSelected; @@ -131,6 +135,22 @@ namespace Sledgemapper _desktop.Root = _mainWidget; } + private void OneMenuFileSettingsSelected(object sender, EventArgs e) + { + var propertyGrid = new PropertyGrid + { + Object = _settings, + Width = 350 + }; + + var _windowEditor = new Window + { + Title = "Object Editor", + Content = propertyGrid + }; + _windowEditor.ShowModal(_desktop); + } + private void OnMenuViewShowCellNUmbersSelected(object sender, EventArgs e) { _showCellNumbers = !_showCellNumbers; @@ -382,7 +402,7 @@ namespace Sledgemapper { return; } - GraphicsDevice.Clear(Color.DarkGray); + GraphicsDevice.Clear(_settings.BackgroundColor); var visibleTilesX = GraphicsDevice.Viewport.Width / _state.TileSize + 1; var visibleTilesY = GraphicsDevice.Viewport.Height / _state.TileSize + 1; @@ -506,7 +526,7 @@ namespace Sledgemapper posX1, posY1, posX2, posY2, - Color.Black); + _settings.GridColor); } for (var i = -1; i < visibleTilesY + 2; i++) @@ -523,7 +543,7 @@ namespace Sledgemapper _spriteBatch.DrawLine(posX1, posY1, posX2, posY2, - Color.Black); + _settings.GridColor); } @@ -567,30 +587,14 @@ namespace Sledgemapper foreach (var note in _sessionData.Notes.Values) { - // var ffont = _fonts.Where(m=>m.Key.Contains("awesome")).FirstOrDefault(m => int.Parse(m.Key.Replace("awesome", "")) > _state.TileSize / 8).Value ?? _fonts.Last().Value; - // var fscale = 1f; - - // _spriteBatch.DrawString(ffont, - // "0xf06e", - // new Vector2( - // note.X * _state.TileSize + _state.TileSize - _state.TileSize / 3, - // note.Y * _state.TileSize + _state.TileSize / 4 - // ), - // Color.Black, - // 0, - // Vector2.Zero, - // fscale, - // SpriteEffects.None, - // 0); - _spriteBatch.Draw( - _comment, - new Rectangle( - note.X * _state.TileSize + _state.TileSize - (int)(_state.TileSize / 2) + _state.TileSize / 20, - note.Y * _state.TileSize + _state.TileSize / 8 + _state.TileSize / 20, - (int)(_state.TileSize / 2.5), (int)(_state.TileSize / 2.5 / 1.136) - ), Color.Black * .2f - ); + _comment, + new Rectangle( + note.X * _state.TileSize + _state.TileSize - (int)(_state.TileSize / 2) + _state.TileSize / 20, + note.Y * _state.TileSize + _state.TileSize / 8 + _state.TileSize / 20, + (int)(_state.TileSize / 2.5), (int)(_state.TileSize / 2.5 / 1.136) + ), Color.Black * .2f + ); _spriteBatch.Draw( _comment, @@ -598,7 +602,7 @@ namespace Sledgemapper note.X * _state.TileSize + _state.TileSize - (int)(_state.TileSize / 2), note.Y * _state.TileSize + _state.TileSize / 8, (int)(_state.TileSize / 2.5), (int)(_state.TileSize / 2.5 / 1.136) - ), Color.DarkRed + ), _settings.NoteColor ); } } @@ -614,7 +618,7 @@ namespace Sledgemapper var posY = tile.Y * _state.TileSize; _spriteBatch.Draw(content, new Vector2(posX, posY), - null, new Color(24, 118, 157), MathHelper.ToRadians(90 * tile.Rotation), new Vector2(content.Width / 2, content.Height / 2), ((float)_state.TileSize - 10) / content.Width, SpriteEffects.None, 0); + null, _settings.OverlayTintColor, MathHelper.ToRadians(90 * tile.Rotation), new Vector2(content.Width / 2, content.Height / 2), ((float)_state.TileSize - 10) / content.Width, SpriteEffects.None, 0); } else { @@ -622,7 +626,7 @@ namespace Sledgemapper var posY = tile.Y * _state.TileSize + _state.TileSize / 2f; _spriteBatch.Draw(content, new Vector2(posX, posY), - null, new Color(24, 118, 157), MathHelper.ToRadians(90 * tile.Rotation), new Vector2(content.Width / 2, content.Height / 2), ((float)_state.TileSize - 10) / content.Width, SpriteEffects.None, 0); + null, _settings.OverlayTintColor, MathHelper.ToRadians(90 * tile.Rotation), new Vector2(content.Width / 2, content.Height / 2), ((float)_state.TileSize - 10) / content.Width, SpriteEffects.None, 0); } } } diff --git a/Sledgemapper/UI/MainWidget.Generated.cs b/Sledgemapper/UI/MainWidget.Generated.cs index baee712..19c8773 100644 --- a/Sledgemapper/UI/MainWidget.Generated.cs +++ b/Sledgemapper/UI/MainWidget.Generated.cs @@ -1,4 +1,4 @@ -/* Generated by MyraPad at 01/12/2020 11:38:49 */ +/* Generated by MyraPad at 02/12/2020 10:41:53 */ using Myra; using Myra.Graphics2D; using Myra.Graphics2D.TextureAtlases; @@ -30,6 +30,13 @@ namespace Sledgemapper.UI var menuSeparator1 = new MenuSeparator(); + MenuFileSettings = new MenuItem(); + MenuFileSettings.Text = "S&ettings"; + MenuFileSettings.ShortcutText = "Ctrl+E"; + MenuFileSettings.Id = "MenuFileSettings"; + + var menuSeparator2 = new MenuSeparator(); + MenuFileQuit = new MenuItem(); MenuFileQuit.Text = "&Quit"; MenuFileQuit.ShortcutText = "Ctrl+Q"; @@ -41,6 +48,8 @@ namespace Sledgemapper.UI MenuFile.Items.Add(MenuFileLoad); MenuFile.Items.Add(MenuFileSave); MenuFile.Items.Add(menuSeparator1); + MenuFile.Items.Add(MenuFileSettings); + MenuFile.Items.Add(menuSeparator2); MenuFile.Items.Add(MenuFileQuit); MenuConnectLogin = new MenuItem(); @@ -48,7 +57,7 @@ namespace Sledgemapper.UI MenuConnectLogin.ShortcutText = "Ctrl+O"; MenuConnectLogin.Id = "MenuConnectLogin"; - var menuSeparator2 = new MenuSeparator(); + var menuSeparator3 = new MenuSeparator(); MenuConnectNew = new MenuItem(); MenuConnectNew.Text = "&New"; @@ -73,7 +82,7 @@ namespace Sledgemapper.UI var menuItem1 = new MenuItem(); menuItem1.Text = "&Connect"; menuItem1.Items.Add(MenuConnectLogin); - menuItem1.Items.Add(menuSeparator2); + menuItem1.Items.Add(menuSeparator3); menuItem1.Items.Add(MenuConnectNew); menuItem1.Items.Add(MenuConnectJoin); menuItem1.Items.Add(MenuConnectSync); @@ -259,6 +268,7 @@ namespace Sledgemapper.UI public MenuItem MenuFileLoad; public MenuItem MenuFileSave; + public MenuItem MenuFileSettings; public MenuItem MenuFileQuit; public MenuItem MenuFile; public MenuItem MenuConnectLogin; diff --git a/Sledgemapper/UI/mainwidget.xml b/Sledgemapper/UI/mainwidget.xml index 9d14525..2a727e1 100644 --- a/Sledgemapper/UI/mainwidget.xml +++ b/Sledgemapper/UI/mainwidget.xml @@ -10,6 +10,8 @@ + +