Merge pull request #25922 from sarbes/shader-cleanup
[xbmc.git] / xbmc / application / ApplicationSkinHandling.h
blobfc5c3d0df5b2e28958932f8faaff1de07c03761b
1 /*
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.
7 */
9 #pragma once
11 #include "application/IApplicationComponent.h"
13 #include <string>
15 class CApplication;
16 class CSetting;
17 class IMsgTargetCallback;
18 class IWindowManagerCallback;
20 /*!
21 * \brief Class handling application support for skin management.
23 class CApplicationSkinHandling : public IApplicationComponent
25 friend class CApplication;
27 public:
28 CApplicationSkinHandling(IMsgTargetCallback* msgCb,
29 IWindowManagerCallback* wCb,
30 bool& bInitializing);
32 void UnloadSkin();
34 bool OnSettingChanged(const CSetting& setting);
35 void ReloadSkin(bool confirm = false);
37 protected:
38 bool LoadSkin(const std::string& skinID);
39 bool LoadCustomWindows();
41 /*!
42 * \brief Called by the application main/render thread for processing
43 * operations belonging to the skin.
45 void ProcessSkin() const;
47 bool m_saveSkinOnUnloading = true;
48 bool m_confirmSkinChange = true;
49 bool m_ignoreSkinSettingChanges = false;
50 IMsgTargetCallback* m_msgCb;
51 IWindowManagerCallback* m_wCb;
52 bool& m_bInitializing;