From be933ef2241d79558f91796cc5b3a161f72ebf9c Mon Sep 17 00:00:00 2001 From: manuel Date: Mon, 19 Oct 2020 00:52:24 +0200 Subject: sync with upstream --- .../include/kodi/gui/dialogs/CMakeLists.txt | 14 - .../include/kodi/gui/dialogs/ContextMenu.h | 185 --------- .../include/kodi/gui/dialogs/ExtendedProgress.h | 250 ------------ .../include/kodi/gui/dialogs/FileBrowser.h | 310 --------------- .../include/kodi/gui/dialogs/Keyboard.h | 422 --------------------- .../include/kodi/gui/dialogs/Numeric.h | 362 ------------------ .../include/kodi/gui/dialogs/OK.h | 99 ----- .../include/kodi/gui/dialogs/Progress.h | 255 ------------- .../include/kodi/gui/dialogs/Select.h | 269 ------------- .../include/kodi/gui/dialogs/TextViewer.h | 108 ------ .../include/kodi/gui/dialogs/YesNo.h | 188 --------- 11 files changed, 2462 deletions(-) delete mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/CMakeLists.txt delete mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/ContextMenu.h delete mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/ExtendedProgress.h delete mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/FileBrowser.h delete mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Keyboard.h delete mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Numeric.h delete mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/OK.h delete mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Progress.h delete mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Select.h delete mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/TextViewer.h delete mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/YesNo.h (limited to 'xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs') diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/CMakeLists.txt b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/CMakeLists.txt deleted file mode 100644 index 7227343..0000000 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -set(HEADERS ContextMenu.h - ExtendedProgress.h - FileBrowser.h - Keyboard.h - Numeric.h - OK.h - Progress.h - Select.h - TextViewer.h - YesNo.h) - -if(NOT ENABLE_STATIC_LIBS) - core_add_library(addons_kodi-addon-dev-kit_include_kodi_gui_dialogs) -endif() diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/ContextMenu.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/ContextMenu.h deleted file mode 100644 index d545030..0000000 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/ContextMenu.h +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright (C) 2005-2018 Team Kodi - * This file is part of Kodi - https://kodi.tv - * - * SPDX-License-Identifier: GPL-2.0-or-later - * See LICENSES/README.md for more information. - */ - -#pragma once - -#include "../definitions.h" -#include "../../AddonBase.h" - -namespace kodi -{ -namespace gui -{ -namespace dialogs -{ - - //============================================================================ - /// - /// \defgroup cpp_kodi_gui_dialogs_ContextMenu Dialog Context Menu - /// \ingroup cpp_kodi_gui - /// @brief \cpp_namespace{ kodi::gui::dialogs::ContextMenu } - /// **Context menu dialog** - /// - /// The function listed below permits the call of a dialogue as context menu to - /// select of an entry as a key - /// - /// It has the header \ref ContextMenu.h "#include " - /// be included to enjoy it. - /// - /// - namespace ContextMenu - { - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_ContextMenu - /// @brief Show a context menu dialog about given parts. - /// - /// @param[in] heading Dialog heading name - /// @param[in] entries String list about entries - /// @return The selected entry, if return -1 was nothing selected or canceled - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include - /// - /// const std::vector entries - /// { - /// "Test 1", - /// "Test 2", - /// "Test 3", - /// "Test 4", - /// "Test 5" - /// }; - /// - /// int selected = kodi::gui::dialogs::ContextMenu::Show("Test selection", entries); - /// if (selected < 0) - /// fprintf(stderr, "Item selection canceled\n"); - /// else - /// fprintf(stderr, "Selected item is: %i\n", selected); - /// ~~~~~~~~~~~~~ - /// - inline int ATTRIBUTE_HIDDEN Show(const std::string& heading, - const std::vector& entries) - { - using namespace ::kodi::addon; - unsigned int size = static_cast(entries.size()); - const char** cEntries = static_cast(malloc(size * sizeof(const char**))); - for (unsigned int i = 0; i < size; ++i) - { - cEntries[i] = entries[i].c_str(); - } - int ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogContextMenu->open( - CAddonBase::m_interface->toKodi->kodiBase, heading.c_str(), cEntries, size); - free(cEntries); - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_ContextMenu - /// @brief Show a context menu dialog about given parts. - /// - /// @param[in] heading Dialog heading name - /// @param[in] entries String list about entries - /// @return The selected entry, if return -1 was nothing selected or canceled - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include - /// - /// const std::vector> entries - /// { - /// { "ID 1", "Test 1" }, - /// { "ID 2", "Test 2" }, - /// { "ID 3", "Test 3" }, - /// { "ID 4", "Test 4" }, - /// { "ID 5", "Test 5" } - /// }; - /// - /// int selected = kodi::gui::dialogs::ContextMenu::Show("Test selection", entries); - /// if (selected < 0) - /// fprintf(stderr, "Item selection canceled\n"); - /// else - /// fprintf(stderr, "Selected item is: %i\n", selected); - /// ~~~~~~~~~~~~~ - /// - inline int ATTRIBUTE_HIDDEN Show( - const std::string& heading, const std::vector>& entries) - { - using namespace ::kodi::addon; - unsigned int size = static_cast(entries.size()); - const char** cEntries = static_cast(malloc(size*sizeof(const char**))); - for (unsigned int i = 0; i < size; ++i) - { - cEntries[i] = entries[i].second.c_str(); - } - int ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogContextMenu->open(CAddonBase::m_interface->toKodi->kodiBase, heading.c_str(), cEntries, size); - free(cEntries); - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_ContextMenu - /// @brief Show a context menu dialog about given parts. - /// - /// @param[in] heading Dialog heading name - /// @param[in] entries String list about entries - /// @return The selected entry, if return -1 was nothing selected or canceled - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include - /// - /// const std::vector> entries - /// { - /// { 1, "Test 1" }, - /// { 2, "Test 2" }, - /// { 3, "Test 3" }, - /// { 4, "Test 4" }, - /// { 5, "Test 5" } - /// }; - /// - /// int selected = kodi::gui::dialogs::ContextMenu::Show("Test selection", entries); - /// if (selected < 0) - /// fprintf(stderr, "Item selection canceled\n"); - /// else - /// fprintf(stderr, "Selected item is: %i\n", selected); - /// ~~~~~~~~~~~~~ - /// - inline int ATTRIBUTE_HIDDEN Show(const std::string& heading, - const std::vector>& entries) - { - using namespace ::kodi::addon; - unsigned int size = static_cast(entries.size()); - const char** cEntries = static_cast(malloc(size*sizeof(const char**))); - for (unsigned int i = 0; i < size; ++i) - { - cEntries[i] = entries[i].second.c_str(); - } - int ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogContextMenu->open(CAddonBase::m_interface->toKodi->kodiBase, heading.c_str(), cEntries, size); - free(cEntries); - return ret; - } - //-------------------------------------------------------------------------- - }; - -} /* namespace dialogs */ -} /* namespace gui */ -} /* namespace kodi */ diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/ExtendedProgress.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/ExtendedProgress.h deleted file mode 100644 index 5a49b70..0000000 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/ExtendedProgress.h +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Copyright (C) 2005-2018 Team Kodi - * This file is part of Kodi - https://kodi.tv - * - * SPDX-License-Identifier: GPL-2.0-or-later - * See LICENSES/README.md for more information. - */ - -#pragma once - -#include "../definitions.h" -#include "../../AddonBase.h" - -namespace kodi -{ -namespace gui -{ -namespace dialogs -{ - -//============================================================================ -/// -/// \defgroup cpp_kodi_gui_dialogs_CExtendedProgress Dialog Extended Progress -/// \ingroup cpp_kodi_gui -/// @brief \cpp_class{ kodi::gui::dialogs::ExtendedProgress } -/// **Progress dialog shown for background work** -/// -/// The with \ref ExtendedProgress.h "#include " -/// given class are basically used to create Kodi's extended progress. -/// -/// -/// -------------------------------------------------------------------------- -/// -/// **Example:** -/// ~~~~~~~~~~~~~{.cpp} -/// #include -/// -/// kodi::gui::dialogs::CExtendedProgress *ext_progress = new kodi::gui::dialogs::CExtendedProgress("Test Extended progress"); -/// ext_progress->SetText("Test progress"); -/// for (unsigned int i = 0; i < 50; i += 10) -/// { -/// ext_progress->SetProgress(i, 100); -/// sleep(1); -/// } -/// -/// ext_progress->SetTitle("Test Extended progress - Second round"); -/// ext_progress->SetText("Test progress - Step 2"); -/// -/// for (unsigned int i = 50; i < 100; i += 10) -/// { -/// ext_progress->SetProgress(i, 100); -/// sleep(1); -/// } -/// delete ext_progress; -/// ~~~~~~~~~~~~~ -/// -class ATTRIBUTE_HIDDEN CExtendedProgress -{ -public: - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CExtendedProgress - /// Construct a new dialog - /// - /// @param[in] title Title string - /// - explicit CExtendedProgress(const std::string& title = "") - { - using namespace ::kodi::addon; - m_DialogHandle = CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->new_dialog( - CAddonBase::m_interface->toKodi->kodiBase, title.c_str()); - if (!m_DialogHandle) - kodi::Log(ADDON_LOG_FATAL, - "kodi::gui::CDialogExtendedProgress can't create window class from Kodi !!!"); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CExtendedProgress - /// Destructor - /// - ~CExtendedProgress() - { - using namespace ::kodi::addon; - if (m_DialogHandle) - CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->delete_dialog( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CExtendedProgress - /// @brief Get the used title - /// - /// @return Title string - /// - std::string Title() const - { - using namespace ::kodi::addon; - std::string text; - char* strMsg = CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->get_title( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle); - if (strMsg != nullptr) - { - if (std::strlen(strMsg)) - text = strMsg; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, - strMsg); - } - return text; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CExtendedProgress - /// @brief To set the title of dialog - /// - /// @param[in] title Title string - /// - void SetTitle(const std::string& title) - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->set_title( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle, title.c_str()); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CExtendedProgress - /// @brief Get the used text information string - /// - /// @return Text string - /// - std::string Text() const - { - using namespace ::kodi::addon; - std::string text; - char* strMsg = CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->get_text( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle); - if (strMsg != nullptr) - { - if (std::strlen(strMsg)) - text = strMsg; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, - strMsg); - } - return text; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CExtendedProgress - /// @brief To set the used text information string - /// - /// @param[in] text information text to set - /// - void SetText(const std::string& text) - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->set_text( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle, text.c_str()); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CExtendedProgress - /// @brief To ask dialog is finished - /// - /// @return True if on end - /// - bool IsFinished() const - { - using namespace ::kodi::addon; - return CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->is_finished( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CExtendedProgress - /// @brief Mark progress finished - /// - void MarkFinished() - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->mark_finished( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CExtendedProgress - /// @brief Get the current progress position as percent - /// - /// @return Position - /// - float Percentage() const - { - using namespace ::kodi::addon; - return CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->get_percentage( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CExtendedProgress - /// @brief To set the current progress position as percent - /// - /// @param[in] percentage Position to use from 0.0 to 100.0 - /// - void SetPercentage(float percentage) - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->set_percentage( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle, percentage); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CExtendedProgress - /// @brief To set progress position with predefined places - /// - /// @param[in] currentItem Place position to use - /// @param[in] itemCount Amount of used places - /// - void SetProgress(int currentItem, int itemCount) - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogExtendedProgress->set_progress( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle, currentItem, itemCount); - } - //-------------------------------------------------------------------------- - -private: - void* m_DialogHandle; -}; - -} /* namespace dialogs */ -} /* namespace gui */ -} /* namespace kodi */ diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/FileBrowser.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/FileBrowser.h deleted file mode 100644 index 90da063..0000000 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/FileBrowser.h +++ /dev/null @@ -1,310 +0,0 @@ -/* - * Copyright (C) 2005-2018 Team Kodi - * This file is part of Kodi - https://kodi.tv - * - * SPDX-License-Identifier: GPL-2.0-or-later - * See LICENSES/README.md for more information. - */ - -#pragma once - -#include "../definitions.h" -#include "../../AddonBase.h" - -namespace kodi -{ -namespace gui -{ -namespace dialogs -{ - - //============================================================================ - /// - /// \defgroup cpp_kodi_gui_dialogs_FileBrowser Dialog File Browser - /// \ingroup cpp_kodi_gui - /// @brief \cpp_namespace{ kodi::gui::dialogs::FileBrowser } - /// **File browser dialog** - /// - /// The functions listed below of the class "FileBrowser" offer - /// the possibility to select to a file by the user of the add-on. - /// - /// It allows all the options that are possible in Kodi itself and offers all - /// support file types. - /// - /// It has the header \ref FileBrowser.h "#include " - /// be included to enjoy it. - /// - namespace FileBrowser - { - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_FileBrowser - /// @brief Directory selection dialog - /// - /// @param[in] shares With Shares becomes the available start folders - /// be set. - /// @param[in] heading Dialog header name - /// @param[in,out] path As in the path to start and return value about - /// selected directory - /// @param[in] writeOnly If set only writeable folders are shown. - /// @return False if selection becomes canceled. - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include - /// - /// /* - /// * Example show directory selection dialog with on 'share' (first value) - /// * defined directory types. - /// * - /// * If this becomes leaved empty and 'directory' is empty goes it to the - /// * base path of the hard disk. - /// * - /// * Also can be with path written to 'directory' before the dialog forced - /// * to a start place. - /// */ - /// std::string directory; - /// bool ret = kodi::gui::dialogs::FileBrowser::ShowAndGetDirectory("local|network|removable", - /// "Test directory selection", - /// directory, - /// false); - /// fprintf(stderr, "Selected directory is : %s and was %s\n", directory.c_str(), ret ? "OK" : "Canceled"); - /// ~~~~~~~~~~~~~ - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetDirectory(const std::string& shares, - const std::string& heading, - std::string& path, - bool writeOnly = false) - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogFileBrowser->show_and_get_directory( - CAddonBase::m_interface->toKodi->kodiBase, shares.c_str(), heading.c_str(), path.c_str(), - &retString, writeOnly); - if (retString != nullptr) - { - if (std::strlen(retString)) - path = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, - retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_FileBrowser - /// @brief File selection dialog - /// - /// @param[in] shares With Shares becomes the available start - /// folders be set. - /// @param[in] mask The mask to filter visible files, e.g. - /// ".m3u|.pls|.b4s|.wpl". - /// @param[in] heading Dialog header name - /// @param[in,out] path As in the path to start and Return value - /// about selected file - /// @param[in] useThumbs If set show thumbs if possible on dialog. - /// @param[in] useFileDirectories If set also packages (e.g. *.zip) are - /// handled as directories. - /// @return False if selection becomes canceled. - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetFile(const std::string& shares, - const std::string& mask, - const std::string& heading, - std::string& path, - bool useThumbs = false, - bool useFileDirectories = false) - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogFileBrowser->show_and_get_file(CAddonBase::m_interface->toKodi->kodiBase, - shares.c_str(), mask.c_str(), heading.c_str(), path.c_str(), &retString, - useThumbs, useFileDirectories); - if (retString != nullptr) - { - if (std::strlen(retString)) - path = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_FileBrowser - /// @brief File selection from a directory - /// - /// @param[in] directory The directory name where the dialog - /// start, possible are normal names and - /// kodi's special names. - /// @param[in] mask The mask to filter visible files, e.g. - /// ".m3u|.pls|.b4s|.wpl". - /// @param[in] heading Dialog header name - /// @param[in,out] path As in the path to start and Return value - /// about selected file - /// @param[in] useThumbs If set show thumbs if possible on dialog. - /// @param[in] useFileDirectories If set also packages (e.g. *.zip) are - /// handled as directories. - /// @param[in] singleList - /// @return False if selection becomes canceled. - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetFileFromDir(const std::string& directory, - const std::string& mask, - const std::string& heading, - std::string& path, - bool useThumbs = false, - bool useFileDirectories = false, - bool singleList = false) - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogFileBrowser->show_and_get_file_from_dir(CAddonBase::m_interface->toKodi->kodiBase, - directory.c_str(), mask.c_str(), heading.c_str(), - path.c_str(), &retString, useThumbs, - useFileDirectories, singleList); - if (retString != nullptr) - { - if (std::strlen(retString)) - path = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_FileBrowser - /// @brief File selection dialog to get several in to a list - /// - /// @param[in] shares With Shares becomes the available start - /// folders be set. - /// @param[in] mask The mask to filter visible files, e.g. - /// ".m3u|.pls|.b4s|.wpl". - /// @param[in] heading Dialog header name - /// @param[out] fileList Return value about selected files - /// @param[in] useThumbs If set show thumbs if possible on dialog. - /// @param[in] useFileDirectories If set also packages (e.g. *.zip) are - /// handled as directories. - /// @return False if selection becomes canceled. - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetFileList(const std::string& shares, - const std::string& mask, - const std::string& heading, - std::vector& fileList, - bool useThumbs = false, - bool useFileDirectories = false) - { - using namespace ::kodi::addon; - char** list = nullptr; - unsigned int listSize = 0; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogFileBrowser->show_and_get_file_list(CAddonBase::m_interface->toKodi->kodiBase, - shares.c_str(), mask.c_str(), heading.c_str(), &list, &listSize, - useThumbs, useFileDirectories); - if (ret) - { - for (unsigned int i = 0; i < listSize; ++i) - fileList.emplace_back(list[i]); - CAddonBase::m_interface->toKodi->kodi_gui->dialogFileBrowser->clear_file_list(CAddonBase::m_interface->toKodi->kodiBase, &list, listSize); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_FileBrowser - /// @brief Source selection dialog - /// - /// @param[in,out] path As in the path to start and Return value - /// about selected source - /// @param[in] allowNetworkShares Allow also access to network - /// @param[in] additionalShare With additionalShare becomes the available - /// start folders be set (optional). - /// @param[in] type - /// @return False if selection becomes canceled. - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetSource(std::string& path, - bool allowNetworkShares, - const std::string& additionalShare = "", - const std::string& type = "") - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogFileBrowser->show_and_get_source(CAddonBase::m_interface->toKodi->kodiBase, path.c_str(), &retString, - allowNetworkShares, additionalShare.c_str(), type.c_str()); - if (retString != nullptr) - { - if (std::strlen(retString)) - path = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_FileBrowser - /// @brief Image selection dialog - /// - /// @param[in] shares With Shares becomes the available start folders be - /// set. - /// @param[in] heading Dialog header name - /// @param[out] path Return value about selected image - /// @return False if selection becomes canceled. - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetImage(const std::string& shares, - const std::string& heading, - std::string& path) - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogFileBrowser->show_and_get_image(CAddonBase::m_interface->toKodi->kodiBase, - shares.c_str(), heading.c_str(), path.c_str(), &retString); - if (retString != nullptr) - { - if (std::strlen(retString)) - path = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_FileBrowser - /// @brief Image selection dialog to get several in to a list - /// - /// @param[in] shares With Shares becomes the available start folders - /// be set. - /// @param[in] heading Dialog header name - /// @param[out] file_list Return value about selected images - /// @return False if selection becomes canceled. - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetImageList(const std::string& shares, - const std::string& heading, - std::vector& file_list) - { - using namespace ::kodi::addon; - char** list = nullptr; - unsigned int listSize = 0; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogFileBrowser->show_and_get_image_list(CAddonBase::m_interface->toKodi->kodiBase, - shares.c_str(), heading.c_str(), &list, &listSize); - if (ret) - { - for (unsigned int i = 0; i < listSize; ++i) - file_list.emplace_back(list[i]); - CAddonBase::m_interface->toKodi->kodi_gui->dialogFileBrowser->clear_file_list(CAddonBase::m_interface->toKodi->kodiBase, &list, listSize); - } - return ret; - } - //-------------------------------------------------------------------------- - }; - -} /* namespace dialogs */ -} /* namespace gui */ -} /* namespace kodi */ diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Keyboard.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Keyboard.h deleted file mode 100644 index 843bdfa..0000000 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Keyboard.h +++ /dev/null @@ -1,422 +0,0 @@ -/* - * Copyright (C) 2005-2018 Team Kodi - * This file is part of Kodi - https://kodi.tv - * - * SPDX-License-Identifier: GPL-2.0-or-later - * See LICENSES/README.md for more information. - */ - -#pragma once - -#include "../definitions.h" -#include "../../AddonBase.h" - -namespace kodi -{ -namespace gui -{ -namespace dialogs -{ - - //============================================================================ - /// - /// \defgroup cpp_kodi_gui_dialogs_Keyboard Dialog Keyboard - /// \ingroup cpp_kodi_gui - /// @brief \cpp_namespace{ kodi::gui::dialogs::Keyboard } - /// **Keyboard dialogs** - /// - /// The functions listed below have to be permitted by the user for the - /// representation of a keyboard around an input. - /// - /// The class supports several kinds, from an easy text choice up to the - /// passport Word production and their confirmation for add-on. - /// - /// It has the header \ref Keyboard.h "#include " - /// be included to enjoy it. - /// - namespace Keyboard - { - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Keyboard - /// @brief Show keyboard with initial value `text` and replace with result - /// string. - /// - /// @param[in,out] text Overwritten with user input if return=true. - /// @param[in] heading String shown on dialog title. - /// @param[in] allowEmptyResult Whether a blank password is valid or not. - /// @param[in] hiddenInput The inserted input is not shown as text. - /// @param[in] autoCloseMs To close the dialog after a specified - /// time, in milliseconds, default is 0 which - /// keeps the dialog open indefinitely. - /// @return true if successful display and user input. - /// false if unsuccessful display, no user - /// input, or canceled editing. - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include - /// - /// /* - /// * The example shows the display of keyboard call dialog at Kodi from the add-on. - /// * Below all values are set, however, can last two (hidden input = false and autoCloseMs = 0) - /// * to be released if not needed. - /// */ - /// std::string text = "Please change me to them want you want"; /*< It can be leaved empty or a - /// entry text added */ - /// bool bRet = ::kodi::gui::dialogs::Keyboard::ShowAndGetInput(text, - /// "Demonstration text entry", - /// true, - /// false, - /// 0); - /// fprintf(stderr, "Written keyboard input is : '%s' and was %s\n", - /// text.c_str(), bRet ? "OK" : "Canceled"); - /// ~~~~~~~~~~~~~ - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetInput(std::string& text, - const std::string& heading, - bool allowEmptyResult, - bool hiddenInput = false, - unsigned int autoCloseMs = 0) - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = - CAddonBase::m_interface->toKodi->kodi_gui->dialogKeyboard->show_and_get_input_with_head( - CAddonBase::m_interface->toKodi->kodiBase, text.c_str(), &retString, heading.c_str(), - allowEmptyResult, hiddenInput, autoCloseMs); - if (retString != nullptr) - { - text = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, - retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Keyboard - /// @brief The example shows the display of keyboard call dialog at Kodi - /// from the add-on. - /// - /// @param[out] text Overwritten with user input if return=true. - /// @param[in] allowEmptyResult If set to true keyboard can also exited - /// without entered text. - /// @param[in] autoCloseMs To close the dialog after a specified time, - /// in milliseconds, default is 0 which keeps - /// the dialog open indefinitely. - /// @return true if successful display and user input. - /// false if unsuccessful display, no user - /// input, or canceled editing. - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetInput(std::string& text, - bool allowEmptyResult, - unsigned int autoCloseMs = 0) - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogKeyboard->show_and_get_input(CAddonBase::m_interface->toKodi->kodiBase, - text.c_str(), &retString, - allowEmptyResult, autoCloseMs); - if (retString != nullptr) - { - text = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Keyboard - /// @brief Shows keyboard and prompts for a password. Differs from - /// `ShowAndVerifyNewPassword()` in that no second verification - /// - /// @param[in,out] newPassword Overwritten with user input if return=true. - /// @param[in] heading String shown on dialog title. - /// @param[in] allowEmptyResult Whether a blank password is valid or not. - /// @param[in] autoCloseMs To close the dialog after a specified time, - /// in milliseconds, default is 0 which keeps - /// the dialog open indefinitely. - /// @return true if successful display and user input. - /// false if unsuccessful display, no user - /// input, or canceled editing. - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetNewPassword(std::string& newPassword, - const std::string& heading, - bool allowEmptyResult, - unsigned int autoCloseMs = 0) - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogKeyboard->show_and_get_new_password_with_head(CAddonBase::m_interface->toKodi->kodiBase, - newPassword.c_str(), &retString, heading.c_str(), - allowEmptyResult, autoCloseMs); - if (retString != nullptr) - { - newPassword = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Keyboard - /// @brief Shows keyboard and prompts for a password. Differs from - /// `ShowAndVerifyNewPassword()` in that no second verification - /// - /// @param[in,out] newPassword Overwritten with user input if return=true. - /// @param[in] autoCloseMs To close the dialog after a specified time, - /// in milliseconds, default is 0 which keeps - /// the dialog open indefinitely. - /// @return true if successful display and user input. - /// false if unsuccessful display, no user - /// input, or canceled editing. - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetNewPassword(std::string& newPassword, - unsigned int autoCloseMs = 0) - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogKeyboard->show_and_get_new_password(CAddonBase::m_interface->toKodi->kodiBase, - newPassword.c_str(), &retString, autoCloseMs); - if (retString != nullptr) - { - newPassword = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Keyboard - /// @brief Show keyboard twice to get and confirm a user-entered password - /// string. - /// - /// @param[out] newPassword Overwritten with user input if return=true. - /// @param[in] heading String shown on dialog title. - /// @param[in] allowEmptyResult - /// @param[in] autoCloseMs To close the dialog after a specified time, - /// in milliseconds, default is 0 which keeps - /// the dialog open indefinitely. - /// @return true if successful display and user input. - /// false if unsuccessful display, no user - /// input, or canceled editing. - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include - /// #include - /// - /// /* - /// * The example below shows the complete use of keyboard dialog for password - /// * check. If only one check from add-on needed can be function with retries - /// * set to '0' called alone. - /// * - /// * The use of MD5 translated password is always required for the check on Kodi! - /// */ - /// - /// int maxretries = 3; - /// /* - /// * Password names need to be send as md5 sum to kodi. - /// */ - /// std::string password; - /// kodi::GetMD5("kodi", password); - /// - /// /* - /// * To the loop about password checks. - /// */ - /// int ret; - /// for (unsigned int i = 0; i < maxretries; i++) - /// { - /// /* - /// * Ask the user about the password. - /// */ - /// ret = ::kodi::gui::dialogs::Keyboard::ShowAndVerifyPassword(password, "Demo password call for PW 'kodi'", i, 0); - /// if (ret == 0) - /// { - /// fprintf(stderr, "Password successfull confirmed after '%i' tries\n", i+1); - /// break; - /// } - /// else if (ret < 0) - /// { - /// fprintf(stderr, "Canceled editing on try '%i'\n", i+1); - /// break; - /// } - /// else /* if (ret > 0) */ - /// { - /// fprintf(stderr, "Wrong password entered on try '%i'\n", i+1); - /// } - /// } - /// ~~~~~~~~~~~~~ - /// - inline bool ATTRIBUTE_HIDDEN ShowAndVerifyNewPassword(std::string& newPassword, - const std::string& heading, - bool allowEmptyResult, - unsigned int autoCloseMs = 0) - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogKeyboard->show_and_verify_new_password_with_head(CAddonBase::m_interface->toKodi->kodiBase, - &retString, heading.c_str(), allowEmptyResult, - autoCloseMs); - if (retString != nullptr) - { - newPassword = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Keyboard - /// @brief Show keyboard twice to get and confirm a user-entered password - /// string. - /// - /// @param[out] newPassword Overwritten with user input if return=true. - /// @param[in] autoCloseMs To close the dialog after a specified time, - /// in milliseconds, default is 0 which keeps - /// the dialog open indefinitely. - /// @return true if successful display and user input. - /// false if unsuccessful display, no user - /// input, or canceled editing. - /// - inline bool ATTRIBUTE_HIDDEN ShowAndVerifyNewPassword(std::string& newPassword, - unsigned int autoCloseMs = 0) - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogKeyboard->show_and_verify_new_password(CAddonBase::m_interface->toKodi->kodiBase, - &retString, autoCloseMs); - if (retString != nullptr) - { - newPassword = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Keyboard - /// @brief Show keyboard and verify user input against `password`. - /// - /// @param[in,out] password Value to compare against user input. - /// @param[in] heading String shown on dialog title. - /// @param[in] retries If greater than 0, shows "Incorrect - /// password, %d retries left" on dialog line 2, - /// else line 2 is blank. - /// @param[in] autoCloseMs To close the dialog after a specified time, - /// in milliseconds, default is 0 which keeps - /// the dialog open indefinitely. - /// @return 0 if successful display and user input. 1 if - /// unsuccessful input. -1 if no user input or - /// canceled editing. - /// - inline int ATTRIBUTE_HIDDEN ShowAndVerifyPassword(std::string& password, - const std::string& heading, - int retries, - unsigned int autoCloseMs = 0) - { - using namespace ::kodi::addon; - char* retString = nullptr; - int ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogKeyboard->show_and_verify_password(CAddonBase::m_interface->toKodi->kodiBase, - password.c_str(), &retString, heading.c_str(), - retries, autoCloseMs); - if (retString != nullptr) - { - password = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Keyboard - /// @brief Shows a filter related keyboard - /// - /// @param[in,out] text Overwritten with user input if return=true. - /// @param[in] searching Use dialog for search and send our search - /// message in safe way (only the active window - /// needs it) - /// - header name if true is "Enter search string" - /// - header name if false is "Enter value" - /// @param autoCloseMs To close the dialog after a specified time, - /// in milliseconds, default is 0 which keeps - /// the dialog open indefinitely. - /// @return true if successful display and user input. - /// false if unsuccessful display, no user - /// input, or canceled editing. - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetFilter(std::string& text, - bool searching, - unsigned int autoCloseMs = 0) - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogKeyboard->show_and_get_filter(CAddonBase::m_interface->toKodi->kodiBase, - text.c_str(), &retString, searching, autoCloseMs); - if (retString != nullptr) - { - text = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Keyboard - /// @brief Send a text to a visible keyboard - /// - /// @param[in] text Overwritten with user input if return=true. - /// @param[in] closeKeyboard The open dialog is if also closed on 'true'. - /// @return true if successful done, false if - /// unsuccessful or keyboard not present. - /// - inline bool ATTRIBUTE_HIDDEN SendTextToActiveKeyboard(const std::string& text, - bool closeKeyboard = false) - { - using namespace ::kodi::addon; - return CAddonBase::m_interface->toKodi->kodi_gui->dialogKeyboard->send_text_to_active_keyboard(CAddonBase::m_interface->toKodi->kodiBase, - text.c_str(), closeKeyboard); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Keyboard - /// @brief Check for visible keyboard on GUI - /// - /// @return true if keyboard present, false if not present - /// - inline bool ATTRIBUTE_HIDDEN IsKeyboardActivated() - { - using namespace ::kodi::addon; - return CAddonBase::m_interface->toKodi->kodi_gui->dialogKeyboard->is_keyboard_activated(CAddonBase::m_interface->toKodi->kodiBase); - } - //-------------------------------------------------------------------------- - }; - -} /* namespace dialogs */ -} /* namespace gui */ -} /* namespace kodi */ diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Numeric.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Numeric.h deleted file mode 100644 index bff7683..0000000 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Numeric.h +++ /dev/null @@ -1,362 +0,0 @@ -/* - * Copyright (C) 2005-2018 Team Kodi - * This file is part of Kodi - https://kodi.tv - * - * SPDX-License-Identifier: GPL-2.0-or-later - * See LICENSES/README.md for more information. - */ - -#pragma once - -#include "../definitions.h" -#include "../../AddonBase.h" - -namespace kodi -{ -namespace gui -{ -namespace dialogs -{ - - //============================================================================ - /// - /// \defgroup cpp_kodi_gui_dialogs_Numeric Dialog Numeric - /// \ingroup cpp_kodi_gui - /// @{ - /// @brief \cpp_namespace{ kodi::gui::dialogs::Numeric } - /// **Numeric dialogs** - /// - /// The functions listed below have to be permitted by the user for the - /// representation of a numeric keyboard around an input. - /// - /// The class supports several kinds, from an easy number choice up to the - /// passport Word production and their confirmation for add-on. - /// - /// It has the header \ref Numeric.h "#include " - /// be included to enjoy it. - /// - namespace Numeric - { - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Numeric - /// @brief Use dialog to get numeric new password - /// - /// @param[out] newPassword String to preload into the keyboard - /// accumulator. Overwritten with user input - /// if return=true. Returned in MD5 format. - /// @return true if successful display and user - /// input entry/re-entry. - /// false if unsuccessful display, no user - /// input, or canceled editing. - /// - inline bool ATTRIBUTE_HIDDEN ShowAndVerifyNewPassword(std::string& newPassword) - { - using namespace ::kodi::addon; - char* pw = nullptr; - bool ret = - CAddonBase::m_interface->toKodi->kodi_gui->dialogNumeric->show_and_verify_new_password( - CAddonBase::m_interface->toKodi->kodiBase, &pw); - if (pw != nullptr) - { - newPassword = pw; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, pw); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Numeric - /// @brief Use dialog to verify numeric password. - /// - /// @param[in] password Password to compare with user input, need - /// in MD5 format. - /// @param[in] heading Heading to display - /// @param[in] retries If greater than 0, shows "Incorrect - /// password, %d retries left" on dialog - /// line 2, else line 2 is blank. - /// @return Possible values: - /// - 0 if successful display and user input. - /// - 1 if unsuccessful input. - /// - -1 if no user input or canceled editing. - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include /* fprintf */ - /// #include - /// #include - /// - /// /* - /// * The example below shows the complete use of keyboard dialog for password - /// * check. If only one check from add-on needed can be function with retries - /// * set to '0' called alone. - /// * - /// * The use of MD5 translated password is always required for the check on Kodi! - /// */ - /// - /// int maxretries = 3; - /// - /// /* - /// * Password names need to be send as md5 sum to kodi. - /// */ - /// std::string password = kodi::GetMD5("1234"); - /// - /// /* - /// * To the loop about password checks. - /// */ - /// int ret; - /// for (unsigned int i = 0; i < maxretries; i++) - /// { - /// /* - /// * Ask the user about the password. - /// */ - /// ret = kodi::gui::dialogs::Numeric::ShowAndVerifyPassword(password, "Demo numeric password call for PW '1234'", i); - /// if (ret == 0) - /// { - /// fprintf(stderr, "Numeric password successfull confirmed after '%i' tries\n", i+1); - /// break; - /// } - /// else if (ret < 0) - /// { - /// fprintf(stderr, "Canceled editing on try '%i'\n", i+1); - /// break; - /// } - /// else /* if (ret > 0) */ - /// { - /// fprintf(stderr, "Wrong numeric password entered on try '%i'\n", i+1); - /// } - /// } - /// ~~~~~~~~~~~~~ - /// - inline int ATTRIBUTE_HIDDEN ShowAndVerifyPassword(const std::string& password, - const std::string& heading, - int retries) - { - using namespace ::kodi::addon; - return CAddonBase::m_interface->toKodi->kodi_gui->dialogNumeric->show_and_verify_password(CAddonBase::m_interface->toKodi->kodiBase, - password.c_str(), heading.c_str(), retries); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Numeric - /// @brief Use dialog to verify numeric password - /// - /// @param[in,out] toVerify Value to compare against user input. - /// @param[in] heading Heading to display - /// @param[in] verifyInput If set as true we verify the users input - /// versus toVerify. - /// @return true if successful display and user - /// input. false if unsuccessful display, no - /// user input, or canceled editing. - /// - inline bool ATTRIBUTE_HIDDEN ShowAndVerifyInput(std::string& toVerify, - const std::string& heading, - bool verifyInput) - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogNumeric->show_and_verify_input(CAddonBase::m_interface->toKodi->kodiBase, - toVerify.c_str(), &retString, heading.c_str(), verifyInput); - if (retString != nullptr) - { - toVerify = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Numeric - /// @brief Use dialog to get time value. - /// - /// @param[out] time Overwritten with user input if - /// return=true and time inserted. - /// @param[in] heading Heading to display. - /// @return true if successful display and user - /// input. false if unsuccessful display, no - /// user input, or canceled editing. - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include /* printf */ - /// #include /* time_t, struct tm, time, localtime, strftime */ - /// #include - /// - /// time_t rawtime; - /// struct tm * timeinfo; - /// char buffer [10]; - /// - /// time (&rawtime); - /// timeinfo = localtime(&rawtime); - /// bool bRet = kodi::gui::dialogs::Numeric::ShowAndGetTime(*timeinfo, "Selected time test call"); - /// strftime(buffer, sizeof(buffer), "%H:%M.", timeinfo); - /// printf("Selected time it's %s and was on Dialog %s\n", buffer, bRet ? "OK" : "Canceled"); - /// ~~~~~~~~~~~~~ - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetTime(tm& time, const std::string& heading) - { - using namespace ::kodi::addon; - return CAddonBase::m_interface->toKodi->kodi_gui->dialogNumeric->show_and_get_time(CAddonBase::m_interface->toKodi->kodiBase, &time, heading.c_str()); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Numeric - /// @brief Use dialog to get date value. - /// - /// @param[in,out] date Overwritten with user input if - /// return=true and date inserted. - /// @param[in] heading Heading to display - /// @return true if successful display and user - /// input. false if unsuccessful display, no - /// user input, or canceled editing. - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include /* printf */ - /// #include /* time_t, struct tm, time, localtime, strftime */ - /// #include - /// - /// time_t rawtime; - /// struct tm * timeinfo; - /// char buffer [20]; - /// - /// time (&rawtime); - /// timeinfo = localtime(&rawtime); - /// bool bRet = kodi::gui::dialogs::Numeric::ShowAndGetDate(*timeinfo, "Selected date test call"); - /// strftime(buffer, sizeof(buffer), "%Y-%m-%d", timeinfo); - /// printf("Selected date it's %s and was on Dialog %s\n", buffer, bRet ? "OK" : "Canceled"); - /// ~~~~~~~~~~~~~ - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetDate(tm& date, const std::string& heading) - { - using namespace ::kodi::addon; - return CAddonBase::m_interface->toKodi->kodi_gui->dialogNumeric->show_and_get_date(CAddonBase::m_interface->toKodi->kodiBase, &date, heading.c_str()); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Numeric - /// @brief Use dialog to get a IP - /// - /// @param[in,out] ipAddress Overwritten with user input if - /// return=true and IP address inserted. - /// @param[in] heading Heading to display. - /// @return true if successful display and - /// user input. false if unsuccessful - /// display, no user input, or canceled - /// editing. - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetIPAddress(std::string& ipAddress, - const std::string& heading) - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogNumeric->show_and_get_ip_address(CAddonBase::m_interface->toKodi->kodiBase, - ipAddress.c_str(), &retString, heading.c_str()); - if (retString != nullptr) - { - ipAddress = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Numeric - /// @brief Use dialog to get normal number. - /// - /// @param[in,out] input Overwritten with user input if - /// return=true and time in seconds inserted - /// @param[in] heading Heading to display - /// @param[in] autoCloseTimeoutMs To close the dialog after a specified - /// time, in milliseconds, default is 0 - /// which keeps the dialog open - /// indefinitely. - /// @return true if successful display and user - /// input. false if unsuccessful display, no - /// user input, or canceled editing. - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include /* printf */ - /// #include /* strtoull (C++11) */ - /// #include - /// - /// std::string number; - /// bool bRet = kodi::gui::dialogs::Numeric::ShowAndGetNumber(number, "Number test call"); - /// printf("Written number input is : %llu and was %s\n", - /// strtoull(number.c_str(), nullptr, 0), bRet ? "OK" : "Canceled"); - /// ~~~~~~~~~~~~~ - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetNumber(std::string& input, - const std::string& heading, - unsigned int autoCloseTimeoutMs = 0) - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogNumeric->show_and_get_number(CAddonBase::m_interface->toKodi->kodiBase, - input.c_str(), &retString, heading.c_str(), autoCloseTimeoutMs); - if (retString != nullptr) - { - input = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, retString); - } - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Numeric - /// @brief Show numeric keypad to get seconds. - /// - /// @param[in,out] time Overwritten with user input if return=true and - /// time in seconds inserted. - /// @param[in] heading Heading to display - /// @return true if successful display and user input. false - /// if unsuccessful display, no user input, or - /// canceled editing. - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetSeconds(std::string& time, const std::string& heading) - { - using namespace ::kodi::addon; - char* retString = nullptr; - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogNumeric->show_and_get_seconds(CAddonBase::m_interface->toKodi->kodiBase, - time.c_str(), &retString, heading.c_str()); - if (retString != nullptr) - { - time = retString; - CAddonBase::m_interface->toKodi->free_string(CAddonBase::m_interface->toKodi->kodiBase, retString); - } - return ret; - } - //-------------------------------------------------------------------------- - }; - /// @} - -} /* namespace dialogs */ -} /* namespace gui */ -} /* namespace kodi */ diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/OK.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/OK.h deleted file mode 100644 index b9a3a0d..0000000 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/OK.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (C) 2005-2018 Team Kodi - * This file is part of Kodi - https://kodi.tv - * - * SPDX-License-Identifier: GPL-2.0-or-later - * See LICENSES/README.md for more information. - */ - -#pragma once - -#include "../../AddonBase.h" -#include "../definitions.h" - -namespace kodi -{ -namespace gui -{ -namespace dialogs -{ - - //============================================================================ - /// - /// \defgroup cpp_kodi_gui_dialogs_OK Dialog OK - /// \ingroup cpp_kodi_gui - /// @{ - /// @brief \cpp_namespace{ kodi::gui::dialogs::OK } - /// **OK dialog** - /// - /// The functions listed below permit the call of a dialogue of information, a - /// confirmation of the user by press from OK required. - /// - /// It has the header \ref OK.h "#include " - /// be included to enjoy it. - /// - namespace OK - { - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_OK - /// @brief Use dialog to inform user with text and confirmation with OK with continued string. - /// - /// @param[in] heading Dialog heading. - /// @param[in] text Multi-line text. - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include - /// ... - /// kodi::gui::dialogs::OK::ShowAndGetInput("Test dialog", "Hello World!\nI'm a call from add-on\n :) :D"); - /// ~~~~~~~~~~~~~ - /// - inline void ATTRIBUTE_HIDDEN ShowAndGetInput(const std::string& heading, const std::string& text) - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogOK->show_and_get_input_single_text( - CAddonBase::m_interface->toKodi->kodiBase, heading.c_str(), text.c_str()); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_OK - /// @brief Use dialog to inform user with text and confirmation with OK with strings separated to the lines. - /// - /// @param[in] heading Dialog heading. - /// @param[in] line0 Line #1 text. - /// @param[in] line1 Line #2 text. - /// @param[in] line2 Line #3 text. - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include - /// ... - /// kodi::gui::dialogs::OK::ShowAndGetInput("Test dialog", "Hello World!", "I'm a call from add-on", " :) :D"); - /// ~~~~~~~~~~~~~ - /// - inline void ATTRIBUTE_HIDDEN ShowAndGetInput(const std::string& heading, - const std::string& line0, - const std::string& line1, - const std::string& line2) - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogOK->show_and_get_input_line_text(CAddonBase::m_interface->toKodi->kodiBase, - heading.c_str(), line0.c_str(), line1.c_str(), - line2.c_str()); - } - //-------------------------------------------------------------------------- - } - /// @} - -} /* namespace dialogs */ -} /* namespace gui */ -} /* namespace kodi */ diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Progress.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Progress.h deleted file mode 100644 index b1f8cc5..0000000 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Progress.h +++ /dev/null @@ -1,255 +0,0 @@ -/* - * Copyright (C) 2005-2018 Team Kodi - * This file is part of Kodi - https://kodi.tv - * - * SPDX-License-Identifier: GPL-2.0-or-later - * See LICENSES/README.md for more information. - */ - -#pragma once - -#include "../definitions.h" -#include "../../AddonBase.h" - -namespace kodi -{ -namespace gui -{ -namespace dialogs -{ - -//============================================================================ -/// -/// \defgroup cpp_kodi_gui_dialogs_CProgress Dialog Progress -/// \ingroup cpp_kodi_gui -/// @brief \cpp_class{ kodi::gui::dialogs::CProgress } -/// **Progress dialog shown in center** -/// -/// The with \ref DialogProgress.h "#include " -/// given class are basically used to create Kodi's progress dialog with named -/// text fields. -/// -/// **Example:** -/// ~~~~~~~~~~~~~{.cpp} -/// #include -/// -/// kodi::gui::dialogs::CProgress *progress = new kodi::gui::dialogs::CProgress; -/// progress->SetHeading("Test progress"); -/// progress->SetLine(1, "line 1"); -/// progress->SetLine(2, "line 2"); -/// progress->SetLine(3, "line 3"); -/// progress->SetCanCancel(true); -/// progress->ShowProgressBar(true); -/// progress->Open(); -/// for (unsigned int i = 0; i < 100; i += 10) -/// { -/// progress->SetPercentage(i); -/// sleep(1); -/// } -/// delete progress; -/// ~~~~~~~~~~~~~ -/// -class ATTRIBUTE_HIDDEN CProgress -{ -public: - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CProgress - /// @brief Construct a new dialog - /// - CProgress() - { - using namespace ::kodi::addon; - m_DialogHandle = CAddonBase::m_interface->toKodi->kodi_gui->dialogProgress->new_dialog( - CAddonBase::m_interface->toKodi->kodiBase); - if (!m_DialogHandle) - kodi::Log(ADDON_LOG_FATAL, - "kodi::gui::dialogs::CProgress can't create window class from Kodi !!!"); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CProgress - /// @brief Destructor - /// - ~CProgress() - { - using namespace ::kodi::addon; - if (m_DialogHandle) - CAddonBase::m_interface->toKodi->kodi_gui->dialogProgress->delete_dialog( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CProgress - /// @brief To open the dialog - /// - void Open() - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogProgress->open( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CProgress - /// @brief Set the heading title of dialog - /// - /// @param[in] heading Title string to use - /// - void SetHeading(const std::string& heading) - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogProgress->set_heading( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle, heading.c_str()); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CProgress - /// @brief To set the line text field on dialog from 0 - 2 - /// - /// @param[in] iLine Line number - /// @param[in] line Text string - /// - void SetLine(unsigned int iLine, const std::string& line) - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogProgress->set_line( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle, iLine, line.c_str()); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CProgress - /// @brief To enable and show cancel button on dialog - /// - /// @param[in] canCancel if true becomes it shown - /// - void SetCanCancel(bool canCancel) - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogProgress->set_can_cancel( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle, canCancel); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CProgress - /// @brief To check dialog for clicked cancel button - /// - /// @return True if canceled - /// - bool IsCanceled() const - { - using namespace ::kodi::addon; - return CAddonBase::m_interface->toKodi->kodi_gui->dialogProgress->is_canceled( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CProgress - /// @brief Get the current progress position as percent - /// - /// @param[in] percentage Position to use from 0 to 100 - /// - void SetPercentage(int percentage) - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogProgress->set_percentage( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle, percentage); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CProgress - /// @brief To set the current progress position as percent - /// - /// @return Current Position used from 0 to 100 - /// - int GetPercentage() const - { - using namespace ::kodi::addon; - return CAddonBase::m_interface->toKodi->kodi_gui->dialogProgress->get_percentage( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CProgress - /// @brief To show or hide progress bar dialog - /// - /// @param[in] onOff If true becomes it shown - /// - void ShowProgressBar(bool onOff) - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogProgress->show_progress_bar( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle, onOff); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CProgress - /// @brief Set the maximum position of progress, needed if `SetProgressAdvance(...)` is used - /// - /// @param[in] max Biggest usable position to use - /// - void SetProgressMax(int max) - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogProgress->set_progress_max( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle, max); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CProgress - /// @brief To increase progress bar by defined step size until reach of maximum position - /// - /// @param[in] steps Step size to increase, default is 1 - /// - void SetProgressAdvance(int steps = 1) - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogProgress->set_progress_advance( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle, steps); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_CProgress - /// @brief To check progress was canceled on work - /// - /// @return True if aborted - /// - bool Abort() - { - using namespace ::kodi::addon; - return CAddonBase::m_interface->toKodi->kodi_gui->dialogProgress->abort( - CAddonBase::m_interface->toKodi->kodiBase, m_DialogHandle); - } - //-------------------------------------------------------------------------- - -private: - void* m_DialogHandle; -}; - -} /* namespace dialogs */ -} /* namespace gui */ -} /* namespace kodi */ diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Select.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Select.h deleted file mode 100644 index 39a98fe..0000000 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/Select.h +++ /dev/null @@ -1,269 +0,0 @@ -/* - * Copyright (C) 2005-2018 Team Kodi - * This file is part of Kodi - https://kodi.tv - * - * SPDX-License-Identifier: GPL-2.0-or-later - * See LICENSES/README.md for more information. - */ - -#pragma once - -#include "../definitions.h" -#include "../../AddonBase.h" - -//============================================================================== -/// \defgroup cpp_kodi_vfs_Defs Definitions, structures and enumerators -/// \ingroup cpp_kodi_gui_dialogs_Select -/// @brief **Dialog Select definition values** -//------------------------------------------------------------------------------ - -//============================================================================== -/// \ingroup cpp_kodi_vfs_Defs -/// @brief **Selection entry structure** -/// -typedef struct SSelectionEntry -{ - //============================================================================ - /// Structure constructor - /// - /// There becomes selected always set to false. - /// - SSelectionEntry() = default; - //---------------------------------------------------------------------------- - - /// Entry identfication string - std::string id; - - /// Entry name to show on GUI dialog - std::string name; - - /// Place where entry can be preselected and after return the from user - /// selected is set. - bool selected = false; -} SSelectionEntry; -//------------------------------------------------------------------------------ - -namespace kodi -{ -namespace gui -{ -namespace dialogs -{ - - //============================================================================ - /// - /// \defgroup cpp_kodi_gui_dialogs_Select Dialog Select - /// \ingroup cpp_kodi_gui - /// @{ - /// @brief \cpp_namespace{ kodi::gui::dialogs::Select } - /// **Selection dialog** - /// - /// The function listed below permits the call of a dialogue to select of an - /// entry as a key - /// - /// It has the header \ref Select.h "#include " - /// be included to enjoy it. - /// - /// - namespace Select - { - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Select - /// @brief Show a selection dialog about given parts. - /// - /// @param[in] heading Dialog heading name - /// @param[in] entries String list about entries - /// @param[in] selected [opt] Predefined selection (default is - /// -1 for the first) - /// @param[in] autoclose [opt] To close dialog automatic after the given - /// time in ms. As '0' it stays open. - /// @return The selected entry, if return -1 was - /// nothing selected or canceled - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include - /// - /// const std::vector entries - /// { - /// "Test 1", - /// "Test 2", - /// "Test 3", - /// "Test 4", - /// "Test 5" - /// }; - /// - /// int selected = kodi::gui::dialogs::Select::Show("Test selection", entries, -1); - /// if (selected < 0) - /// fprintf(stderr, "Item selection canceled\n"); - /// else - /// fprintf(stderr, "Selected item is: %i\n", selected); - /// ~~~~~~~~~~~~~ - /// - inline int ATTRIBUTE_HIDDEN Show(const std::string& heading, - const std::vector& entries, - int selected = -1, - unsigned int autoclose = 0) - { - using namespace ::kodi::addon; - unsigned int size = static_cast(entries.size()); - const char** cEntries = (const char**)malloc(size * sizeof(const char**)); - for (unsigned int i = 0; i < size; ++i) - { - cEntries[i] = entries[i].c_str(); - } - int ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogSelect->open( - CAddonBase::m_interface->toKodi->kodiBase, heading.c_str(), cEntries, size, selected, - autoclose); - free(cEntries); - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Select - /// @brief Show a selection dialog about given parts. - /// - /// This function is mostly equal to the other, only becomes the string list - /// here done by a SSelectionEntry, where a ID string can be defined. - /// - /// @param[in] heading Dialog heading name - /// @param[in] entries SSelectionEntry list about entries - /// @param[in] selected [opt] Predefined selection (default is - /// -1 for the first) - /// @param[in] autoclose [opt] To close dialog automatic after the given - /// time in ms. As '0' it stays open. - /// @return The selected entry, if return -1 was - /// nothing selected or canceled - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include - /// - /// std::vector entries - /// { - /// { "ID 1", "Test 1", false }, - /// { "ID 2", "Test 2", false }, - /// { "ID 3", "Test 3", false }, - /// { "ID 4", "Test 4", false }, - /// { "ID 5", "Test 5", false } - /// }; - /// - /// int selected = kodi::gui::dialogs::Select::Show("Test selection", entries, -1); - /// if (selected < 0) - /// fprintf(stderr, "Item selection canceled\n"); - /// else - /// fprintf(stderr, "Selected item is: %i\n", selected); - /// ~~~~~~~~~~~~~ - /// - inline int ATTRIBUTE_HIDDEN Show(const std::string& heading, - std::vector& entries, - int selected = -1, - unsigned int autoclose = 0) - { - using namespace ::kodi::addon; - unsigned int size = static_cast(entries.size()); - const char** cEntries = static_cast(malloc(size*sizeof(const char*))); - for (unsigned int i = 0; i < size; ++i) - { - cEntries[i] = entries[i].name.c_str(); - if (selected == -1 && entries[i].selected) - selected = i; - } - int ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogSelect->open(CAddonBase::m_interface->toKodi->kodiBase, heading.c_str(), - cEntries, size, selected, autoclose); - if (ret >= 0) - { - entries[ret].selected = true; - } - free(cEntries); - return ret; - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_Select - /// @brief Show a multiple selection dialog about given parts. - /// - /// @param[in] heading Dialog heading name - /// @param[in] entries SSelectionEntry list about entries - /// @param[in] autoclose [opt] To close dialog automatic after the given - /// time in ms. As '0' it stays open. - /// @return The selected entries, if return empty was - /// nothing selected or canceled - /// - /// With selected on SSelectionEntry can be a pre selection defined. - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include - /// - /// std::vector entries - /// { - /// { "ID 1", "Test 1", false }, - /// { "ID 2", "Test 2", false }, - /// { "ID 3", "Test 3", false }, - /// { "ID 4", "Test 4", false }, - /// { "ID 5", "Test 5", false } - /// }; - /// - /// bool ret = kodi::gui::dialogs::Select::ShowMultiSelect("Test selection", entries); - /// if (!ret) - /// fprintf(stderr, "Selection canceled\n"); - /// else - /// { - /// fprintf(stderr, "Selected items:\n"); - /// for (const auto& entry : entries) - /// { - /// if (entry.selected) - /// fprintf(stderr, " - %s\n", entry.selected.id.c_str()); - /// } - /// } - /// ~~~~~~~~~~~~~ - /// - inline bool ATTRIBUTE_HIDDEN ShowMultiSelect(const std::string& heading, - std::vector& entries, - int autoclose = 0) - { - using namespace ::kodi::addon; - unsigned int size = static_cast(entries.size()); - const char** cEntryIDs = static_cast(malloc(size*sizeof(const char*))); - const char** cEntryNames = static_cast(malloc(size*sizeof(const char*))); - bool* cEntriesSelected = static_cast(malloc(size*sizeof(bool))); - for (unsigned int i = 0; i < size; ++i) - { - cEntryIDs[i] = entries[i].id.c_str(); - cEntryNames[i] = entries[i].name.c_str(); - cEntriesSelected[i] = entries[i].selected; - } - bool ret = CAddonBase::m_interface->toKodi->kodi_gui->dialogSelect->open_multi_select(CAddonBase::m_interface->toKodi->kodiBase, - heading.c_str(), cEntryIDs, cEntryNames, - cEntriesSelected, size, autoclose); - if (ret) - { - for (unsigned int i = 0; i < size; ++i) - entries[i].selected = cEntriesSelected[i]; - } - free(cEntryNames); - free(cEntryIDs); - free(cEntriesSelected); - return ret; - } - //-------------------------------------------------------------------------- - }; - /// @} - -} /* namespace dialogs */ -} /* namespace gui */ -} /* namespace kodi */ diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/TextViewer.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/TextViewer.h deleted file mode 100644 index 5c81837..0000000 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/TextViewer.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (C) 2015-2018 Team Kodi - * This file is part of Kodi - https://kodi.tv - * - * SPDX-License-Identifier: GPL-2.0-or-later - * See LICENSES/README.md for more information. - */ - -#pragma once - -#include "../definitions.h" -#include "../../AddonBase.h" - -namespace kodi -{ -namespace gui -{ -namespace dialogs -{ - - //============================================================================ - /// - /// \defgroup cpp_kodi_gui_dialogs_TextViewer Dialog Text Viewer - /// \ingroup cpp_kodi_gui - /// @{ - /// @brief \cpp_namespace{ kodi::gui::dialogs::TextViewer } - /// **Text viewer dialog** - /// - /// The text viewer dialog can be used to display descriptions, help texts or - /// other larger texts. - /// - /// In order to achieve a line break is a \\n directly in the text or - /// in the "./resources/language/resource.language.??_??/strings.po" - /// to call with std::string kodi::general::GetLocalizedString(...);. - /// - /// It has the header \ref TextViewer.h "#include " - /// be included to enjoy it. - /// - namespace TextViewer - { - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_TextViewer - /// @brief Show info text dialog - /// - /// @param[in] heading Small heading text - /// @param[in] text Showed text on dialog - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include - /// - /// kodi::gui::dialogs::TextViewer::Show("The Wizard of Oz (1939 film)", - /// "The Wizard of Oz is a 1939 American musical comedy-drama fantasy film " - /// "produced by Metro-Goldwyn-Mayer, and the most well-known and commercially " - /// "successful adaptation based on the 1900 novel The Wonderful Wizard of Oz " - /// "by L. Frank Baum. The film stars Judy Garland as Dorothy Gale. The film" - /// "co-stars Terry the dog, billed as Toto; Ray Bolger, Jack Haley, Bert Lahr, " - /// "Frank Morgan, Billie Burke, Margaret Hamilton, with Charley Grapewin and " - /// "Clara Blandick, and the Singer Midgets as the Munchkins.\n" - /// "\n" - /// "Notable for its use of Technicolor, fantasy storytelling, musical score and " - /// "unusual characters, over the years it has become an icon of American popular " - /// "culture. It was nominated for six Academy Awards, including Best Picture but " - /// "lost to Gone with the Wind. It did win in two other categories including Best " - /// "Original Song for \"Over the Rainbow\". However, the film was a box office " - /// "disappointment on its initial release, earning only $3,017,000 on a $2,777,000 " - /// "budget, despite receiving largely positive reviews. It was MGM's most " - /// "expensive production at that time, and did not completely recoup the studio's " - /// "investment and turn a profit until theatrical re-releases starting in 1949.\n" - /// "\n" - /// "The 1956 broadcast television premiere of the film on CBS re-introduced the " - /// "film to the wider public and eventually made the presentation an annual " - /// "tradition, making it one of the most known films in cinema history. The " - /// "film was named the most-viewed motion picture on television syndication by " - /// "the Library of Congress who also included the film in its National Film " - /// "Registry in its inaugural year in 1989. Designation on the registry calls " - /// "for efforts to preserve it for being \"culturally, historically, and " - /// "aesthetically significant\". It is also one of the few films on UNESCO's " - /// "Memory of the World Register.\n" - /// "\n" - /// "The Wizard of Oz is often ranked on best-movie lists in critics' and public " - /// "polls. It is the source of many quotes referenced in modern popular culture. " - /// "It was directed primarily by Victor Fleming (who left production to take " - /// "over direction on the troubled Gone with the Wind production). Noel Langley, " - /// "Florence Ryerson and Edgar Allan Woolf received credit for the screenplay, " - /// "but there were uncredited contributions by others. The songs were written " - /// "by Edgar \"Yip\" Harburg (lyrics) and Harold Arlen (music). The incidental " - /// "music, based largely on the songs, was composed by Herbert Stothart, with " - /// "interspersed renderings from classical composers.\n"); - /// ~~~~~~~~~~~~~ - /// - inline void ATTRIBUTE_HIDDEN Show(const std::string& heading, const std::string& text) - { - using namespace ::kodi::addon; - CAddonBase::m_interface->toKodi->kodi_gui->dialogTextViewer->open( - CAddonBase::m_interface->toKodi->kodiBase, heading.c_str(), text.c_str()); - } - //-------------------------------------------------------------------------- - }; - /// @} - -} /* namespace dialogs */ -} /* namespace gui */ -} /* namespace kodi */ diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/YesNo.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/YesNo.h deleted file mode 100644 index 67c2fc4..0000000 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/YesNo.h +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Copyright (C) 2005-2018 Team Kodi - * This file is part of Kodi - https://kodi.tv - * - * SPDX-License-Identifier: GPL-2.0-or-later - * See LICENSES/README.md for more information. - */ - -#pragma once - -#include "../definitions.h" -#include "../../AddonBase.h" - -namespace kodi -{ -namespace gui -{ -namespace dialogs -{ - - //============================================================================ - /// - /// \defgroup cpp_kodi_gui_dialogs_YesNo Dialog Yes/No - /// \ingroup cpp_kodi_gui - /// @{ - /// @brief \cpp_namespace{ kodi::gui::dialogs::YesNo } - /// **Yes / No dialog** - /// - /// The Yes / No dialog can be used to inform the user about questions and get - /// the answer. - /// - /// In order to achieve a line break is a \\n directly in the text or - /// in the "./resources/language/resource.language.??_??/strings.po" - /// to call with std::string kodi::general::GetLocalizedString(...);. - /// - /// It has the header \ref YesNo.h "#include " - /// be included to enjoy it. - /// - /// - namespace YesNo - { - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_YesNo - /// @brief Use dialog to get numeric new password with one text string shown - /// everywhere and cancel return field - /// - /// @param[in] heading Dialog heading - /// @param[in] text Multi-line text - /// @param[out] canceled Return value about cancel button - /// @param[in] noLabel [opt] label to put on the no button - /// @param[in] yesLabel [opt] label to put on the yes button - /// @return Returns True if 'Yes' was pressed, else False - /// - /// @note It is preferred to only use this as it is actually a multi-line text. - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include - /// - /// bool canceled; - /// bool ret = kodi::gui::dialogs::YesNo::ShowAndGetInput( - /// "Yes / No test call", /* The Header */ - /// "You has opened Yes / No dialog for test\n\nIs this OK for you?", - /// canceled, /* return value about cancel button */ - /// "Not really", /* No label, is optional and if empty "No" */ - /// "Ohhh yes"); /* Yes label, also optional and if empty "Yes" */ - /// fprintf(stderr, "You has called Yes/No, returned '%s' and was %s\n", - /// ret ? "yes" : "no", - /// canceled ? "canceled" : "not canceled"); - /// ~~~~~~~~~~~~~ - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetInput(const std::string& heading, - const std::string& text, - bool& canceled, - const std::string& noLabel = "", - const std::string& yesLabel = "") - { - using namespace ::kodi::addon; - return CAddonBase::m_interface->toKodi->kodi_gui->dialogYesNo->show_and_get_input_single_text( - CAddonBase::m_interface->toKodi->kodiBase, heading.c_str(), text.c_str(), &canceled, - noLabel.c_str(), yesLabel.c_str()); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_YesNo - /// @brief Use dialog to get numeric new password with separated line strings - /// - /// @param[in] heading Dialog heading - /// @param[in] line0 Line #0 text - /// @param[in] line1 Line #1 text - /// @param[in] line2 Line #2 text - /// @param[in] noLabel [opt] label to put on the no button. - /// @param[in] yesLabel [opt] label to put on the yes button. - /// @return Returns True if 'Yes' was pressed, else False. - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include - /// - /// bool ret = kodi::gui::dialogs::YesNo::ShowAndGetInput( - /// "Yes / No test call", // The Header - /// "You has opened Yes / No dialog for test", - /// "", - /// "Is this OK for you?", - /// "Not really", // No label, is optional and if empty "No" - /// "Ohhh yes"); // Yes label, also optional and if empty "Yes" - /// fprintf(stderr, "You has called Yes/No, returned '%s'\n", - /// ret ? "yes" : "no"); - /// ~~~~~~~~~~~~~ - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetInput(const std::string& heading, - const std::string& line0, - const std::string& line1, - const std::string& line2, - const std::string& noLabel = "", - const std::string& yesLabel = "") - { - using namespace ::kodi::addon; - return CAddonBase::m_interface->toKodi->kodi_gui->dialogYesNo->show_and_get_input_line_text(CAddonBase::m_interface->toKodi->kodiBase, - heading.c_str(), line0.c_str(), line1.c_str(), line2.c_str(), - noLabel.c_str(), yesLabel.c_str()); - } - //-------------------------------------------------------------------------- - - //========================================================================== - /// - /// \ingroup cpp_kodi_gui_dialogs_YesNo - /// @brief Use dialog to get numeric new password with separated line strings and cancel return field - /// - /// @param[in] heading Dialog heading - /// @param[in] line0 Line #0 text - /// @param[in] line1 Line #1 text - /// @param[in] line2 Line #2 text - /// @param[out] canceled Return value about cancel button - /// @param[in] noLabel [opt] label to put on the no button - /// @param[in] yesLabel [opt] label to put on the yes button - /// @return Returns True if 'Yes' was pressed, else False - /// - /// - ///------------------------------------------------------------------------- - /// - /// **Example:** - /// ~~~~~~~~~~~~~{.cpp} - /// #include - /// - /// bool canceled; - /// bool ret = kodi::gui::dialogs::YesNo::ShowAndGetInput( - /// "Yes / No test call", // The Header - /// "You has opened Yes / No dialog for test", - /// "", - /// "Is this OK for you?", - /// canceled, // return value about cancel button - /// "Not really", // No label, is optional and if empty "No" - /// "Ohhh yes"); // Yes label, also optional and if empty "Yes" - /// fprintf(stderr, "You has called Yes/No, returned '%s' and was %s\n", - /// ret ? "yes" : "no", - /// canceled ? "canceled" : "not canceled"); - /// ~~~~~~~~~~~~~ - /// - inline bool ATTRIBUTE_HIDDEN ShowAndGetInput(const std::string& heading, - const std::string& line0, - const std::string& line1, - const std::string& line2, - bool& canceled, - const std::string& noLabel = "", - const std::string& yesLabel = "") - { - using namespace ::kodi::addon; - return CAddonBase::m_interface->toKodi->kodi_gui->dialogYesNo->show_and_get_input_line_button_text(CAddonBase::m_interface->toKodi->kodiBase, - heading.c_str(), line0.c_str(), line1.c_str(), line2.c_str(), - &canceled, noLabel.c_str(), yesLabel.c_str()); - } - //-------------------------------------------------------------------------- - }; - /// @} - -} /* namespace dialogs */ -} /* namespace gui */ -} /* namespace kodi */ -- cgit v1.2.3