mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 20:51:06 +01:00 
			
		
		
		
	Renamed SetNextTreeNodeOpen() to SetNextItemOpen(). Refactored SetNextItemXXX stuff to match SetNextWindowXXX code closely.
This commit is contained in:
		| @@ -72,6 +72,7 @@ struct ImGuiItemHoveredDataBackup;  // Backup and restore IsItemHovered() intern | ||||
| struct ImGuiMenuColumns;            // Simple column measurement, currently used for MenuItem() only | ||||
| struct ImGuiNavMoveResult;          // Result of a directional navigation move query result | ||||
| struct ImGuiNextWindowData;         // Storage for SetNextWindow** functions | ||||
| struct ImGuiNextItemData;           // Storage for SetNextItem** functions | ||||
| struct ImGuiPopupData;              // Storage for current popup stack | ||||
| struct ImGuiSettingsHandler;        // Storage for one type registered in the .ini file | ||||
| struct ImGuiStyleMod;               // Stacked style modifier, backup of modified data so we can restore it | ||||
| @@ -90,6 +91,7 @@ typedef int ImGuiItemStatusFlags;       // -> enum ImGuiItemStatusFlags_    // F | ||||
| typedef int ImGuiNavHighlightFlags;     // -> enum ImGuiNavHighlightFlags_  // Flags: for RenderNavHighlight() | ||||
| typedef int ImGuiNavDirSourceFlags;     // -> enum ImGuiNavDirSourceFlags_  // Flags: for GetNavInputAmount2d() | ||||
| typedef int ImGuiNavMoveFlags;          // -> enum ImGuiNavMoveFlags_       // Flags: for navigation requests | ||||
| typedef int ImGuiNextItemDataFlags;     // -> enum ImGuiNextItemDataFlags_  // Flags: for SetNextItemXXX() functions | ||||
| typedef int ImGuiNextWindowDataFlags;   // -> enum ImGuiNextWindowDataFlags_// Flags: for SetNextWindowXXX() functions | ||||
| typedef int ImGuiSeparatorFlags;        // -> enum ImGuiSeparatorFlags_     // Flags: for SeparatorEx() | ||||
| typedef int ImGuiSliderFlags;           // -> enum ImGuiSliderFlags_        // Flags: for SliderBehavior() | ||||
| @@ -778,6 +780,24 @@ struct ImGuiNextWindowData | ||||
|     inline void ClearFlags()    { Flags = ImGuiNextWindowDataFlags_None; } | ||||
| }; | ||||
|  | ||||
| enum ImGuiNextItemDataFlags_ | ||||
| { | ||||
|     ImGuiNextItemDataFlags_None     = 0, | ||||
|     ImGuiNextItemDataFlags_HasWidth = 1 << 0, | ||||
|     ImGuiNextItemDataFlags_HasOpen  = 1 << 1 | ||||
| }; | ||||
|  | ||||
| struct ImGuiNextItemData | ||||
| { | ||||
|     ImGuiNextItemDataFlags      Flags; | ||||
|     float                       Width;          // Set by SetNextItemWidth(). | ||||
|     bool                        OpenVal;        // Set by SetNextItemOpen() function. | ||||
|     ImGuiCond                   OpenCond; | ||||
|  | ||||
|     ImGuiNextItemData()         { memset(this, 0, sizeof(*this)); } | ||||
|     inline void ClearFlags()    { Flags = ImGuiNextItemDataFlags_None; } | ||||
| }; | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // Tabs | ||||
| //----------------------------------------------------------------------------- | ||||
| @@ -858,8 +878,7 @@ struct ImGuiContext | ||||
|  | ||||
|     // Next window/item data | ||||
|     ImGuiNextWindowData     NextWindowData;                     // Storage for SetNextWindow** functions | ||||
|     bool                    NextTreeNodeOpenVal;                // Storage for SetNextTreeNode** functions | ||||
|     ImGuiCond               NextTreeNodeOpenCond; | ||||
|     ImGuiNextItemData       NextItemData;                       // Storage for SetNextItem** functions | ||||
|  | ||||
|     // Shared stacks | ||||
|     ImVector<ImGuiColorMod> ColorModifiers;                     // Stack for PushStyleColor()/PopStyleColor() | ||||
| @@ -1041,9 +1060,6 @@ struct ImGuiContext | ||||
|         LastActiveId = 0; | ||||
|         LastActiveIdTimer = 0.0f; | ||||
|  | ||||
|         NextTreeNodeOpenVal = false; | ||||
|         NextTreeNodeOpenCond = 0; | ||||
|  | ||||
|         NavWindow = NULL; | ||||
|         NavId = NavActivateId = NavActivateDownId = NavActivatePressedId = NavInputId = 0; | ||||
|         NavJustTabbedId = NavJustMovedToId = NavJustMovedToMultiSelectScopeId = NavNextActivateId = 0; | ||||
| @@ -1166,7 +1182,6 @@ struct IMGUI_API ImGuiWindowTempData | ||||
|     // We store the current settings outside of the vectors to increase memory locality (reduce cache misses). The vectors are rarely modified. Also it allows us to not heap allocate for short-lived windows which are not using those settings. | ||||
|     ImGuiItemFlags          ItemFlags;              // == ItemFlagsStack.back() [empty == ImGuiItemFlags_Default] | ||||
|     float                   ItemWidth;              // == ItemWidthStack.back(). 0.0: default, >0.0: width in pixels, <0.0: align xx pixels to the right of window | ||||
|     float                   NextItemWidth; | ||||
|     float                   TextWrapPos;            // == TextWrapPosStack.back() [empty == -1.0f] | ||||
|     ImVector<ImGuiItemFlags>ItemFlagsStack; | ||||
|     ImVector<float>         ItemWidthStack; | ||||
| @@ -1202,7 +1217,6 @@ struct IMGUI_API ImGuiWindowTempData | ||||
|  | ||||
|         ItemFlags = ImGuiItemFlags_Default_; | ||||
|         ItemWidth = 0.0f; | ||||
|         NextItemWidth = +FLT_MAX; | ||||
|         TextWrapPos = -1.0f; | ||||
|         memset(StackSizesBackup, 0, sizeof(StackSizesBackup)); | ||||
|  | ||||
| @@ -1569,7 +1583,7 @@ namespace ImGui | ||||
|     IMGUI_API bool          SliderBehavior(const ImRect& bb, ImGuiID id, ImGuiDataType data_type, void* v, const void* v_min, const void* v_max, const char* format, float power, ImGuiSliderFlags flags, ImRect* out_grab_bb); | ||||
|     IMGUI_API bool          SplitterBehavior(const ImRect& bb, ImGuiID id, ImGuiAxis axis, float* size1, float* size2, float min_size1, float min_size2, float hover_extend = 0.0f, float hover_visibility_delay = 0.0f); | ||||
|     IMGUI_API bool          TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* label, const char* label_end = NULL); | ||||
|     IMGUI_API bool          TreeNodeBehaviorIsOpen(ImGuiID id, ImGuiTreeNodeFlags flags = 0);                     // Consume previous SetNextTreeNodeOpened() data, if any. May return true when logging | ||||
|     IMGUI_API bool          TreeNodeBehaviorIsOpen(ImGuiID id, ImGuiTreeNodeFlags flags = 0);                     // Consume previous SetNextItemOpen() data, if any. May return true when logging | ||||
|     IMGUI_API void          TreePushOverrideID(ImGuiID id); | ||||
|  | ||||
|     // Template functions are instantiated in imgui_widgets.cpp for a finite number of types. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user