void AppendCommand(CommandDescriptor cmd, ObjectWrapper widget)
{
Gtk.ToolButton button;
if (cmd.IsToggleCommand(widget.Wrapped))
{
button = new Gtk.ToggleToolButton();
((Gtk.ToggleToolButton)button).Active = cmd.IsToogled(widget.Wrapped);
toggles.Add(cmd);
editors[cmd.Name] = button;
}
else
{
button = new Gtk.ToolButton(null, null);
}
Gtk.Image img = cmd.GetImage();
if (img != null)
{
button.IconWidget = img;
button.Label = cmd.Label;
if (cmd.Label != null && cmd.Label.Length > 0)
{
button.TooltipText = cmd.Label;
}
}
else
{
button.Label = cmd.Label;
button.IsImportant = true;
}
button.Clicked += delegate(object o, EventArgs args)
{
if (!updating)
{
cmd.Run(widget.Wrapped);
}
};
button.ShowAll();
Insert(button, -1);
if (cmd.HasDependencies)
{
editors[cmd.Name] = button;
sensitives[cmd] = cmd;
}
if (cmd.HasVisibility)
{
editors[cmd.Name] = button;
invisibles[cmd] = cmd;
}
wrappers [cmd] = widget;
}