2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
11 #include "addons/IAddon.h"
12 #include "settings/dialogs/GUIDialogSettingsManagerBase.h"
14 class CGUIDialogAddonSettings
: public CGUIDialogSettingsManagerBase
17 CGUIDialogAddonSettings();
18 ~CGUIDialogAddonSettings() override
= default;
20 // specializations of CGUIControl
21 bool OnMessage(CGUIMessage
& message
) override
;
22 bool OnAction(const CAction
& action
) override
;
24 static bool ShowForAddon(const ADDON::AddonPtr
& addon
, bool saveToDisk
= true);
25 static void SaveAndClose();
27 std::string
GetCurrentAddonID() const;
30 // implementation of CGUIDialogSettingsBase
31 void SetupView() override
;
32 std::string
GetLocalizedString(uint32_t labelId
) const override
;
33 std::string
GetSettingsLabel(const std::shared_ptr
<ISetting
>& setting
) override
;
34 int GetSettingLevel() const override
;
35 std::shared_ptr
<CSettingSection
> GetSection() override
;
37 // implementation of CGUIDialogSettingsManagerBase
38 bool AllowResettingSettings() const override
{ return false; }
39 bool Save() override
{ return true; }
40 CSettingsManager
* GetSettingsManager() const override
;
42 // implementation of ISettingCallback
43 void OnSettingAction(const std::shared_ptr
<const CSetting
>& setting
) override
;
46 static bool ShowForSingleInstance(const ADDON::AddonPtr
& addon
,
48 ADDON::AddonInstanceId instanceId
= ADDON::ADDON_SETTINGS_ID
);
49 static bool ShowForMultipleInstances(const ADDON::AddonPtr
& addon
, bool saveToDisk
);
51 ADDON::AddonPtr m_addon
;
52 ADDON::AddonInstanceId m_instanceId
{ADDON::ADDON_SETTINGS_ID
};
53 bool m_saveToDisk
= false;