kodi
DialogGameSaves.h
1 /*
2  * Copyright (C) 2020-2021 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 "guilib/GUIDialog.h"
12 
13 #include <memory>
14 #include <string>
15 
16 class CFileItem;
17 class CFileItemList;
18 class CGUIMessage;
19 class CGUIViewControl;
20 
21 namespace KODI
22 {
23 namespace GAME
24 {
29 {
30 public:
32  ~CDialogGameSaves() override = default;
33 
34  // implementation of CGUIControl via CGUIDialog
35  bool OnMessage(CGUIMessage& message) override;
36 
37  // implementation of CGUIWindow via CGUIDialog
38  void FrameMove() override;
39 
40  // Player interface
41  void Reset();
42  bool Open(const std::string& gamePath);
43  bool IsConfirmed() const { return m_bConfirmed; }
44  bool IsNewPressed() const { return m_bNewPressed; }
45  std::string GetSelectedItemPath();
46 
47 protected:
48  // implementation of CGUIWIndow via CGUIDialog
49  void OnInitWindow() override;
50  void OnDeinitWindow(int nextWindowID) override;
51  void OnWindowLoaded() override;
52  void OnWindowUnload() override;
53 
54 private:
55  using CGUIControl::OnFocus;
56 
60  void SetItems(const CFileItemList& itemList);
61 
65  void OnSelect(const CFileItem& item);
66 
70  void OnFocus(const CFileItem& item);
71 
75  void OnFocusLost();
76 
80  void OnContextMenu(CFileItem& item);
81 
85  void OnRename(CFileItem& item);
86 
90  void OnDelete(CFileItem& item);
91 
95  void HandleCaption(const std::string& caption);
96 
100  void HandleGameClient(const std::string& gameClientId);
101 
102  // Dialog parameters
103  std::unique_ptr<CGUIViewControl> m_viewControl;
104  std::unique_ptr<CFileItemList> m_vecList;
105  std::shared_ptr<CFileItem> m_selectedItem;
106 
107  // Player parameters
108  bool m_bConfirmed{false};
109  bool m_bNewPressed{false};
110 
111  // State parameters
112  std::string m_currentCaption;
113  std::string m_currentGameClient;
114 };
115 } // namespace GAME
116 } // namespace KODI
void OnInitWindow() override
Called on window open.
Definition: DialogGameSaves.cpp:206
Definition: GUIViewControl.h:19
void FrameMove() override
Main update function, called every frame prior to rendering Any window that requires updating on a fr...
Definition: DialogGameSaves.cpp:182
Definition: DialogGameSaves.h:28
Represents a list of files.
Definition: FileItem.h:702
Definition: GUIDialog.h:35
Definition: AudioDecoder.h:18
Definition: GUIMessage.h:365
Represents a file on a share.
Definition: FileItem.h:102