private void lvBookmarks_MouseDoubleClick(object sender, MouseEventArgs e) { if (lvBookmarks.SelectedItems.Count > 0) { Bookmark bmk = lvBookmarks.SelectedItems[0].Tag as Bookmark; if (bmk != null) { BookmarkSubItem subItem = new BookmarkSubItem(_plItem, bmk); EventDispatch.DispatchEvent(LocalEventNames.JumpToBookmark, subItem); } } }
private Dictionary <PlaylistSubItem, List <PlaylistSubItem> > CreateBookmarksSubmenu() { Dictionary <PlaylistSubItem, List <PlaylistSubItem> > submenu = new Dictionary <PlaylistSubItem, List <PlaylistSubItem> >(); PlaylistSubItem title = new BookmarkSubItem(this, Translator.Translate("TXT_BOOKMARKS")); List <PlaylistSubItem> bookmarks = new List <PlaylistSubItem>(); if (mi.Bookmarks != null && mi.Bookmarks.Count > 0) { foreach (Bookmark bmk in mi.Bookmarks.Values) { BookmarkSubItem bmkSubItem = new BookmarkSubItem(this, bmk); bookmarks.Add(bmkSubItem); } } submenu.Add(title, bookmarks); return(submenu); }
public void AttachPlaylistItemMenu(PlaylistItem plItem, MenuWrapper <T> menu, MenuType menuType, EventHandler clickHandler) { if (menuType != MenuType.Playlist) { AttachCommonPlaylistToolsMenu(menu, menuType, clickHandler, plItem); } MenuWrapper <T> menuToAlter = menu; if (menuType == MenuType.Playlist) { OPMToolStripMenuItem item = new OPMToolStripMenuItem(plItem.DisplayName); item.Tag = plItem; item.Click += clickHandler; item.Checked = _pnlPlaylist.IsActiveItem(plItem); menu.AddSingleEntry(item); menuToAlter = new MenuWrapper <OPMToolStripMenuItem>(item) as MenuWrapper <T>; } if (plItem != null && menuType != MenuType.MultipleItems) { // It may have subitems: // * a DVD item will have titles, chapters, etc ... // * other media files may have bookmarks ... Dictionary <PlaylistSubItem, List <PlaylistSubItem> > submenu = plItem.GetSubmenu(); if (submenu != null && submenu.Count >= 1) { if (menuType == MenuType.SingleItem) { menuToAlter.AddSingleEntry(new OPMMenuStripSeparator()); } foreach (KeyValuePair <PlaylistSubItem, List <PlaylistSubItem> > subitems in submenu) { OPMToolStripMenuItem subItem = new OPMToolStripMenuItem(subitems.Key.Name); subItem.Click += clickHandler; subItem.Tag = subitems.Key; if (subitems.Value != null) { foreach (PlaylistSubItem ssitem in subitems.Value) { OPMToolStripMenuItem subSubItem = null; if (ssitem is DvdSubItem) { subSubItem = new OPMToolStripMenuItem(ssitem.Name); subSubItem.Click += clickHandler; subSubItem.Tag = ssitem; DvdSubItem si = ssitem as DvdSubItem; DvdRenderingStartHint hint = (si != null) ? si.StartHint as DvdRenderingStartHint : null; if (hint != null && hint.IsSubtitleHint) { subSubItem.Checked = (hint.SID == MediaRenderer.DefaultInstance.SubtitleStream); } } else if (ssitem is BookmarkSubItem) { BookmarkSubItem bsi = (ssitem as BookmarkSubItem); BookmarkStartHint hint = (bsi != null) ? bsi.StartHint as BookmarkStartHint : new BookmarkStartHint(Bookmark.Empty); string name = string.Format("{0} - '{1}'", hint.Bookmark.PlaybackTime, bsi.Name); subSubItem = new OPMToolStripMenuItem(name); subSubItem.Click += clickHandler; subSubItem.Tag = ssitem; } if (subSubItem != null) { subItem.DropDownItems.Add(subSubItem); } } } menuToAlter.AddSingleEntry(subItem); } } if (menuType == MenuType.SingleItem) { if (plItem is DvdPlaylistItem) { AttachDvdMenuItems(plItem as DvdPlaylistItem, menuToAlter, clickHandler); } else { AttachFileMenuItems(plItem as PlaylistItem, menuToAlter, clickHandler); } } } }
public void OnJumpToBookmark(BookmarkSubItem subItem) { JumpToPlaylistSubItem(subItem); }