kodi
ContextMenus.h
1 /*
2  * Copyright (C) 2016-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "ContextMenuItem.h"
12 
13 #include <memory>
14 
15 class CFileItemList;
16 
17 namespace CONTEXTMENU
18 {
19 
21 {
22 public:
23  explicit CFavouriteContextMenuAction(uint32_t label) : CStaticContextMenuAction(label) {}
24  bool IsVisible(const CFileItem& item) const override;
25  bool Execute(const std::shared_ptr<CFileItem>& item) const override;
26 
27 protected:
28  ~CFavouriteContextMenuAction() override = default;
29  virtual bool DoExecute(CFileItemList& items, const std::shared_ptr<CFileItem>& item) const = 0;
30 };
31 
33 {
34 public:
35  CMoveUpFavourite() : CFavouriteContextMenuAction(13332) {} // Move up
36  bool IsVisible(const CFileItem& item) const override;
37 
38 protected:
39  bool DoExecute(CFileItemList& items, const std::shared_ptr<CFileItem>& item) const override;
40 };
41 
43 {
44 public:
45  CMoveDownFavourite() : CFavouriteContextMenuAction(13333) {} // Move down
46  bool IsVisible(const CFileItem& item) const override;
47 
48 protected:
49  bool DoExecute(CFileItemList& items, const std::shared_ptr<CFileItem>& item) const override;
50 };
51 
53 {
54 public:
55  CRemoveFavourite() : CFavouriteContextMenuAction(15015) {} // Remove
56 protected:
57  bool DoExecute(CFileItemList& items, const std::shared_ptr<CFileItem>& item) const override;
58 };
59 
61 {
62 public:
63  CRenameFavourite() : CFavouriteContextMenuAction(118) {} // Rename
64 protected:
65  bool DoExecute(CFileItemList& items, const std::shared_ptr<CFileItem>& item) const override;
66 };
67 
69 {
70 public:
71  CChooseThumbnailForFavourite() : CFavouriteContextMenuAction(20019) {} // Choose thumbnail
72 protected:
73  bool DoExecute(CFileItemList& items, const std::shared_ptr<CFileItem>& item) const override;
74 };
75 
77 {
78 public:
79  explicit CFavouritesTargetBrowse() : CStaticContextMenuAction(37015) {} // Browse into
80  bool IsVisible(const CFileItem& item) const override;
81  bool Execute(const std::shared_ptr<CFileItem>& item) const override;
82 };
83 
85 {
86 public:
87  std::string GetLabel(const CFileItem& item) const override;
88  bool IsVisible(const CFileItem& item) const override;
89  bool Execute(const std::shared_ptr<CFileItem>& item) const override;
90 };
91 
93 {
94 public:
95  std::string GetLabel(const CFileItem& item) const override;
96  bool IsVisible(const CFileItem& item) const override;
97  bool Execute(const std::shared_ptr<CFileItem>& item) const override;
98 };
99 
101 {
102 public:
103  explicit CFavouritesTargetInfo() : CStaticContextMenuAction(19033) {} // Information
104  bool IsVisible(const CFileItem& item) const override;
105  bool Execute(const std::shared_ptr<CFileItem>& item) const override;
106 };
107 
109 {
110 public:
111  explicit CFavouritesTargetContextMenu() : CStaticContextMenuAction(22082) {} // More...
112  bool IsVisible(const CFileItem& item) const override;
113  bool Execute(const std::shared_ptr<CFileItem>& item) const override;
114 };
115 
116 } // namespace CONTEXTMENU
Definition: ContextMenus.h:76
Definition: ContextMenus.h:52
Definition: ContextMenus.h:68
Definition: ContextMenus.cpp:21
Represents a list of files.
Definition: FileItem.h:702
Definition: ContextMenus.h:20
Definition: ContextMenus.h:42
Definition: ContextMenus.h:32
Definition: ContextMenuItem.h:28
Definition: ContextMenus.h:92
Definition: ContextMenus.h:84
Definition: ContextMenuItem.h:40
Definition: ContextMenus.h:60
Definition: ContextMenus.h:108
Definition: ContextMenus.h:100
Represents a file on a share.
Definition: FileItem.h:102