Ejemplo n.º 1
0
        private void btnNew_Click(object sender, EventArgs e)
        {
            var remap = ColorRemap.CreateFromSkin(_skin);

            _remaps.Add(remap);
            (new SkinRemapperForm(_skin.Path, remap)).ShowDialog(this);
            _remaps.ResetBindings();
        }
Ejemplo n.º 2
0
        public SkinRemapManagerForm(SvgSkin skin, ColorRemap selectedRemap, BindingList <ColorRemap> remaps) : this()
        {
            _skin   = skin;
            _remaps = remaps;

            // initialize listbox
            list.DataSource   = _remaps;
            list.SelectedItem = SelectedRemap = selectedRemap;

            lblSkinType.Text = $@"Color scheme for {string.Join(" ", skin.Controllers)}";
        }
Ejemplo n.º 3
0
        private void list_SelectedIndexChanged(object sender, EventArgs e)
        {
            btnNew.Enabled = true;

            var curr = list.SelectedItem as ColorRemap;

            if (curr != null)
            {
                SelectedRemap = curr;
                SelectedRemapChanged?.Invoke(this, EventArgs.Empty);
            }

            btnEdit.Enabled   = btnDelete.Enabled = curr != null && !curr.IsSkinDefault;
            btnClone.Enabled  = curr != null;
            btnExport.Enabled = !curr?.IsSkinDefault ?? false;
        }
Ejemplo n.º 4
0
        public RemapManagerForm(SvgSkin skin, ColorRemap selectedRemap, BindingList <ColorRemap> remaps) : this()
        {
            _skin   = skin;
            _remaps = remaps;
            if (_remaps.Count(r => r.IsSkinDefault) == 0)
            {
                _defaultRemap = ColorRemap.CreateFromSkin(skin);
                _remaps.Add(_defaultRemap);
            }
            else
            {
                _defaultRemap = _remaps.First(r => r.IsSkinDefault);
            }

            // initialize listbox
            list.DataSource   = _remaps;
            list.SelectedItem = SelectedRemap = selectedRemap;

            lblSkinType.Text = $@"Color scheme for {string.Join(" ", skin.Controllers)}";
        }
Ejemplo n.º 5
0
        public SkinRemapperForm(string path, ColorRemap remap) : this()
        {
            _skin = new SvgSkin();
            _skin.Load(path);
            Remap = remap;
            remap.ApplyToSkin(this._skin);

            var highlightElems = _skin.Buttons.Where(b => b.Pressed != null).Select(b => b.Pressed)
                                 .Union(_skin.Sticks.Where(s => s.Pressed != null).Select(s => s.Pressed));

            var nonHighlightElems = _skin.Buttons.Where(b => b.Element != null).Select(b => b.Element)
                                    .Union(_skin.Sticks.Where(s => s.Element != null).Select(s => s.Element))
                                    .Union(_skin.Triggers.Where(t => t.Element != null).Select(t => t.Element));

            // split remap groups into highlight/non-highlight/base categories
            foreach (var group in remap.Groups)
            {
                var grpHl    = new GroupedSvgElems(group.Fill, group.Stroke);
                var grpNonHl = new GroupedSvgElems(group.Fill, group.Stroke);
                var grpBase  = new GroupedSvgElems(group.Fill, group.Stroke);

                foreach (var elem in group)
                {
                    bool hl    = GroupContains(elem, highlightElems);
                    bool nonHl = GroupContains(elem, nonHighlightElems);
                    if (hl)
                    {
                        grpHl.Add(elem);
                    }
                    if (nonHl)
                    {
                        grpNonHl.Add(elem);
                    }
                    if (!hl && !nonHl)
                    {
                        grpBase.Add(elem);
                    }
                }

                if (grpNonHl.Count == 0 && grpBase.Count == 0)
                {
                    // this is entirely a HL group
                    _highlights.Add(group);
                }
                else if (grpHl.Count == 0 && grpBase.Count == 0)
                {
                    // this is entirely a non-HL group
                    _nonHighlights.Add(group);
                }
                else if (grpHl.Count == 0 && grpNonHl.Count == 0)
                {
                    _base.Add(group);
                }
                else
                {
                    // split up
                    if (grpHl.Any())
                    {
                        _highlights.Add(grpHl);
                    }
                    if (grpNonHl.Any())
                    {
                        _nonHighlights.Add(grpNonHl);
                    }
                    if (grpBase.Any())
                    {
                        _base.Add(grpBase);
                    }
                }
            }

            tbSkinName.DataBindings.Add("Text", Remap, "Name");
            lbGroups.DisplayMember = nameof(GroupedSvgElems.Name);
            PopulateListbox();
        }