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(); }
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)}"; }
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; }
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)}"; }
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(); }