mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	Merge branch 'master' into viewport
# Conflicts: # imgui.cpp # imgui_internal.h
This commit is contained in:
		@@ -1141,17 +1141,20 @@ namespace ImGui
 | 
			
		||||
    IMGUI_API void          FocusWindow(ImGuiWindow* window); // FIXME: Rename to SetWindowFocus()
 | 
			
		||||
    IMGUI_API void          BringWindowToFront(ImGuiWindow* window);
 | 
			
		||||
    IMGUI_API void          BringWindowToBack(ImGuiWindow* window);
 | 
			
		||||
    IMGUI_API void          UpdateWindowParentAndRootLinks(ImGuiWindow* window, ImGuiWindowFlags flags, ImGuiWindow* parent_window);
 | 
			
		||||
    IMGUI_API bool          IsWindowChildOf(ImGuiWindow* window, ImGuiWindow* potential_parent);
 | 
			
		||||
    IMGUI_API bool          IsWindowNavFocusable(ImGuiWindow* window);
 | 
			
		||||
 | 
			
		||||
    IMGUI_API void          Initialize(ImGuiContext* context);
 | 
			
		||||
    IMGUI_API void          Shutdown(ImGuiContext* context);    // Since 1.60 this is a _private_ function. You can call DestroyContext() to destroy the context created by CreateContext().
 | 
			
		||||
 | 
			
		||||
    IMGUI_API void          SetCurrentFont(ImFont* font);
 | 
			
		||||
    inline ImFont*          GetDefaultFont() { ImGuiContext& g = *GImGui; return g.IO.FontDefault ? g.IO.FontDefault : g.IO.Fonts->Fonts[0]; }
 | 
			
		||||
    IMGUI_API ImDrawList*   GetOverlayDrawList(ImGuiViewportP* viewport);
 | 
			
		||||
    inline ImDrawList*      GetOverlayDrawList(ImGuiWindow* window) { return GetOverlayDrawList(window->Viewport); }
 | 
			
		||||
 | 
			
		||||
    // Init
 | 
			
		||||
    IMGUI_API void          Initialize(ImGuiContext* context);
 | 
			
		||||
    IMGUI_API void          Shutdown(ImGuiContext* context);    // Since 1.60 this is a _private_ function. You can call DestroyContext() to destroy the context created by CreateContext().
 | 
			
		||||
 | 
			
		||||
    // NewFrame
 | 
			
		||||
    IMGUI_API void          UpdateHoveredWindowAndCaptureFlags();
 | 
			
		||||
    IMGUI_API void          StartMouseMovingWindow(ImGuiWindow* window);
 | 
			
		||||
    IMGUI_API void          UpdateMouseMovingWindow();
 | 
			
		||||
@@ -1167,6 +1170,7 @@ namespace ImGui
 | 
			
		||||
    IMGUI_API ImGuiSettingsHandler* FindSettingsHandler(const char* type_name);
 | 
			
		||||
    IMGUI_API ImGuiWindowSettings*  FindWindowSettings(ImGuiID id);
 | 
			
		||||
 | 
			
		||||
    // Basic Accessors
 | 
			
		||||
    inline ImGuiID          GetItemID()     { ImGuiContext& g = *GImGui; return g.CurrentWindow->DC.LastItemId; }
 | 
			
		||||
    inline ImGuiID          GetActiveID()   { ImGuiContext& g = *GImGui; return g.ActiveId; }
 | 
			
		||||
    inline ImGuiID          GetFocusID()    { ImGuiContext& g = *GImGui; return g.NavId; }
 | 
			
		||||
@@ -1178,6 +1182,7 @@ namespace ImGui
 | 
			
		||||
    IMGUI_API void          KeepAliveID(ImGuiID id);
 | 
			
		||||
    IMGUI_API void          MarkItemValueChanged(ImGuiID id);
 | 
			
		||||
 | 
			
		||||
    // Basic Helpers for widget code
 | 
			
		||||
    IMGUI_API void          ItemSize(const ImVec2& size, float text_offset_y = 0.0f);
 | 
			
		||||
    IMGUI_API void          ItemSize(const ImRect& bb, float text_offset_y = 0.0f);
 | 
			
		||||
    IMGUI_API bool          ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb = NULL);
 | 
			
		||||
@@ -1191,6 +1196,7 @@ namespace ImGui
 | 
			
		||||
    IMGUI_API void          PushItemFlag(ImGuiItemFlags option, bool enabled);
 | 
			
		||||
    IMGUI_API void          PopItemFlag();
 | 
			
		||||
 | 
			
		||||
    // Popups, Modals, Tooltips
 | 
			
		||||
    IMGUI_API void          OpenPopupEx(ImGuiID id);
 | 
			
		||||
    IMGUI_API void          ClosePopup(ImGuiID id);
 | 
			
		||||
    IMGUI_API void          ClosePopupToLevel(int remaining);
 | 
			
		||||
@@ -1200,31 +1206,29 @@ namespace ImGui
 | 
			
		||||
    IMGUI_API void          BeginTooltipEx(ImGuiWindowFlags extra_flags, bool override_previous_tooltip = true);
 | 
			
		||||
    IMGUI_API ImGuiWindow*  GetFrontMostPopupModal();
 | 
			
		||||
 | 
			
		||||
    // Navigation
 | 
			
		||||
    IMGUI_API void          NavInitWindow(ImGuiWindow* window, bool force_reinit);
 | 
			
		||||
    IMGUI_API void          NavMoveRequestCancel();
 | 
			
		||||
    IMGUI_API void          NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, const ImRect& bb_rel, ImGuiNavMoveFlags move_flags);
 | 
			
		||||
    IMGUI_API void          NavMoveRequestTryWrapping(ImGuiWindow* window, ImGuiNavMoveFlags move_flags);
 | 
			
		||||
    IMGUI_API void          ActivateItem(ImGuiID id);   // Remotely activate a button, checkbox, tree node etc. given its unique ID. activation is queued and processed on the next frame when the item is encountered again.
 | 
			
		||||
 | 
			
		||||
    IMGUI_API float         GetNavInputAmount(ImGuiNavInput n, ImGuiInputReadMode mode);
 | 
			
		||||
    IMGUI_API ImVec2        GetNavInputAmount2d(ImGuiNavDirSourceFlags dir_sources, ImGuiInputReadMode mode, float slow_factor = 0.0f, float fast_factor = 0.0f);
 | 
			
		||||
    IMGUI_API int           CalcTypematicPressedRepeatAmount(float t, float t_prev, float repeat_delay, float repeat_rate);
 | 
			
		||||
 | 
			
		||||
    IMGUI_API void          Scrollbar(ImGuiLayoutType direction);
 | 
			
		||||
    IMGUI_API void          VerticalSeparator();        // Vertical separator, for menu bars (use current line height). not exposed because it is misleading what it doesn't have an effect on regular layout.
 | 
			
		||||
    IMGUI_API bool          SplitterBehavior(ImGuiID id, const ImRect& bb, 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 void          ActivateItem(ImGuiID id);   // Remotely activate a button, checkbox, tree node etc. given its unique ID. activation is queued and processed on the next frame when the item is encountered again.
 | 
			
		||||
    
 | 
			
		||||
    // Drag and Drop
 | 
			
		||||
    IMGUI_API bool          BeginDragDropTargetCustom(const ImRect& bb, ImGuiID id);
 | 
			
		||||
    IMGUI_API void          ClearDragDrop();
 | 
			
		||||
    IMGUI_API bool          IsDragDropPayloadBeingAccepted();
 | 
			
		||||
 | 
			
		||||
    // FIXME-WIP: New Columns API
 | 
			
		||||
    // New Columns API (FIXME-WIP)
 | 
			
		||||
    IMGUI_API void          BeginColumns(const char* str_id, int count, ImGuiColumnsFlags flags = 0); // setup number of columns. use an identifier to distinguish multiple column sets. close with EndColumns().
 | 
			
		||||
    IMGUI_API void          EndColumns();                                                             // close columns
 | 
			
		||||
    IMGUI_API void          PushColumnClipRect(int column_index = -1);
 | 
			
		||||
 | 
			
		||||
    // NB: All position are in absolute pixels coordinates (never using window coordinates internally)
 | 
			
		||||
    // Render helpers
 | 
			
		||||
    // AVOID USING OUTSIDE OF IMGUI.CPP! NOT FOR PUBLIC CONSUMPTION. THOSE FUNCTIONS ARE A MESS. THEIR SIGNATURE AND BEHAVIOR WILL CHANGE, THEY NEED TO BE REFACTORED INTO SOMETHING DECENT.
 | 
			
		||||
    // NB: All position are in absolute pixels coordinates (never using window coordinates internally)
 | 
			
		||||
    IMGUI_API void          RenderText(ImVec2 pos, const char* text, const char* text_end = NULL, bool hide_text_after_hash = true);
 | 
			
		||||
    IMGUI_API void          RenderTextWrapped(ImVec2 pos, const char* text, const char* text_end, float wrap_width);
 | 
			
		||||
    IMGUI_API void          RenderTextClipped(const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_end, const ImVec2* text_size_if_known, const ImVec2& align = ImVec2(0,0), const ImRect* clip_rect = NULL);
 | 
			
		||||
@@ -1239,14 +1243,22 @@ namespace ImGui
 | 
			
		||||
    IMGUI_API void          RenderRectFilledRangeH(ImDrawList* draw_list, const ImRect& rect, ImU32 col, float x_start_norm, float x_end_norm, float rounding);
 | 
			
		||||
    IMGUI_API const char*   FindRenderedTextEnd(const char* text, const char* text_end = NULL); // Find the optional ## from which we stop displaying text.
 | 
			
		||||
 | 
			
		||||
    IMGUI_API bool          ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool* out_held, ImGuiButtonFlags flags = 0);
 | 
			
		||||
    // Widgets
 | 
			
		||||
    IMGUI_API bool          ButtonEx(const char* label, const ImVec2& size_arg = ImVec2(0,0), ImGuiButtonFlags flags = 0);
 | 
			
		||||
    IMGUI_API bool          CloseButton(ImGuiID id, const ImVec2& pos, float radius);
 | 
			
		||||
    IMGUI_API bool          CollapseButton(ImGuiID id, const ImVec2& pos);
 | 
			
		||||
    IMGUI_API bool          ArrowButtonEx(const char* str_id, ImGuiDir dir, ImVec2 size_arg, ImGuiButtonFlags flags);
 | 
			
		||||
    IMGUI_API void          Scrollbar(ImGuiLayoutType direction);
 | 
			
		||||
    IMGUI_API void          VerticalSeparator();        // Vertical separator, for menu bars (use current line height). Not exposed because it is misleading and it doesn't have an effect on regular layout.
 | 
			
		||||
 | 
			
		||||
    // Widgets low-level behaviors
 | 
			
		||||
    IMGUI_API bool          ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool* out_held, ImGuiButtonFlags flags = 0);
 | 
			
		||||
    IMGUI_API bool          DragBehavior(ImGuiID id, ImGuiDataType data_type, void* v, float v_speed, const void* v_min, const void* v_max, const char* format, float power);
 | 
			
		||||
    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 = 0);
 | 
			
		||||
    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 void          TreePushRawID(ImGuiID id);
 | 
			
		||||
 | 
			
		||||
    IMGUI_API bool          InputTextEx(const char* label, char* buf, int buf_size, const ImVec2& size_arg, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback = NULL, void* user_data = NULL);
 | 
			
		||||
    IMGUI_API bool          InputScalarAsWidgetReplacement(const ImRect& bb, ImGuiID id, const char* label, ImGuiDataType data_type, void* data_ptr, const char* format);
 | 
			
		||||
@@ -1254,10 +1266,6 @@ namespace ImGui
 | 
			
		||||
    IMGUI_API void          ColorTooltip(const char* text, const float* col, ImGuiColorEditFlags flags);
 | 
			
		||||
    IMGUI_API void          ColorEditOptionsPopup(const float* col, ImGuiColorEditFlags flags);
 | 
			
		||||
 | 
			
		||||
    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 void          TreePushRawID(ImGuiID id);
 | 
			
		||||
 | 
			
		||||
    IMGUI_API void          PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size);
 | 
			
		||||
 | 
			
		||||
    // Shade functions (write over already created vertices)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user