mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 20:51:06 +01:00 
			
		
		
		
	Documentation tweaks, comments
This commit is contained in:
		
							
								
								
									
										28
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -216,7 +216,7 @@ | ||||
|  - The examples/ folders contains many functional implementation of the pseudo-code above. | ||||
|  - When calling NewFrame(), the 'io.WantCaptureMouse', 'io.WantCaptureKeyboard' and 'io.WantTextInput' flags are updated.  | ||||
|    They tell you if ImGui intends to use your inputs. When a flag is set you want to hide the corresponding inputs from the rest of your application. | ||||
|    However, in both cases you need to pass on the inputs to imgui. Read the FAQ below for more information about those flags. | ||||
|    In both cases you need to pass on the inputs to imgui. Read the FAQ below for more information about those flags. | ||||
|  - Please read the FAQ above. Amusingly, it is called a FAQ because people frequently have the same issues! | ||||
|  | ||||
|  USING GAMEPAD/KEYBOARD NAVIGATION CONTROLS [BETA] | ||||
| @@ -258,11 +258,12 @@ | ||||
|  API BREAKING CHANGES | ||||
|  ==================== | ||||
|  | ||||
|  Occasionally introducing changes that are breaking the API. The breakage are generally minor and easy to fix. | ||||
|  Here is a change-log of API breaking changes, if you are using one of the functions listed, expect to have to fix some code. | ||||
|  Also read releases logs https://github.com/ocornut/imgui/releases for more details. | ||||
|  Occasionally introducing changes that are breaking the API. We try to make the breakage minor and easy to fix. | ||||
|  Below is a change-log of API breaking changes only. If you are using one of the functions listed, expect to have to fix some code. | ||||
|  When you are not sure about a old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files.  | ||||
|  You can read releases logs https://github.com/ocornut/imgui/releases for more details. | ||||
|  | ||||
|  - 2018/05/03 (1.61) - DragInt: The default compile-time format string has been changed from "%.0f" to "%d", we are not using integers internally any more.  | ||||
|  - 2018/05/03 (1.61) - DragInt(): The default compile-time format string has been changed from "%.0f" to "%d", we are not using integers internally any more.  | ||||
|                        If you used DragInt() with custom format strings, make sure you change them to use %d or an integer-compatible format. | ||||
|                        To honor backward-compatibility, the DragInt() code will currently parse and modify format strings to replace %*f with %d, giving time to users to upgrade their code. | ||||
|                        If you have IMGUI_DISABLE_OBSOLETE_FUNCTIONS enabled, the code will instead assert! You may run a reg-exp search on your codebase for e.g. "DragInt.*%f" to help you find them.  | ||||
| @@ -331,7 +332,7 @@ | ||||
|  - 2016/07/30 (1.50) - SameLine(x) with x>0.0f is now relative to left of column/group if any, and not always to left of window. This was sort of always the intent and hopefully breakage should be minimal. | ||||
|  - 2016/05/12 (1.49) - title bar (using ImGuiCol_TitleBg/ImGuiCol_TitleBgActive colors) isn't rendered over a window background (ImGuiCol_WindowBg color) anymore.  | ||||
|                        If your TitleBg/TitleBgActive alpha was 1.0f or you are using the default theme it will not affect you.  | ||||
|                        However if your TitleBg/TitleBgActive alpha was <1.0f you need to tweak your custom theme to readjust for the fact that we don't draw a WindowBg background behind the title bar. | ||||
|                        If your TitleBg/TitleBgActive alpha was <1.0f you need to tweak your custom theme to readjust for the fact that we don't draw a WindowBg background behind the title bar. | ||||
|                        This helper function will convert an old TitleBg/TitleBgActive color into a new one with the same visual output, given the OLD color and the OLD WindowBg color. | ||||
|                            ImVec4 ConvertTitleBgCol(const ImVec4& win_bg_col, const ImVec4& title_bg_col) | ||||
|                            { | ||||
| @@ -769,6 +770,7 @@ static void             UpdateMouseInputs(); | ||||
| static void             UpdateManualResize(ImGuiWindow* window, const ImVec2& size_auto_fit, int* border_held, int resize_grip_count, ImU32 resize_grip_col[4]); | ||||
| static void             FocusFrontMostActiveWindow(ImGuiWindow* ignore_window); | ||||
|  | ||||
| // Template widget behaviors | ||||
| template<typename TYPE, typename SIGNEDTYPE, typename FLOATTYPE> | ||||
| static bool             DragBehaviorT(ImGuiDataType data_type, TYPE* v, float v_speed, const TYPE v_min, const TYPE v_max, const char* format, float power); | ||||
|  | ||||
| @@ -2346,7 +2348,7 @@ static bool NavScoreItem(ImGuiNavMoveResult* result, ImRect cand) | ||||
|     // are found, so it only augments the graph produced by the above method using extra links. (important, since it doesn't guarantee strong connectedness) | ||||
|     // This is just to avoid buttons having no links in a particular direction when there's a suitable neighbor. you get good graphs without this too. | ||||
|     // 2017/09/29: FIXME: This now currently only enabled inside menu bars, ideally we'd disable it everywhere. Menus in particular need to catch failure. For general navigation it feels awkward. | ||||
|     // Disabling it may however lead to disconnected graphs when nodes are very spaced out on different axis. Perhaps consider offering this as an option? | ||||
|     // Disabling it may lead to disconnected graphs when nodes are very spaced out on different axis. Perhaps consider offering this as an option? | ||||
|     if (result->DistBox == FLT_MAX && dist_axial < result->DistAxial)  // Check axial match | ||||
|         if (g.NavLayer == 1 && !(g.NavWindow->Flags & ImGuiWindowFlags_ChildMenu)) | ||||
|             if ((g.NavMoveDir == ImGuiDir_Left && dax < 0.0f) || (g.NavMoveDir == ImGuiDir_Right && dax > 0.0f) || (g.NavMoveDir == ImGuiDir_Up && day < 0.0f) || (g.NavMoveDir == ImGuiDir_Down && day > 0.0f)) | ||||
| @@ -5123,7 +5125,7 @@ bool ImGui::OpenPopupOnItemClick(const char* str_id, int mouse_button) | ||||
|     if (IsMouseReleased(mouse_button) && IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup)) | ||||
|     { | ||||
|         ImGuiID id = str_id ? window->GetID(str_id) : window->DC.LastItemId; // If user hasn't passed an ID, we can use the LastItemID. Using LastItemID as a Popup ID won't conflict! | ||||
|         IM_ASSERT(id != 0);                                                  // However, you cannot pass a NULL str_id if the last item has no identifier (e.g. a Text() item) | ||||
|         IM_ASSERT(id != 0);                                                  // You cannot pass a NULL str_id if the last item has no identifier (e.g. a Text() item) | ||||
|         OpenPopupEx(id); | ||||
|         return true; | ||||
|     } | ||||
| @@ -5137,7 +5139,7 @@ bool ImGui::BeginPopupContextItem(const char* str_id, int mouse_button) | ||||
| { | ||||
|     ImGuiWindow* window = GImGui->CurrentWindow; | ||||
|     ImGuiID id = str_id ? window->GetID(str_id) : window->DC.LastItemId; // If user hasn't passed an ID, we can use the LastItemID. Using LastItemID as a Popup ID won't conflict! | ||||
|     IM_ASSERT(id != 0);                                                  // However, you cannot pass a NULL str_id if the last item has no identifier (e.g. a Text() item) | ||||
|     IM_ASSERT(id != 0);                                                  // You cannot pass a NULL str_id if the last item has no identifier (e.g. a Text() item) | ||||
|     if (IsMouseReleased(mouse_button) && IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup)) | ||||
|         OpenPopupEx(id); | ||||
|     return BeginPopupEx(id, ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings); | ||||
| @@ -8802,6 +8804,7 @@ static inline float SliderBehaviorCalcRatioFromValue(ImGuiDataType data_type, TY | ||||
|     return (float)((FLOATTYPE)(v_clamped - v_min) / (FLOATTYPE)(v_max - v_min)); | ||||
| } | ||||
|  | ||||
| // FIXME: Move some of the code into SliderBehavior(). Current responsability is larger than what the equivalent DragBehaviorT<> does, we also do some rendering, etc. | ||||
| template<typename TYPE, typename SIGNEDTYPE, typename FLOATTYPE> | ||||
| static bool ImGui::SliderBehaviorT(const ImRect& bb, ImGuiID id, ImGuiDataType data_type, TYPE* v, const TYPE v_min, const TYPE v_max, const char* format, float power, ImGuiSliderFlags flags) | ||||
| { | ||||
| @@ -9225,6 +9228,7 @@ bool ImGui::SliderInt4(const char* label, int v[4], int v_min, int v_max, const | ||||
|     return SliderScalarN(label, ImGuiDataType_S32, v, 4, &v_min, &v_max, format); | ||||
| } | ||||
|  | ||||
| // This is called by DragBehavior() when the widget is active (held by mouse or being manipulated with Nav controls) | ||||
| template<typename TYPE, typename SIGNEDTYPE, typename FLOATTYPE> | ||||
| static bool ImGui::DragBehaviorT(ImGuiDataType data_type, TYPE* v, float v_speed, const TYPE v_min, const TYPE v_max, const char* format, float power) | ||||
| { | ||||
| @@ -11035,7 +11039,7 @@ bool ImGui::Combo(const char* label, int* current_item, bool (*items_getter)(voi | ||||
|     if (*current_item >= 0 && *current_item < items_count) | ||||
|         items_getter(data, *current_item, &preview_text); | ||||
|  | ||||
|     // The old Combo() API exposed "popup_max_height_in_items", however the new more general BeginCombo() API doesn't, so we emulate it here. | ||||
|     // The old Combo() API exposed "popup_max_height_in_items". The new more general BeginCombo() API doesn't, so we emulate it here. | ||||
|     if (popup_max_height_in_items != -1 && !g.NextWindowData.SizeConstraintCond) | ||||
|     { | ||||
|         float popup_max_height = CalcMaxPopupHeightFromItemCount(popup_max_height_in_items); | ||||
| @@ -11247,7 +11251,7 @@ bool ImGui::ListBoxHeader(const char* label, const ImVec2& size_arg) | ||||
| bool ImGui::ListBoxHeader(const char* label, int items_count, int height_in_items) | ||||
| { | ||||
|     // Size default to hold ~7 items. Fractional number of items helps seeing that we can scroll down/up without looking at scrollbar. | ||||
|     // However we don't add +0.40f if items_count <= height_in_items. It is slightly dodgy, because it means a dynamic list of items will make the widget resize occasionally when it crosses that size. | ||||
|     // We don't add +0.40f if items_count <= height_in_items. It is slightly dodgy, because it means a dynamic list of items will make the widget resize occasionally when it crosses that size. | ||||
|     // I am expecting that someone will come and complain about this behavior in a remote future, then we can advise on a better solution. | ||||
|     if (height_in_items < 0) | ||||
|         height_in_items = ImMin(items_count, 7); | ||||
| @@ -11603,7 +11607,7 @@ void ImGui::EndMenu() | ||||
| { | ||||
|     // Nav: When a left move request _within our child menu_ failed, close the menu. | ||||
|     // A menu doesn't close itself because EndMenuBar() wants the catch the last Left<>Right inputs. | ||||
|     // However it means that with the current code, a BeginMenu() from outside another menu or a menu-bar won't be closable with the Left direction. | ||||
|     // However, it means that with the current code, a BeginMenu() from outside another menu or a menu-bar won't be closable with the Left direction. | ||||
|     ImGuiContext& g = *GImGui; | ||||
|     ImGuiWindow* window = g.CurrentWindow; | ||||
|     if (g.NavWindow && g.NavWindow->ParentWindow == window && g.NavMoveDir == ImGuiDir_Left && NavMoveRequestButNoResultYet() && window->DC.LayoutType == ImGuiLayoutType_Vertical) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user