public void Show(ObjectValue val) { value = val; visualizers = new List <ValueVisualizer> (DebuggingService.GetValueVisualizers(val)); visualizers.Sort((v1, v2) => string.Compare(v1.Name, v2.Name, StringComparison.CurrentCultureIgnoreCase)); buttons = new List <ToggleButton> (); ToggleButton defaultVis = null; for (int i = 0; i < visualizers.Count; i++) { var button = new ToggleButton(); button.Label = visualizers [i].Name; button.Toggled += OnComboVisualizersChanged; if (visualizers [i].IsDefaultVisualizer(val)) { defaultVis = button; } hbox1.PackStart(button, false, false, 0); buttons.Add(button); button.Show(); } if (defaultVis == null) { defaultVis = buttons [0]; } defaultVis.GrabFocus(); SetToggleState(defaultVis, true); UpdateVisualizer(defaultVis); if (val.IsReadOnly || !visualizers.Any(v => v.CanEdit(val))) { buttonCancel.Label = Gtk.Stock.Close; buttonSave.Hide(); } }