mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	Merge branch 'master' into docking
# Conflicts: # backends/imgui_impl_dx10.cpp # backends/imgui_impl_dx11.cpp # backends/imgui_impl_dx12.cpp # backends/imgui_impl_dx9.cpp # backends/imgui_impl_glfw.cpp # backends/imgui_impl_opengl3.cpp # backends/imgui_impl_sdl.cpp # backends/imgui_impl_vulkan.cpp # backends/imgui_impl_win32.cpp # imgui.cpp # imgui_internal.h
This commit is contained in:
		@@ -745,14 +745,14 @@ struct ImDrawDataBuilder
 | 
			
		||||
enum ImGuiItemFlags_
 | 
			
		||||
{
 | 
			
		||||
    ImGuiItemFlags_None                     = 0,
 | 
			
		||||
    ImGuiItemFlags_NoTabStop                = 1 << 0,  // false
 | 
			
		||||
    ImGuiItemFlags_ButtonRepeat             = 1 << 1,  // false    // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings.
 | 
			
		||||
    ImGuiItemFlags_Disabled                 = 1 << 2,  // false    // [BETA] Disable interactions but doesn't affect visuals yet. See github.com/ocornut/imgui/issues/211
 | 
			
		||||
    ImGuiItemFlags_NoNav                    = 1 << 3,  // false
 | 
			
		||||
    ImGuiItemFlags_NoNavDefaultFocus        = 1 << 4,  // false
 | 
			
		||||
    ImGuiItemFlags_SelectableDontClosePopup = 1 << 5,  // false    // MenuItem/Selectable() automatically closes current Popup window
 | 
			
		||||
    ImGuiItemFlags_MixedValue               = 1 << 6,  // false    // [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. Currently only supported by Checkbox() (later should support all sorts of widgets)
 | 
			
		||||
    ImGuiItemFlags_ReadOnly                 = 1 << 7   // false    // [ALPHA] Allow hovering interactions but underlying value is not changed.
 | 
			
		||||
    ImGuiItemFlags_NoTabStop                = 1 << 0,  // false     // Disable keyboard tabbing (FIXME: should merge with _NoNav)
 | 
			
		||||
    ImGuiItemFlags_ButtonRepeat             = 1 << 1,  // false     // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings.
 | 
			
		||||
    ImGuiItemFlags_Disabled                 = 1 << 2,  // false     // Disable interactions but doesn't affect visuals. See PushDisabled()/PushDisabled(). See github.com/ocornut/imgui/issues/211
 | 
			
		||||
    ImGuiItemFlags_NoNav                    = 1 << 3,  // false     // Disable keyboard/gamepad directional navigation (FIXME: should merge with _NoTabStop)
 | 
			
		||||
    ImGuiItemFlags_NoNavDefaultFocus        = 1 << 4,  // false     // Disable item being a candidate for default focus (e.g. used by title bar items)
 | 
			
		||||
    ImGuiItemFlags_SelectableDontClosePopup = 1 << 5,  // false     // Disable MenuItem/Selectable() automatically closing their popup window
 | 
			
		||||
    ImGuiItemFlags_MixedValue               = 1 << 6,  // false     // [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. Currently only supported by Checkbox() (later should support all sorts of widgets)
 | 
			
		||||
    ImGuiItemFlags_ReadOnly                 = 1 << 7   // false     // [ALPHA] Allow hovering interactions but underlying value is not changed.
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Flags for ItemAdd()
 | 
			
		||||
@@ -810,7 +810,7 @@ enum ImGuiButtonFlagsPrivate_
 | 
			
		||||
    ImGuiButtonFlags_FlattenChildren        = 1 << 11,  // allow interactions even if a child window is overlapping
 | 
			
		||||
    ImGuiButtonFlags_AllowItemOverlap       = 1 << 12,  // require previous frame HoveredId to either match id or be null before being usable, use along with SetItemAllowOverlap()
 | 
			
		||||
    ImGuiButtonFlags_DontClosePopups        = 1 << 13,  // disable automatically closing parent popup on press // [UNUSED]
 | 
			
		||||
    ImGuiButtonFlags_Disabled               = 1 << 14,  // disable interactions
 | 
			
		||||
    //ImGuiButtonFlags_Disabled             = 1 << 14,  // disable interactions -> use PushDisabled() or ImGuiItemFlags_Disabled
 | 
			
		||||
    ImGuiButtonFlags_AlignTextBaseLine      = 1 << 15,  // vertically align button to match text baseline - ButtonEx() only // FIXME: Should be removed and handled by SmallButton(), not possible currently because of DC.CursorPosPrevLine
 | 
			
		||||
    ImGuiButtonFlags_NoKeyModifiers         = 1 << 16,  // disable mouse interaction if a key modifier is held
 | 
			
		||||
    ImGuiButtonFlags_NoHoldingActiveId      = 1 << 17,  // don't set ActiveId while holding the mouse (ImGuiButtonFlags_PressedOnClick only)
 | 
			
		||||
@@ -1047,14 +1047,19 @@ struct IMGUI_API ImGuiGroupData
 | 
			
		||||
// Simple column measurement, currently used for MenuItem() only.. This is very short-sighted/throw-away code and NOT a generic helper.
 | 
			
		||||
struct IMGUI_API ImGuiMenuColumns
 | 
			
		||||
{
 | 
			
		||||
    float       Spacing;
 | 
			
		||||
    float       Width, NextWidth;
 | 
			
		||||
    float       Pos[3], NextWidths[3];
 | 
			
		||||
    ImU32       TotalWidth;
 | 
			
		||||
    ImU32       NextTotalWidth;
 | 
			
		||||
    ImU16       Spacing;
 | 
			
		||||
    ImU16       OffsetIcon;         // Always zero for now
 | 
			
		||||
    ImU16       OffsetLabel;        // Offsets are locked in Update()
 | 
			
		||||
    ImU16       OffsetShortcut;
 | 
			
		||||
    ImU16       OffsetMark;
 | 
			
		||||
    ImU16       Widths[4];          // Width of:   Icon, Label, Shortcut, Mark  (accumulators for current frame)
 | 
			
		||||
 | 
			
		||||
    ImGuiMenuColumns() { memset(this, 0, sizeof(*this)); }
 | 
			
		||||
    void        Update(int count, float spacing, bool clear);
 | 
			
		||||
    float       DeclColumns(float w0, float w1, float w2);
 | 
			
		||||
    float       CalcExtraSpace(float avail_w) const;
 | 
			
		||||
    void        Update(float spacing, bool window_reappearing);
 | 
			
		||||
    float       DeclColumns(float w_icon, float w_label, float w_shortcut, float w_mark);
 | 
			
		||||
    void        CalcNextTotalWidth(bool update_offsets);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Internal state of the currently focused/edited text input box
 | 
			
		||||
@@ -2630,14 +2635,16 @@ namespace ImGui
 | 
			
		||||
    IMGUI_API ImVec2        CalcItemSize(ImVec2 size, float default_w, float default_h);
 | 
			
		||||
    IMGUI_API float         CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x);
 | 
			
		||||
    IMGUI_API void          PushMultiItemsWidths(int components, float width_full);
 | 
			
		||||
    IMGUI_API void          PushItemFlag(ImGuiItemFlags option, bool enabled);
 | 
			
		||||
    IMGUI_API void          PopItemFlag();
 | 
			
		||||
    IMGUI_API void          PushDisabled();
 | 
			
		||||
    IMGUI_API void          PopDisabled();
 | 
			
		||||
    IMGUI_API bool          IsItemToggledSelection();                                   // Was the last item selection toggled? (after Selectable(), TreeNode() etc. We only returns toggle _event_ in order to handle clipping correctly)
 | 
			
		||||
    IMGUI_API ImVec2        GetContentRegionMaxAbs();
 | 
			
		||||
    IMGUI_API void          ShrinkWidths(ImGuiShrinkWidthItem* items, int count, float width_excess);
 | 
			
		||||
 | 
			
		||||
    // Parameter stacks
 | 
			
		||||
    IMGUI_API void          PushItemFlag(ImGuiItemFlags option, bool enabled);
 | 
			
		||||
    IMGUI_API void          PopItemFlag();
 | 
			
		||||
    IMGUI_API void          PushDisabled(bool disabled = true);
 | 
			
		||||
    IMGUI_API void          PopDisabled();
 | 
			
		||||
 | 
			
		||||
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
 | 
			
		||||
    // If you have old/custom copy-and-pasted widgets that used FocusableItemRegister():
 | 
			
		||||
    //  (Old) IMGUI_VERSION_NUM  < 18209: using 'ItemAdd(....)'                              and 'bool focused = FocusableItemRegister(...)'
 | 
			
		||||
@@ -2667,6 +2674,9 @@ namespace ImGui
 | 
			
		||||
    IMGUI_API ImVec2        FindBestWindowPosForPopupEx(const ImVec2& ref_pos, const ImVec2& size, ImGuiDir* last_dir, const ImRect& r_outer, const ImRect& r_avoid, ImGuiPopupPositionPolicy policy);
 | 
			
		||||
    IMGUI_API bool          BeginViewportSideBar(const char* name, ImGuiViewport* viewport, ImGuiDir dir, float size, ImGuiWindowFlags window_flags);
 | 
			
		||||
 | 
			
		||||
    // Menus
 | 
			
		||||
    IMGUI_API bool          MenuItemEx(const char* label, const char* icon, const char* shortcut = NULL, bool selected = false, bool enabled = true);
 | 
			
		||||
 | 
			
		||||
    // Combos
 | 
			
		||||
    IMGUI_API bool          BeginComboPopup(ImGuiID popup_id, const ImRect& bb, ImGuiComboFlags flags);
 | 
			
		||||
    IMGUI_API bool          BeginComboPreview();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user