Kodi Development 19.0
for Binary and Script based Add-Ons
ExtendedProgress.h
1/*
2 * Copyright (C) 2005-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 "../../AddonBase.h"
12#include "../../c-api/gui/dialogs/extended_progress.h"
13
14#ifdef __cplusplus
15
16namespace kodi
17{
18namespace gui
19{
20namespace dialogs
21{
22
23//==============================================================================
58class ATTRIBUTE_HIDDEN CExtendedProgress
59{
60public:
61 //============================================================================
67 explicit CExtendedProgress(const std::string& title = "")
68 {
69 using namespace ::kodi::addon;
70 m_DialogHandle = CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->new_dialog(
71 CAddonBase::m_interface->toKodi->kodiBase, title.c_str());
72 if (!m_DialogHandle)
74 "kodi::gui::CDialogExtendedProgress can't create window class from Kodi !!!");
75 }
76 //----------------------------------------------------------------------------
77
78 //============================================================================
83 {
84 using namespace ::kodi::addon;
85 if (m_DialogHandle)
86 CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->delete_dialog(
87 CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle);
88 }
89 //----------------------------------------------------------------------------
90
91 //============================================================================
97 std::string Title() const
98 {
99 using namespace ::kodi::addon;
100 std::string text;
101 char* strMsg = CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->get_title(
102 CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle);
103 if (strMsg != nullptr)
104 {
105 if (std::strlen(strMsg))
106 text = strMsg;
107 CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase,
108 strMsg);
109 }
110 return text;
111 }
112 //----------------------------------------------------------------------------
113
114 //============================================================================
120 void SetTitle(const std::string& title)
121 {
122 using namespace ::kodi::addon;
123 CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->set_title(
124 CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle, title.c_str());
125 }
126 //----------------------------------------------------------------------------
127
128 //============================================================================
134 std::string Text() const
135 {
136 using namespace ::kodi::addon;
137 std::string text;
138 char* strMsg = CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->get_text(
139 CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle);
140 if (strMsg != nullptr)
141 {
142 if (std::strlen(strMsg))
143 text = strMsg;
144 CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase,
145 strMsg);
146 }
147 return text;
148 }
149 //----------------------------------------------------------------------------
150
151 //============================================================================
157 void SetText(const std::string& text)
158 {
159 using namespace ::kodi::addon;
160 CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->set_text(
161 CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle, text.c_str());
162 }
163 //----------------------------------------------------------------------------
164
165 //============================================================================
171 bool IsFinished() const
172 {
173 using namespace ::kodi::addon;
174 return CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->is_finished(
175 CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle);
176 }
177 //----------------------------------------------------------------------------
178
179 //============================================================================
184 {
185 using namespace ::kodi::addon;
186 CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->mark_finished(
187 CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle);
188 }
189 //----------------------------------------------------------------------------
190
191 //============================================================================
197 float Percentage() const
198 {
199 using namespace ::kodi::addon;
200 return CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->get_percentage(
201 CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle);
202 }
203 //----------------------------------------------------------------------------
204
205 //============================================================================
211 void SetPercentage(float percentage)
212 {
213 using namespace ::kodi::addon;
214 CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->set_percentage(
215 CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle, percentage);
216 }
217 //----------------------------------------------------------------------------
218
219 //============================================================================
226 void SetProgress(int currentItem, int itemCount)
227 {
228 using namespace ::kodi::addon;
229 CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->set_progress(
230 CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle, currentItem, itemCount);
231 }
232 //----------------------------------------------------------------------------
233
234private:
235 KODI_GUI_HANDLE m_DialogHandle;
236};
237
238} /* namespace dialogs */
239} /* namespace gui */
240} /* namespace kodi */
241
242#endif /* __cplusplus */
Definition: ExtendedProgress.h:59
@ ADDON_LOG_FATAL
4 : To notify fatal unrecoverable errors, which can may also indicate upcoming crashes.
Definition: addon_base.h:164
CExtendedProgress(const std::string &title="")
Definition: ExtendedProgress.h:67
void MarkFinished()
Mark progress finished.
Definition: ExtendedProgress.h:183
void SetTitle(const std::string &title)
To set the title of dialog.
Definition: ExtendedProgress.h:120
void SetPercentage(float percentage)
To set the current progress position as percent.
Definition: ExtendedProgress.h:211
std::string Title() const
Get the used title.
Definition: ExtendedProgress.h:97
void SetText(const std::string &text)
To set the used text information string.
Definition: ExtendedProgress.h:157
std::string Text() const
Get the used text information string.
Definition: ExtendedProgress.h:134
~CExtendedProgress()
Definition: ExtendedProgress.h:82
void SetProgress(int currentItem, int itemCount)
To set progress position with predefined places.
Definition: ExtendedProgress.h:226
float Percentage() const
Get the current progress position as percent.
Definition: ExtendedProgress.h:197
bool IsFinished() const
To ask dialog is finished.
Definition: ExtendedProgress.h:171
void ATTRIBUTE_HIDDEN Log(const AddonLog loglevel, const char *format,...)
Add a message to Kodi's log.
Definition: AddonBase.h:749