[video] fix selection after changing video or extra art
[xbmc.git] / xbmc / video / ContextMenus.h
blob1fced797f02bd354a2d91728aea7a7deac9b0469
1 /*
2 * Copyright (C) 2016-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #pragma once
11 #include "ContextMenuItem.h"
12 #include "VideoLibraryQueue.h"
13 #include "media/MediaType.h"
15 #include <memory>
17 namespace CONTEXTMENU
20 class CVideoInfo : public CStaticContextMenuAction
22 public:
23 explicit CVideoInfo(MediaType mediaType);
24 bool IsVisible(const CFileItem& item) const override;
25 bool Execute(const std::shared_ptr<CFileItem>& item) const override;
27 private:
28 const MediaType m_mediaType;
31 struct CTVShowInfo : CVideoInfo
33 CTVShowInfo() : CVideoInfo(MediaTypeTvShow) {}
36 struct CSeasonInfo : CVideoInfo
38 CSeasonInfo() : CVideoInfo(MediaTypeSeason) {}
41 struct CEpisodeInfo : CVideoInfo
43 CEpisodeInfo() : CVideoInfo(MediaTypeEpisode) {}
46 struct CMusicVideoInfo : CVideoInfo
48 CMusicVideoInfo() : CVideoInfo(MediaTypeMusicVideo) {}
51 struct CMovieInfo : CVideoInfo
53 CMovieInfo() : CVideoInfo(MediaTypeMovie) {}
56 struct CMovieSetInfo : CVideoInfo
58 CMovieSetInfo() : CVideoInfo(MediaTypeVideoCollection) {}
61 struct CVideoRemoveResumePoint : CStaticContextMenuAction
63 CVideoRemoveResumePoint() : CStaticContextMenuAction(38209) {}
64 bool IsVisible(const CFileItem& item) const override;
65 bool Execute(const std::shared_ptr<CFileItem>& item) const override;
68 struct CVideoMarkWatched : CStaticContextMenuAction
70 CVideoMarkWatched() : CStaticContextMenuAction(16103) {}
71 bool IsVisible(const CFileItem& item) const override;
72 bool Execute(const std::shared_ptr<CFileItem>& item) const override;
75 struct CVideoMarkUnWatched : CStaticContextMenuAction
77 CVideoMarkUnWatched() : CStaticContextMenuAction(16104) {}
78 bool IsVisible(const CFileItem& item) const override;
79 bool Execute(const std::shared_ptr<CFileItem>& item) const override;
82 struct CVideoBrowse : CStaticContextMenuAction
84 CVideoBrowse() : CStaticContextMenuAction(37015) {} // Browse into
85 bool IsVisible(const CFileItem& item) const override;
86 bool Execute(const std::shared_ptr<CFileItem>& item) const override;
89 struct CVideoChooseVersion : CStaticContextMenuAction
91 CVideoChooseVersion() : CStaticContextMenuAction(40221) {} // Choose version
92 bool IsVisible(const CFileItem& item) const override;
93 bool Execute(const std::shared_ptr<CFileItem>& item) const override;
96 struct CVideoPlayVersionUsing : CStaticContextMenuAction
98 CVideoPlayVersionUsing() : CStaticContextMenuAction(40209) {} // Play version using...
99 bool IsVisible(const CFileItem& item) const override;
100 bool Execute(const std::shared_ptr<CFileItem>& _item) const override;
103 struct CVideoResume : IContextMenuItem
105 std::string GetLabel(const CFileItem& item) const override;
106 bool IsVisible(const CFileItem& item) const override;
107 bool Execute(const std::shared_ptr<CFileItem>& _item) const override;
110 struct CVideoPlay : IContextMenuItem
112 std::string GetLabel(const CFileItem& item) const override;
113 bool IsVisible(const CFileItem& item) const override;
114 bool Execute(const std::shared_ptr<CFileItem>& _item) const override;
117 struct CVideoPlayUsing : CStaticContextMenuAction
119 CVideoPlayUsing() : CStaticContextMenuAction(15213) {} // Play using...
120 bool IsVisible(const CFileItem& item) const override;
121 bool Execute(const std::shared_ptr<CFileItem>& _item) const override;
124 struct CVideoQueue : CStaticContextMenuAction
126 CVideoQueue() : CStaticContextMenuAction(13347) {} // Queue item
127 bool IsVisible(const CFileItem& item) const override;
128 bool Execute(const std::shared_ptr<CFileItem>& item) const override;
131 struct CVideoPlayNext : CStaticContextMenuAction
133 CVideoPlayNext() : CStaticContextMenuAction(10008) {} // Play next
134 bool IsVisible(const CFileItem& item) const override;
135 bool Execute(const std::shared_ptr<CFileItem>& item) const override;
138 struct CVideoPlayAndQueue : IContextMenuItem
140 std::string GetLabel(const CFileItem& item) const override;
141 bool IsVisible(const CFileItem& item) const override;
142 bool Execute(const std::shared_ptr<CFileItem>& item) const override;