public void ShowAddins(object[] data) { selectedEntry.Clear(); selectedAddin.Clear(); eboxButs.Visible = true; topHeaderBox.Hide(); urlButton.Hide(); if (titleIcon != null) { boxTitle.Remove(titleIcon); titleIcon.Destroy(); titleIcon = null; } foreach (var img in previewImages) { ((Gtk.Container)img.Parent).Remove(img); img.Destroy(); } previewImages.Clear(); if (data.Length == 1) { headerBox.Show(); ShowAddin(data[0]); } else if (data.Length > 1) { headerBox.Hide(); StringBuilder sb = new StringBuilder(); sb.Append(Catalog.GetString("Multiple selection:\n\n")); bool allowUpdate = AllowInstall; bool allowInstall = true; bool allowUninstall = AllowInstall; bool allowEnable = true; bool allowDisable = true; foreach (object o in data) { Addin installed; if (o is Addin) { Addin a = (Addin)o; installed = a; selectedAddin.Add(a); sb.Append(a.Name); } else { AddinRepositoryEntry entry = (AddinRepositoryEntry)o; selectedEntry.Add(entry); sb.Append(entry.Addin.Name); installed = AddinManager.Registry.GetAddin(Addin.GetIdName(entry.Addin.Id)); } if (installed != null) { if (GetUpdate(installed) == null) { allowUpdate = false; } allowInstall = false; if (installed.Enabled) { allowEnable = false; } else { allowDisable = false; } } else { allowEnable = allowDisable = allowUninstall = allowUpdate = false; } sb.Append('\n'); labelDesc.Text = sb.ToString(); if (allowEnable) { btnDisable.Visible = true; btnDisable.Label = Catalog.GetString("Enable"); } else if (allowDisable) { btnDisable.Visible = true; btnDisable.Label = Catalog.GetString("Disable"); } else { btnDisable.Visible = false; } btnInstall.Visible = allowInstall; btnUninstall.Visible = allowUninstall; btnUpdate.Visible = allowUpdate; } } else { headerBox.Hide(); btnDisable.Visible = false; btnInstall.Visible = false; btnUninstall.Visible = false; btnUpdate.Visible = false; eboxButs.Visible = false; labelDesc.Text = Catalog.GetString("No selection"); } }