Make flags unsigned (WIP, C++11 version)
diff --git a/imgui.cpp b/imgui.cpp
index 11d6d82..bb94bdd 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -5822,7 +5822,7 @@
window->DC.ParentLayoutType = parent_window ? parent_window->DC.LayoutType : ImGuiLayoutType_Vertical;
window->DC.FocusCounterRegular = window->DC.FocusCounterTabStop = -1;
- window->DC.ItemFlags = parent_window ? parent_window->DC.ItemFlags : (ImGuiItemFlags)ImGuiItemFlags_Default_;
+ window->DC.ItemFlags = parent_window ? parent_window->DC.ItemFlags : ImGuiItemFlags_Default_;
window->DC.ItemWidth = window->ItemWidthDefault;
window->DC.TextWrapPos = -1.0f; // disabled
window->DC.ItemFlagsStack.resize(0);
diff --git a/imgui.h b/imgui.h
index 77a0953..c090ed7 100644
--- a/imgui.h
+++ b/imgui.h
@@ -739,7 +739,7 @@
//-----------------------------------------------------------------------------
// Flags for ImGui::Begin()
-enum ImGuiWindowFlags_
+enum ImGuiWindowFlags_ : unsigned int
{
ImGuiWindowFlags_None = 0,
ImGuiWindowFlags_NoTitleBar = 1 << 0, // Disable title-bar
@@ -780,7 +780,7 @@
};
// Flags for ImGui::InputText()
-enum ImGuiInputTextFlags_
+enum ImGuiInputTextFlags_ : unsigned int
{
ImGuiInputTextFlags_None = 0,
ImGuiInputTextFlags_CharsDecimal = 1 << 0, // Allow 0123456789.+-*/
@@ -808,7 +808,7 @@
};
// Flags for ImGui::TreeNodeEx(), ImGui::CollapsingHeader*()
-enum ImGuiTreeNodeFlags_
+enum ImGuiTreeNodeFlags_ : unsigned int
{
ImGuiTreeNodeFlags_None = 0,
ImGuiTreeNodeFlags_Selected = 1 << 0, // Draw as selected
@@ -830,7 +830,7 @@
};
// Flags for ImGui::Selectable()
-enum ImGuiSelectableFlags_
+enum ImGuiSelectableFlags_ : unsigned int
{
ImGuiSelectableFlags_None = 0,
ImGuiSelectableFlags_DontClosePopups = 1 << 0, // Clicking this don't close parent popup window
@@ -841,7 +841,7 @@
};
// Flags for ImGui::BeginCombo()
-enum ImGuiComboFlags_
+enum ImGuiComboFlags_ : unsigned int
{
ImGuiComboFlags_None = 0,
ImGuiComboFlags_PopupAlignLeft = 1 << 0, // Align the popup toward the left by default
@@ -855,7 +855,7 @@
};
// Flags for ImGui::BeginTabBar()
-enum ImGuiTabBarFlags_
+enum ImGuiTabBarFlags_ : unsigned int
{
ImGuiTabBarFlags_None = 0,
ImGuiTabBarFlags_Reorderable = 1 << 0, // Allow manually dragging tabs to re-order them + New tabs are appended at the end of list
@@ -871,7 +871,7 @@
};
// Flags for ImGui::BeginTabItem()
-enum ImGuiTabItemFlags_
+enum ImGuiTabItemFlags_ : unsigned int
{
ImGuiTabItemFlags_None = 0,
ImGuiTabItemFlags_UnsavedDocument = 1 << 0, // Append '*' to title without affecting the ID, as a convenience to avoid using the ### operator. Also: tab is selected on closure and closure is deferred by one frame to allow code to undo it without flicker.
@@ -881,7 +881,7 @@
};
// Flags for ImGui::IsWindowFocused()
-enum ImGuiFocusedFlags_
+enum ImGuiFocusedFlags_ : unsigned int
{
ImGuiFocusedFlags_None = 0,
ImGuiFocusedFlags_ChildWindows = 1 << 0, // IsWindowFocused(): Return true if any children of the window is focused
@@ -893,7 +893,7 @@
// Flags for ImGui::IsItemHovered(), ImGui::IsWindowHovered()
// Note: if you are trying to check whether your mouse should be dispatched to imgui or to your app, you should use the 'io.WantCaptureMouse' boolean for that. Please read the FAQ!
// Note: windows with the ImGuiWindowFlags_NoInputs flag are ignored by IsWindowHovered() calls.
-enum ImGuiHoveredFlags_
+enum ImGuiHoveredFlags_ : unsigned int
{
ImGuiHoveredFlags_None = 0, // Return true if directly over the item/window, not obstructed by another window, not obstructed by an active popup or modal blocking inputs under them.
ImGuiHoveredFlags_ChildWindows = 1 << 0, // IsWindowHovered() only: Return true if any children of the window is hovered
@@ -909,7 +909,7 @@
};
// Flags for ImGui::BeginDragDropSource(), ImGui::AcceptDragDropPayload()
-enum ImGuiDragDropFlags_
+enum ImGuiDragDropFlags_ : unsigned int
{
ImGuiDragDropFlags_None = 0,
// BeginDragDropSource() flags
@@ -1021,7 +1021,7 @@
};
// Configuration flags stored in io.ConfigFlags. Set by user/application.
-enum ImGuiConfigFlags_
+enum ImGuiConfigFlags_ : unsigned int
{
ImGuiConfigFlags_None = 0,
ImGuiConfigFlags_NavEnableKeyboard = 1 << 0, // Master keyboard navigation enable flag. NewFrame() will automatically fill io.NavInputs[] based on io.KeysDown[].
@@ -1037,7 +1037,7 @@
};
// Back-end capabilities flags stored in io.BackendFlags. Set by imgui_impl_xxx or custom back-end.
-enum ImGuiBackendFlags_
+enum ImGuiBackendFlags_ : unsigned int
{
ImGuiBackendFlags_None = 0,
ImGuiBackendFlags_HasGamepad = 1 << 0, // Back-end Platform supports gamepad and currently has one connected.
@@ -1144,7 +1144,7 @@
};
// Flags for ColorEdit3() / ColorEdit4() / ColorPicker3() / ColorPicker4() / ColorButton()
-enum ImGuiColorEditFlags_
+enum ImGuiColorEditFlags_ : unsigned int
{
ImGuiColorEditFlags_None = 0,
ImGuiColorEditFlags_NoAlpha = 1 << 1, // // ColorEdit, ColorPicker, ColorButton: ignore Alpha component (will only read 3 components from the input pointer).
@@ -1877,7 +1877,7 @@
IMGUI_API void SetCurrentChannel(ImDrawList* draw_list, int channel_idx);
};
-enum ImDrawCornerFlags_
+enum ImDrawCornerFlags_ : unsigned int
{
ImDrawCornerFlags_None = 0,
ImDrawCornerFlags_TopLeft = 1 << 0, // 0x1
@@ -1891,7 +1891,7 @@
ImDrawCornerFlags_All = 0xF // In your function calls you may use ~0 (= all bits sets) instead of ImDrawCornerFlags_All, as a convenience
};
-enum ImDrawListFlags_
+enum ImDrawListFlags_ : unsigned int
{
ImDrawListFlags_None = 0,
ImDrawListFlags_AntiAliasedLines = 1 << 0, // Lines are anti-aliased (*2 the number of triangles for 1.0f wide line, otherwise *3 the number of triangles)
@@ -2095,7 +2095,7 @@
bool IsPacked() const { return X != 0xFFFF; }
};
-enum ImFontAtlasFlags_
+enum ImFontAtlasFlags_ : unsigned int
{
ImFontAtlasFlags_None = 0,
ImFontAtlasFlags_NoPowerOfTwoHeight = 1 << 0, // Don't round the height to next power of two
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 1c30c7b..62cf269 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -364,7 +364,7 @@
CmdBuffer.resize(0);
IdxBuffer.resize(0);
VtxBuffer.resize(0);
- Flags = _Data ? _Data->InitialFlags : (ImDrawListFlags)ImDrawListFlags_None;
+ Flags = _Data ? _Data->InitialFlags : ImDrawListFlags_None;
_VtxCurrentOffset = 0;
_VtxCurrentIdx = 0;
_VtxWritePtr = NULL;
diff --git a/imgui_internal.h b/imgui_internal.h
index 20394b6..f3d83bc 100644
--- a/imgui_internal.h
+++ b/imgui_internal.h
@@ -413,7 +413,7 @@
// Misc data structures
//-----------------------------------------------------------------------------
-enum ImGuiButtonFlags_
+enum ImGuiButtonFlags_ : unsigned int
{
ImGuiButtonFlags_None = 0,
ImGuiButtonFlags_Repeat = 1 << 0, // hold to repeat
@@ -435,19 +435,19 @@
ImGuiButtonFlags_PressedOnMask_ = ImGuiButtonFlags_PressedOnClick | ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnClickReleaseAnywhere | ImGuiButtonFlags_PressedOnRelease | ImGuiButtonFlags_PressedOnDoubleClick | ImGuiButtonFlags_PressedOnDragDropHold
};
-enum ImGuiSliderFlags_
+enum ImGuiSliderFlags_ : unsigned int
{
ImGuiSliderFlags_None = 0,
ImGuiSliderFlags_Vertical = 1 << 0
};
-enum ImGuiDragFlags_
+enum ImGuiDragFlags_ : unsigned int
{
ImGuiDragFlags_None = 0,
ImGuiDragFlags_Vertical = 1 << 0
};
-enum ImGuiColumnsFlags_
+enum ImGuiColumnsFlags_ : unsigned int
{
// Default: 0
ImGuiColumnsFlags_None = 0,
@@ -459,7 +459,7 @@
};
// Extend ImGuiSelectableFlags_
-enum ImGuiSelectableFlagsPrivate_
+enum ImGuiSelectableFlagsPrivate_ : unsigned int
{
// NB: need to be in sync with last value of ImGuiSelectableFlags_
ImGuiSelectableFlags_NoHoldingActiveID = 1 << 20,
@@ -471,12 +471,12 @@
};
// Extend ImGuiTreeNodeFlags_
-enum ImGuiTreeNodeFlagsPrivate_
+enum ImGuiTreeNodeFlagsPrivate_ : unsigned int
{
ImGuiTreeNodeFlags_ClipLabelForTrailingButton = 1 << 20
};
-enum ImGuiSeparatorFlags_
+enum ImGuiSeparatorFlags_ : unsigned int
{
ImGuiSeparatorFlags_None = 0,
ImGuiSeparatorFlags_Horizontal = 1 << 0, // Axis default to current layout type, so generally Horizontal unless e.g. in a menu bar
@@ -486,7 +486,7 @@
// Transient per-window flags, reset at the beginning of the frame. For child window, inherited from parent on first Begin().
// This is going to be exposed in imgui.h when stabilized enough.
-enum ImGuiItemFlags_
+enum ImGuiItemFlags_ : unsigned int
{
ImGuiItemFlags_None = 0,
ImGuiItemFlags_NoTabStop = 1 << 0, // false
@@ -500,7 +500,7 @@
};
// Storage for LastItem data
-enum ImGuiItemStatusFlags_
+enum ImGuiItemStatusFlags_ : unsigned int
{
ImGuiItemStatusFlags_None = 0,
ImGuiItemStatusFlags_HoveredRect = 1 << 0,
@@ -520,7 +520,7 @@
#endif
};
-enum ImGuiTextFlags_
+enum ImGuiTextFlags_ : unsigned int
{
ImGuiTextFlags_None = 0,
ImGuiTextFlags_NoWidthForLargeClippedText = 1 << 0
@@ -578,7 +578,7 @@
ImGuiInputReadMode_RepeatFast
};
-enum ImGuiNavHighlightFlags_
+enum ImGuiNavHighlightFlags_ : unsigned int
{
ImGuiNavHighlightFlags_None = 0,
ImGuiNavHighlightFlags_TypeDefault = 1 << 0,
@@ -587,7 +587,7 @@
ImGuiNavHighlightFlags_NoRounding = 1 << 3
};
-enum ImGuiNavDirSourceFlags_
+enum ImGuiNavDirSourceFlags_ : unsigned int
{
ImGuiNavDirSourceFlags_None = 0,
ImGuiNavDirSourceFlags_Keyboard = 1 << 0,
@@ -595,7 +595,7 @@
ImGuiNavDirSourceFlags_PadLStick = 1 << 2
};
-enum ImGuiNavMoveFlags_
+enum ImGuiNavMoveFlags_ : unsigned int
{
ImGuiNavMoveFlags_None = 0,
ImGuiNavMoveFlags_LoopX = 1 << 0, // On failed request, restart from opposite side
@@ -888,7 +888,7 @@
void Clear() { Window = NULL; ID = FocusScopeId = 0; DistBox = DistCenter = DistAxial = FLT_MAX; RectRel = ImRect(); }
};
-enum ImGuiNextWindowDataFlags_
+enum ImGuiNextWindowDataFlags_ : unsigned int
{
ImGuiNextWindowDataFlags_None = 0,
ImGuiNextWindowDataFlags_HasPos = 1 << 0,
@@ -922,7 +922,7 @@
inline void ClearFlags() { Flags = ImGuiNextWindowDataFlags_None; }
};
-enum ImGuiNextItemDataFlags_
+enum ImGuiNextItemDataFlags_ : unsigned int
{
ImGuiNextItemDataFlags_None = 0,
ImGuiNextItemDataFlags_HasWidth = 1 << 0,
diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp
index 9faa71c..124594d 100644
--- a/imgui_widgets.cpp
+++ b/imgui_widgets.cpp
@@ -4507,9 +4507,9 @@
// Read stored options
if (!(flags & ImGuiColorEditFlags__PickerMask))
- flags |= ((g.ColorEditOptions & ImGuiColorEditFlags__PickerMask) ? g.ColorEditOptions : (ImGuiColorEditFlags)ImGuiColorEditFlags__OptionsDefault) & ImGuiColorEditFlags__PickerMask;
+ flags |= ((g.ColorEditOptions & ImGuiColorEditFlags__PickerMask) ? g.ColorEditOptions : ImGuiColorEditFlags__OptionsDefault) & ImGuiColorEditFlags__PickerMask;
if (!(flags & ImGuiColorEditFlags__InputMask))
- flags |= ((g.ColorEditOptions & ImGuiColorEditFlags__InputMask) ? g.ColorEditOptions : (ImGuiColorEditFlags)ImGuiColorEditFlags__OptionsDefault) & ImGuiColorEditFlags__InputMask;
+ flags |= ((g.ColorEditOptions & ImGuiColorEditFlags__InputMask) ? g.ColorEditOptions : ImGuiColorEditFlags__OptionsDefault) & ImGuiColorEditFlags__InputMask;
IM_ASSERT(ImIsPowerOfTwo(flags & ImGuiColorEditFlags__PickerMask)); // Check that only 1 is selected
IM_ASSERT(ImIsPowerOfTwo(flags & ImGuiColorEditFlags__InputMask)); // Check that only 1 is selected
if (!(flags & ImGuiColorEditFlags_NoOptions))