private XmlSerializableStringToColorDictionary GetNewUserColorSettings(bool includeDisplayedDefaultColor)
        {
            var newUserColorSettings = new XmlSerializableStringToColorDictionary();

            foreach (var userMarkupProperty in _userMarkupPropertiesDictionary)
            {
                if (includeDisplayedDefaultColor)
                {
                    if (userMarkupProperty.Value.IsDisplayed || userMarkupProperty.Value.IsReadFromSettings || userMarkupProperty.Value.HasColorChanges)
                    {
                        newUserColorSettings[userMarkupProperty.Key] = userMarkupProperty.Value.Color;
                    }
                }
                else
                {
                    if (userMarkupProperty.Value.IsReadFromSettings || userMarkupProperty.Value.HasColorChanges ||
                        (userMarkupProperty.Value.IsDisplayed && userMarkupProperty.Value.Color != DefaultMarkupColor))
                    {
                        newUserColorSettings[userMarkupProperty.Key] = userMarkupProperty.Value.Color;
                    }
                }
            }

            return(newUserColorSettings);
        }
        private XmlSerializableStringToColorDictionary GetNewUserColorSettings(bool includeDisplayedDefaultColor)
        {
            XmlSerializableStringToColorDictionary newUserColorSettings = new XmlSerializableStringToColorDictionary();

            foreach (KeyValuePair <string, UserMarkupProperties> userMarkupProperty in _userMarkupPropertiesDictionary)
            {
                if (includeDisplayedDefaultColor)
                {
                    if (userMarkupProperty.Value.IsDisplayed || userMarkupProperty.Value.IsReadFromSettings || userMarkupProperty.Value.HasColorChanges)
                    {
                        newUserColorSettings[userMarkupProperty.Key] = userMarkupProperty.Value.Color;
                    }
                }
                else
                {
                    // These are color values stored in AimSettings
                    if (userMarkupProperty.Value.IsReadFromSettings || userMarkupProperty.Value.HasColorChanges ||
                        (userMarkupProperty.Value.IsDisplayed && userMarkupProperty.Value.Color != this.DefaultMarkupColor))
                    {
                        newUserColorSettings[userMarkupProperty.Key] = userMarkupProperty.Value.Color;
                    }
                }
            }

            return(newUserColorSettings);
        }
        private AimSettings()
        {
            if (LoginNameMarkupColors == null)
                LoginNameMarkupColors = new XmlSerializableStringToColorDictionary();

            if (Parameters == null)
                Parameters = new XmlSerializableStringDictionary();
        }
        private AimSettings()
        {
            ApplicationSettingsRegistry.Instance.RegisterInstance(this);
            if (LoginNameMarkupColors == null)
                LoginNameMarkupColors = new XmlSerializableStringToColorDictionary();

            if (Parameters == null)
                Parameters = new XmlSerializableStringDictionary();
        }
        private AimSettings()
        {
            if (LoginNameMarkupColors == null)
            {
                LoginNameMarkupColors = new XmlSerializableStringToColorDictionary();
            }

            if (Parameters == null)
            {
                Parameters = new XmlSerializableStringDictionary();
            }
        }
        public override void Save()
        {
            _settings.LoginNameMarkupColors = GetNewUserColorSettings(false);
            _settings.Save();
            _defaultMarkupColor = _settings.DefaultMarkupColor;
            _loginNameMarkupColorsOriginalSettings = new XmlSerializableStringToColorDictionary(_settings.LoginNameMarkupColors);
            _useRandomDefaultMarkupColor           = _settings.UseRandomDefaultMarkupColor;

            _userMarkupPropertiesDictionary.ItemAdded   -= OnUserMarkupPropertiesChanged;
            _userMarkupPropertiesDictionary.ItemChanged -= OnUserMarkupPropertiesChanged;
            _userMarkupPropertiesDictionary.ItemRemoved -= OnUserMarkupPropertiesChanged;
            _userMarkupPropertiesDictionary.Clear();
        }
        private AimSettings()
        {
            ApplicationSettingsRegistry.Instance.RegisterInstance(this);
            if (LoginNameMarkupColors == null)
            {
                LoginNameMarkupColors = new XmlSerializableStringToColorDictionary();
            }

            if (Parameters == null)
            {
                Parameters = new XmlSerializableStringDictionary();
            }
        }
        public override void Start()
        {
            base.Start();

            _settings           = AimSettings.Default;
            _defaultMarkupColor = _settings.DefaultMarkupColor;
            _loginNameMarkupColorsOriginalSettings = new XmlSerializableStringToColorDictionary(_settings.LoginNameMarkupColors);
            _useRandomDefaultMarkupColor           = _settings.UseRandomDefaultMarkupColor;

            InitUserMarkupProperties();
            _userMarkupPropertiesDictionary.ItemAdded   += OnUserMarkupPropertiesChanged;
            _userMarkupPropertiesDictionary.ItemChanged += OnUserMarkupPropertiesChanged;
            _userMarkupPropertiesDictionary.ItemRemoved += OnUserMarkupPropertiesChanged;

            _settings.LoginNameMarkupColors = GetNewUserColorSettings();
        }
        public override void Start()
        {
            base.Start();

            // Preserve original values
            _settings           = AimSettings.Default;
            _defaultMarkupColor = _settings.DefaultMarkupColor;
            _loginNameMarkupColorsOriginalSettings = new XmlSerializableStringToColorDictionary(_settings.LoginNameMarkupColors);
            _useRandomDefaultMarkupColor           = _settings.UseRandomDefaultMarkupColor;

            InitUserMarkupProperties();
            _userMarkupPropertiesDictionary.ItemAdded   += OnUserMarkupPropertiesChanged;
            _userMarkupPropertiesDictionary.ItemChanged += OnUserMarkupPropertiesChanged;
            _userMarkupPropertiesDictionary.ItemRemoved += OnUserMarkupPropertiesChanged;

            // Update color values to include default colors for displayed images
            _settings.LoginNameMarkupColors = GetNewUserColorSettings();
        }