public SearchView(SearchSource source) { this.source = source; list_view = new ResultListView(); var controller = new PersistentColumnController("InternetArchive"); list_view.ColumnController = controller; AddColumns(); controller.Load(); list_view.RowActivated += (o, a) => { ServiceManager.Get <InterfaceActionService> ()["InternetArchive.ViewItemDetails"].Activate(); }; list_view.SetModel(source.Model); // Packing var sw = new Gtk.ScrolledWindow(); sw.Child = list_view; var last_hid_more = DateTime.MinValue; string more_text = Catalog.GetString("Fetch more results from the Internet Archive?"); list_view.Vadjustment.ValueChanged += (o, a) => { var adj = list_view.Vadjustment; if ((DateTime.Now - last_hid_more).TotalSeconds > 2 && adj.Value >= adj.Upper - adj.PageSize) { if (source.TotalResults > source.Model.Count) { source.SetStatus(more_text, true, false, "gtk-question"); source.CurrentMessage.AddAction(new MessageAction(Catalog.GetString("Fetch More"), delegate { source.FetchMore(); })); } } }; source.MessageNotify += (o, a) => { if (source.CurrentMessage != null && source.CurrentMessage.Text == more_text && source.CurrentMessage.IsHidden) { last_hid_more = DateTime.Now; } }; PackStart(sw, true, true, 0); ShowAll(); }
public SearchView(SortableMemoryListModel <T> model) { list_view = new ResultListView(); var controller = new PersistentColumnController("SongKick"); list_view.ColumnController = controller; AddColumns(); SetDefultSortColumn(); controller.Load(); this.model = model; this.list_view.SetModel(model); window.Child = list_view; this.PackStart(window, true, true, 0); ShowAll(); }