/// <summary> /// Updates the buttons for the bind controls to reflect the current configuration. /// </summary> private void UpdateBindText() { bindName.Text = bind.Name; List <IControl> combo = bind.GetCombo(); if (combo != null && combo.Count > 0) { if (!group.DoesComboConflict(combo, bind)) { bindName.TextBoard.SetFormatting(GlyphFormat.Blueish); } else { bindName.TextBoard.SetFormatting(TerminalFormatting.WarningFormat); } con1.Text = combo[0].DisplayName; if (combo.Count > 1) { con2.Text = combo[1].DisplayName; } else { con2.Text = "none"; } if (combo.Count > 2) { con3.Text = combo[2].DisplayName; } else { con3.Text = "none"; } } else { bindName.TextBoard.SetFormatting(TerminalFormatting.WarningFormat); con1.Text = "none"; con2.Text = "none"; con3.Text = "none"; } }
private object GetOrSetGroupMember(int index, object data, int memberEnum) { IBindGroup group = bindGroups[index]; switch ((BindGroupAccessors)memberEnum) { case BindGroupAccessors.Name: return(group.Name); case BindGroupAccessors.GetBindFromName: return(new Vector2I(group.Index, group.GetBind(data as string)?.Index ?? -1)); case BindGroupAccessors.DoesBindExist: return(group.DoesBindExist(data as string)); case BindGroupAccessors.RegisterBindNames: group.RegisterBinds(data as IReadOnlyList <string>); break; case BindGroupAccessors.RegisterBindIndices: group.RegisterBinds(data as IReadOnlyList <MyTuple <string, IReadOnlyList <int> > >); break; case BindGroupAccessors.RegisterBindDefinitions: group.RegisterBinds(data as IReadOnlyList <BindDefinitionData>); break; case BindGroupAccessors.AddBindWithIndices: { var args = (MyTuple <string, IReadOnlyList <int> >)data; return(new Vector2I(group.Index, group.AddBind(args.Item1, args.Item2).Index)); } case BindGroupAccessors.AddBindWithNames: { var args = (MyTuple <string, IReadOnlyList <string> >)data; return(new Vector2I(group.Index, group.AddBind(args.Item1, args.Item2).Index)); } case BindGroupAccessors.DoesComboConflict: { var args = (MyTuple <IReadOnlyList <int>, int>)data; return(group.DoesComboConflict(args.Item1, args.Item2)); } case BindGroupAccessors.TryRegisterBindName: { IBind bind; bool success = group.TryRegisterBind(data as string, out bind); return(success ? bind.Index : -1); } case BindGroupAccessors.TryRegisterBindWithIndices: { var args = (MyTuple <string, IReadOnlyList <int> >)data; IBind bind; bool success = group.TryRegisterBind(args.Item1, out bind, args.Item2); return(success ? bind.Index : -1); } case BindGroupAccessors.TryRegisterBindWithNames: { var args = (MyTuple <string, IReadOnlyList <string> >)data; IBind bind; bool success = group.TryRegisterBind(args.Item1, out bind, args.Item2); return(success ? bind.Index : -1); } case BindGroupAccessors.TryLoadBindData: { var arg = data as IReadOnlyList <BindDefinitionData>; return(group.TryLoadBindData(arg)); } case BindGroupAccessors.GetBindData: return(group.GetBindData()); case BindGroupAccessors.ClearSubscribers: group.ClearSubscribers(); break; case BindGroupAccessors.ID: return(group); } return(null); }