2 * Copyright (C) 2013-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 "ViewState.h"
12 #include "events/IEvent.h"
13 #include "settings/ISubSettings.h"
14 #include "settings/lib/Setting.h"
15 #include "threads/CriticalSection.h"
16 #include "windowing/GraphicContext.h"
23 class CViewStateSettings
: public ISubSettings
26 static CViewStateSettings
& GetInstance();
28 bool Load(const TiXmlNode
*settings
) override
;
29 bool Save(TiXmlNode
*settings
) const override
;
30 void Clear() override
;
32 const CViewState
* Get(const std::string
&viewState
) const;
33 CViewState
* Get(const std::string
&viewState
);
35 SettingLevel
GetSettingLevel() const { return m_settingLevel
; }
36 void SetSettingLevel(SettingLevel settingLevel
);
37 void CycleSettingLevel();
38 SettingLevel
GetNextSettingLevel() const;
40 EventLevel
GetEventLevel() const { return m_eventLevel
; }
41 void SetEventLevel(EventLevel eventLevel
);
42 void CycleEventLevel();
43 EventLevel
GetNextEventLevel() const;
44 bool ShowHigherEventLevels() const { return m_eventShowHigherLevels
; }
45 void SetShowHigherEventLevels(bool showHigherEventLevels
) { m_eventShowHigherLevels
= showHigherEventLevels
; }
46 void ToggleShowHigherEventLevels() { m_eventShowHigherLevels
= !m_eventShowHigherLevels
; }
50 CViewStateSettings(const CViewStateSettings
&) = delete;
51 CViewStateSettings
& operator=(CViewStateSettings
const&) = delete;
52 ~CViewStateSettings() override
;
55 std::map
<std::string
, CViewState
*> m_viewStates
;
56 SettingLevel m_settingLevel
= SettingLevel::Standard
;
57 EventLevel m_eventLevel
= EventLevel::Basic
;
58 bool m_eventShowHigherLevels
= true;
59 mutable CCriticalSection m_critical
;
61 void AddViewState(const std::string
& strTagName
, int defaultView
= DEFAULT_VIEW_LIST
, SortBy defaultSort
= SortByLabel
);