using Adw; using Gtk; namespace Publicate { public class LicenceChooser : Popover { private ViewerWindow toplevel; private ListBox licence_list; public signal void licence_selected(Licences.Licence licence); public LicenceChooser(ViewerWindow window) { toplevel = window; var box = new Box(Orientation.VERTICAL, 8); licence_list = new ListBox(); licence_list.row_activated.connect((row) => { var item = (LicenceItem)row; selected(item.licence); }); box.append(licence_list); child = box; foreach (var licence in Licences.get_available_licences()) { var item = new LicenceItem (licence); licence_list.append (item); } } private void selected(Licences.Licence licence) { popdown(); licence_selected(licence); } } public class LicenceItem : ActionRow { public Licences.Licence licence {get; private set;} public LicenceItem(Licences.Licence licence) { this.licence = licence; activatable = true; selectable = false; title = licence.name; } } }