public RadioGroup Add(string name) { RadioGroup group = new RadioGroup (name); groups.Add (group); EmitGroupsChanged (); return group; }
public string this[Gtk.Widget radio] { get { RadioGroup group = widgets[radio] as RadioGroup; if (group != null) { return(group.Name); } else { return(null); } } set { GLib.SList group_value; RadioGroup oldGroup = widgets[radio] as RadioGroup; if (oldGroup == null) { radio.Destroyed += RadioDestroyed; } else { if (oldGroup.Name == value) { return; } oldGroup.Widgets.Remove(radio); if (oldGroup.Widgets.Count == 0) { groups.Remove(oldGroup); EmitGroupsChanged(); } } if (value == null) { radio.Destroyed -= RadioDestroyed; groupProperty.SetValue(radio, new GLib.SList(IntPtr.Zero), null); widgets.Remove(radio); return; } RadioGroup newGroup = FindGroup(value); if (newGroup == null) { newGroup = Add(value); } if (newGroup.Widgets.Count == 0) { group_value = new GLib.SList(IntPtr.Zero); } else { group_value = (GLib.SList)groupProperty.GetValue(newGroup.Widgets[0], null); } groupProperty.SetValue(radio, group_value, null); newGroup.Widgets.Add(radio); widgets[radio] = newGroup; } }