mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 21:21:06 +01:00 
			
		
		
		
	Inputs: (breaking wip) removed IsMouseTripleClicked() added recently (during 1.86 WIP), replaced with GetMouseClickedCount(). (#3229)
This commit is contained in:
		| @@ -41,7 +41,9 @@ Breaking Changes: | |||||||
|  |  | ||||||
| Other Changes: | Other Changes: | ||||||
|  |  | ||||||
| - Added IsMouseTripleClicked() function. Tracking multi-click count in IO structure. (#3229) [@kudaba] | - Added GetMouseClickedCount() function, returning the number of successive clicks. (#3229) [@kudaba] | ||||||
|  |   (so IsMouseDoubleClicked(ImGuiMouseButton_Left) is same as GetMouseClickedCount(ImGuiMouseButton_Left) == 2, | ||||||
|  |   but it allows testing for triple clicks and more). | ||||||
| - Modals: fixed issue hovering popups inside a child inside a modal. (#4676, #4527) | - Modals: fixed issue hovering popups inside a child inside a modal. (#4676, #4527) | ||||||
| - Fixed IsWindowFocused()/IsWindowHovered() issues with childs inside popups. (#4676) | - Fixed IsWindowFocused()/IsWindowHovered() issues with childs inside popups. (#4676) | ||||||
| - Nav: Ctrl+tabbing to cycle through windows is now enabled regardless of using the _NavEnableKeyboard | - Nav: Ctrl+tabbing to cycle through windows is now enabled regardless of using the _NavEnableKeyboard | ||||||
| @@ -63,7 +65,7 @@ Other Changes: | |||||||
| - Clipper: currently focused item is automatically included in clipper range. | - Clipper: currently focused item is automatically included in clipper range. | ||||||
|   Fixes issue where e.g. drag and dropping an item and scrolling ensure the item source location is |   Fixes issue where e.g. drag and dropping an item and scrolling ensure the item source location is | ||||||
|   still submitted. (#3841, #1725) [@GamingMinds-DanielC, @ocornut] |   still submitted. (#3841, #1725) [@GamingMinds-DanielC, @ocornut] | ||||||
| - Cliooer: added ForceDisplayRangeByIndices() to force a given item (or several) to be stepped out | - Clipper: added ForceDisplayRangeByIndices() to force a given item (or several) to be stepped out | ||||||
|   during a clipping operation. (#3841) [@@GamingMinds-DanielC] |   during a clipping operation. (#3841) [@@GamingMinds-DanielC] | ||||||
| - Clipper: rework so gamepad/keyboard navigation doesn't create spikes in number of items requested | - Clipper: rework so gamepad/keyboard navigation doesn't create spikes in number of items requested | ||||||
|   by the clipper to display. (#3841) |   by the clipper to display. (#3841) | ||||||
|   | |||||||
| @@ -4796,11 +4796,11 @@ bool ImGui::IsMouseDoubleClicked(ImGuiMouseButton button) | |||||||
|     return g.IO.MouseClickedCount[button] == 2; |     return g.IO.MouseClickedCount[button] == 2; | ||||||
| } | } | ||||||
|  |  | ||||||
| bool ImGui::IsMouseTripleClicked(ImGuiMouseButton button) | int ImGui::GetMouseClickedCount(ImGuiMouseButton button) | ||||||
| { | { | ||||||
|     ImGuiContext& g = *GImGui; |     ImGuiContext& g = *GImGui; | ||||||
|     IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); |     IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); | ||||||
|     return g.IO.MouseClickedCount[button] == 3; |     return g.IO.MouseClickedCount[button]; | ||||||
| } | } | ||||||
|  |  | ||||||
| // Return if a mouse click/drag went past the given threshold. Valid to call during the MouseReleased frame. | // Return if a mouse click/drag went past the given threshold. Valid to call during the MouseReleased frame. | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -64,7 +64,7 @@ Index of this file: | |||||||
| // Version | // Version | ||||||
| // (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens) | // (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens) | ||||||
| #define IMGUI_VERSION               "1.86 WIP" | #define IMGUI_VERSION               "1.86 WIP" | ||||||
| #define IMGUI_VERSION_NUM           18512 | #define IMGUI_VERSION_NUM           18513 | ||||||
| #define IMGUI_CHECKVERSION()        ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx)) | #define IMGUI_CHECKVERSION()        ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx)) | ||||||
| #define IMGUI_HAS_TABLE | #define IMGUI_HAS_TABLE | ||||||
|  |  | ||||||
| @@ -896,10 +896,10 @@ namespace ImGui | |||||||
|     // - You can also use regular integer: it is forever guaranteed that 0=Left, 1=Right, 2=Middle. |     // - You can also use regular integer: it is forever guaranteed that 0=Left, 1=Right, 2=Middle. | ||||||
|     // - Dragging operations are only reported after mouse has moved a certain distance away from the initial clicking position (see 'lock_threshold' and 'io.MouseDraggingThreshold') |     // - Dragging operations are only reported after mouse has moved a certain distance away from the initial clicking position (see 'lock_threshold' and 'io.MouseDraggingThreshold') | ||||||
|     IMGUI_API bool          IsMouseDown(ImGuiMouseButton button);                               // is mouse button held? |     IMGUI_API bool          IsMouseDown(ImGuiMouseButton button);                               // is mouse button held? | ||||||
|     IMGUI_API bool          IsMouseClicked(ImGuiMouseButton button, bool repeat = false);       // did mouse button clicked? (went from !Down to Down) |     IMGUI_API bool          IsMouseClicked(ImGuiMouseButton button, bool repeat = false);       // did mouse button clicked? (went from !Down to Down). Same as GetMouseClickedCount() == 1. | ||||||
|     IMGUI_API bool          IsMouseReleased(ImGuiMouseButton button);                           // did mouse button released? (went from Down to !Down) |     IMGUI_API bool          IsMouseReleased(ImGuiMouseButton button);                           // did mouse button released? (went from Down to !Down) | ||||||
|     IMGUI_API bool          IsMouseDoubleClicked(ImGuiMouseButton button);                      // did mouse button double-clicked? (note that a double-click will also report IsMouseClicked() == true) |     IMGUI_API bool          IsMouseDoubleClicked(ImGuiMouseButton button);                      // did mouse button double-clicked? Same as GetMouseClickedCount() == 2. (note that a double-click will also report IsMouseClicked() == true) | ||||||
|     IMGUI_API bool          IsMouseTripleClicked(ImGuiMouseButton button);                      // did mouse button triple-clicked? (note that a triple-click will also report IsMouseClicked() == true) |     IMGUI_API int           GetMouseClickedCount(ImGuiMouseButton button);                      // return the number of successive mouse-clicks at the time where a click happen (otherwise 0). | ||||||
|     IMGUI_API bool          IsMouseHoveringRect(const ImVec2& r_min, const ImVec2& r_max, bool clip = true);// is mouse hovering given bounding rect (in screen space). clipped by current clipping settings, but disregarding of other consideration of focus/window ordering/popup-block. |     IMGUI_API bool          IsMouseHoveringRect(const ImVec2& r_min, const ImVec2& r_max, bool clip = true);// is mouse hovering given bounding rect (in screen space). clipped by current clipping settings, but disregarding of other consideration of focus/window ordering/popup-block. | ||||||
|     IMGUI_API bool          IsMousePosValid(const ImVec2* mouse_pos = NULL);                    // by convention we use (-FLT_MAX,-FLT_MAX) to denote that there is no mouse available |     IMGUI_API bool          IsMousePosValid(const ImVec2* mouse_pos = NULL);                    // by convention we use (-FLT_MAX,-FLT_MAX) to denote that there is no mouse available | ||||||
|     IMGUI_API bool          IsAnyMouseDown();                                                   // is any mouse button held? |     IMGUI_API bool          IsAnyMouseDown();                                                   // is any mouse button held? | ||||||
|   | |||||||
| @@ -5669,12 +5669,7 @@ static void ShowDemoWindowMisc() | |||||||
|  |  | ||||||
|             int count = IM_ARRAYSIZE(io.MouseDown); |             int count = IM_ARRAYSIZE(io.MouseDown); | ||||||
|             ImGui::Text("Mouse down:");         for (int i = 0; i < count; i++) if (ImGui::IsMouseDown(i))      { ImGui::SameLine(); ImGui::Text("b%d (%.02f secs)", i, io.MouseDownDuration[i]); } |             ImGui::Text("Mouse down:");         for (int i = 0; i < count; i++) if (ImGui::IsMouseDown(i))      { ImGui::SameLine(); ImGui::Text("b%d (%.02f secs)", i, io.MouseDownDuration[i]); } | ||||||
|             ImGui::Text("Mouse clicked:");      for (int i = 0; i < count; i++) if (ImGui::IsMouseClicked(i))       { ImGui::SameLine(); ImGui::Text("b%d", i); } |             ImGui::Text("Mouse clicked:");      for (int i = 0; i < count; i++) if (ImGui::IsMouseClicked(i))   { ImGui::SameLine(); ImGui::Text("b%d (%d)", i, ImGui::GetMouseClickedCount(i)); } | ||||||
|             ImGui::Text(" - clicked double:");  for (int i = 0; i < count; i++) if (ImGui::IsMouseDoubleClicked(i)) { ImGui::SameLine(); ImGui::Text("b%d", i); } |  | ||||||
|             ImGui::Text(" - clicked triple:");  for (int i = 0; i < count; i++) if (ImGui::IsMouseTripleClicked(i)) { ImGui::SameLine(); ImGui::Text("b%d", i); } |  | ||||||
|             ImGui::Text(" - clicked count:");   for (int i = 0; i < count; i++) if (io.MouseClickedCount[i])        { ImGui::SameLine(); ImGui::Text("b%d (%d)", i, io.MouseClickedCount[i]); } |  | ||||||
|             //ImGui::Text(" - last count:");    for (int i = 0; i < count; i++) if (io.MouseClickedLastCount[i])    { ImGui::SameLine(); ImGui::Text("b%d (%d)", i, io.MouseClickedLastCount[i]); } |  | ||||||
|  |  | ||||||
|             ImGui::Text("Mouse released:");     for (int i = 0; i < count; i++) if (ImGui::IsMouseReleased(i))  { ImGui::SameLine(); ImGui::Text("b%d", i); } |             ImGui::Text("Mouse released:");     for (int i = 0; i < count; i++) if (ImGui::IsMouseReleased(i))  { ImGui::SameLine(); ImGui::Text("b%d", i); } | ||||||
|             ImGui::Text("Mouse wheel: %.1f", io.MouseWheel); |             ImGui::Text("Mouse wheel: %.1f", io.MouseWheel); | ||||||
|             ImGui::Text("Pen Pressure: %.1f", io.PenPressure); // Note: currently unused |             ImGui::Text("Pen Pressure: %.1f", io.PenPressure); // Note: currently unused | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user