void HandleShowMenuEvent(BookshelfBookView bookView, bool isFavorite) { PopoverMenuController pmc = new PopoverMenuController(bookView, isFavorite); if (bookView.BookshelfBook.Status == Book.BookStatus.DOWNLOADED) { pmc.View.Frame = new CGRect(0, 0, bookView.Frame.Width, 88); } else { pmc.View.Frame = new CGRect(0, 0, bookView.Frame.Width, 44); } pmc.FavoriteEvent += delegate { HideMenuPopover(); dataSource.UpdateFavorite(bookView.BookshelfBook.ID, !isFavorite); if (this.Title != StringRef.myBooks) { UpdateCollectionView(bookView); } }; pmc.RemoveBookEvent += delegate { HideMenuPopover(); UIAlertView alert = new UIAlertView(StringRef.confirmation, "Are you sure you want to remove this book from the Bookshelf?", null, StringRef.no, StringRef.yes); alert.Dismissed += (object sender, UIButtonEventArgs e) => { if (e.ButtonIndex == 1) { BooksOnDeviceAccessor.MarkAsRemovedBook(bookView.BookshelfBook); BookRemover.RemoveBookInCache(bookView.BookshelfBook); BookRemover.RemoveBook(bookView.BookshelfBook); UpdateCollectionView(bookView); } }; alert.Show(); }; pmc.CancelDownloadEvent += delegate { HideMenuPopover(); UIAlertView alert = new UIAlertView(StringRef.confirmation, "Are you sure you want to cancel the download for this book?", null, StringRef.no, StringRef.yes); alert.Dismissed += (object sender, UIButtonEventArgs e) => { if (e.ButtonIndex == 1) { if (bookView.BookshelfBook.Status != Book.BookStatus.DOWNLOADED) { CancelDownload(bookView.BookshelfBook); } } }; alert.Show(); }; menuViewController = new UIPopoverController(pmc); menuViewController.DidDismiss += (object sender, EventArgs e) => { HideMenuPopover(); }; menuViewController.SetPopoverContentSize(new CGSize(pmc.View.Frame.Width, pmc.View.Frame.Height), true); menuViewController.PresentFromRect(bookView.Frame, bookView, UIPopoverArrowDirection.Any, true); }
public PopoverMenuDataSource(PopoverMenuController parent) { this.parent = parent; }