2
using System.Collections;
6
namespace Stetic.Wrapper {
8
public class RadioMenuItem : MenuItem, IRadioGroupManagerProvider {
10
static RadioGroupManager GroupManager = new RadioGroupManager (typeof (Gtk.RadioMenuItem));
12
public override void Wrap (object obj, bool initialized)
14
base.Wrap (obj, initialized);
16
Gtk.RadioMenuItem radio = (Gtk.RadioMenuItem)Wrapped;
18
Group = GroupManager.LastGroup;
19
else if (radio.Group == null)
23
IRadioGroupManager IRadioGroupManagerProvider.GetGroupManager ()
28
protected override void ReadProperties (ObjectReader reader, XmlElement elem)
30
string group = (string)GladeUtils.ExtractProperty (elem, "group", "");
31
bool active = (bool)GladeUtils.ExtractProperty (elem, "active", false);
32
base.ReadProperties (reader, elem);
39
((Gtk.RadioMenuItem)Wrapped).Active = true;
42
protected override XmlElement WriteProperties (ObjectWriter writer)
44
XmlElement elem = base.WriteProperties (writer);
45
string group = GroupManager.GladeGroupName (Wrapped);
46
if (group != Wrapped.Name)
47
GladeUtils.SetProperty (elem, "group", group);
51
protected override void GeneratePropertySet (GeneratorContext ctx, CodeExpression var, PropertyDescriptor prop)
53
if (prop.Name == "Group") {
54
CodeExpression groupExp = GroupManager.GenerateGroupExpression (ctx, (Gtk.Widget) Wrapped);
56
new CodeAssignStatement (
57
new CodePropertyReferenceExpression (var, "Group"),
62
base.GeneratePropertySet (ctx, var, prop);
67
return GroupManager[Wrapped];
70
GroupManager[Wrapped] = value;