Plasma Engine  2.0
Loading...
Searching...
No Matches
DynamicBitflags.h
1#pragma once
2
3#include <Foundation/Containers/Map.h>
4#include <Foundation/Strings/String.h>
5#include <GuiFoundation/GuiFoundationDLL.h>
6
13class PL_GUIFOUNDATION_DLL plDynamicBitflags
14{
15public:
17 static plDynamicBitflags& GetDynamicBitflags(plStringView sName);
18
20 const plMap<plUInt64, plString>& GetAllValidValues() const { return m_ValidValues; }
21
23 void Clear();
24
26 void SetValueAndName(plUInt32 uiBitPos, plStringView sName);
27
29 void RemoveValue(plUInt32 uiBitPos);
30
32 bool IsValueValid(plUInt32 uiBitPos) const;
33
35 bool TryGetValueName(plUInt32 uiBitPos, plStringView& out_sName) const;
36
37private:
38 plMap<plUInt64, plString> m_ValidValues;
39
40 static plMap<plString, plDynamicBitflags> s_DynamicBitflags;
41};
Stores the valid values and names for 'dynamic' bitflags.
Definition DynamicBitflags.h:14
const plMap< plUInt64, plString > & GetAllValidValues() const
Returns all bitflag values and current names.
Definition DynamicBitflags.h:20
Definition Map.h:408
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34