コード例 #1
0
 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);
         }
     }
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
                    }
                }
            }
        }
コード例 #4
0
 public void OnJumpToBookmark(BookmarkSubItem subItem)
 {
     JumpToPlaylistSubItem(subItem);
 }