Exemplo n.º 1
0
 public RadioGroup Add(string name)
 {
     RadioGroup group = new RadioGroup (name);
     groups.Add (group);
     EmitGroupsChanged ();
     return group;
 }
Exemplo n.º 2
0
        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;
            }
        }