Merge branch 'master' into navigation
# Conflicts: # imgui_internal.h
This commit is contained in:
commit
a126c702d9
32
imgui.cpp
32
imgui.cpp
@ -3897,18 +3897,22 @@ void ImGui::RenderBullet(ImVec2 pos)
|
|||||||
window->DrawList->AddCircleFilled(pos, GImGui->FontSize*0.20f, GetColorU32(ImGuiCol_Text), 8);
|
window->DrawList->AddCircleFilled(pos, GImGui->FontSize*0.20f, GetColorU32(ImGuiCol_Text), 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImGui::RenderCheckMark(ImVec2 pos, ImU32 col)
|
void ImGui::RenderCheckMark(ImVec2 pos, ImU32 col, float sz)
|
||||||
{
|
{
|
||||||
ImGuiContext& g = *GImGui;
|
ImGuiContext& g = *GImGui;
|
||||||
ImGuiWindow* window = g.CurrentWindow;
|
ImGuiWindow* window = g.CurrentWindow;
|
||||||
float start_x = (float)(int)(g.FontSize * 0.307f + 0.5f);
|
|
||||||
float rem_third = (float)(int)((g.FontSize - start_x) / 3.0f);
|
float thickness = ImMax(sz / 5.0f, 1.0f);
|
||||||
float bx = pos.x + 0.5f + start_x + rem_third;
|
sz -= thickness*0.5f;
|
||||||
float by = pos.y - 1.0f + (float)(int)(g.Font->Ascent * (g.FontSize / g.Font->FontSize) + 0.5f) + (float)(int)(g.Font->DisplayOffset.y);
|
pos += ImVec2(thickness*0.25f, thickness*0.25f);
|
||||||
window->DrawList->PathLineTo(ImVec2(bx - rem_third, by - rem_third));
|
|
||||||
|
float third = sz / 3.0f;
|
||||||
|
float bx = pos.x + third;
|
||||||
|
float by = pos.y + sz - third*0.5f;
|
||||||
|
window->DrawList->PathLineTo(ImVec2(bx - third, by - third));
|
||||||
window->DrawList->PathLineTo(ImVec2(bx, by));
|
window->DrawList->PathLineTo(ImVec2(bx, by));
|
||||||
window->DrawList->PathLineTo(ImVec2(bx + rem_third*2, by - rem_third*2));
|
window->DrawList->PathLineTo(ImVec2(bx + third*2, by - third*2));
|
||||||
window->DrawList->PathStroke(col, false);
|
window->DrawList->PathStroke(col, false, thickness);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImGui::RenderNavHighlight(const ImRect& bb, ImGuiID id, ImGuiNavHighlightFlags flags)
|
void ImGui::RenderNavHighlight(const ImRect& bb, ImGuiID id, ImGuiNavHighlightFlags flags)
|
||||||
@ -6786,8 +6790,12 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool
|
|||||||
if (((flags & ImGuiButtonFlags_PressedOnClick) && g.IO.MouseClicked[0]) || ((flags & ImGuiButtonFlags_PressedOnDoubleClick) && g.IO.MouseDoubleClicked[0]))
|
if (((flags & ImGuiButtonFlags_PressedOnClick) && g.IO.MouseClicked[0]) || ((flags & ImGuiButtonFlags_PressedOnDoubleClick) && g.IO.MouseDoubleClicked[0]))
|
||||||
{
|
{
|
||||||
pressed = true;
|
pressed = true;
|
||||||
ClearActiveID();
|
if (flags & ImGuiButtonFlags_NoHoldingActiveID)
|
||||||
|
ClearActiveID();
|
||||||
|
else
|
||||||
|
SetActiveID(id, window); // Hold on ID
|
||||||
FocusWindow(window);
|
FocusWindow(window);
|
||||||
|
g.ActiveIdClickOffset = g.IO.MousePos - bb.Min;
|
||||||
}
|
}
|
||||||
if ((flags & ImGuiButtonFlags_PressedOnRelease) && g.IO.MouseReleased[0])
|
if ((flags & ImGuiButtonFlags_PressedOnRelease) && g.IO.MouseReleased[0])
|
||||||
{
|
{
|
||||||
@ -8630,7 +8638,7 @@ bool ImGui::Checkbox(const char* label, bool* v)
|
|||||||
{
|
{
|
||||||
const float check_sz = ImMin(check_bb.GetWidth(), check_bb.GetHeight());
|
const float check_sz = ImMin(check_bb.GetWidth(), check_bb.GetHeight());
|
||||||
const float pad = ImMax(1.0f, (float)(int)(check_sz / 6.0f));
|
const float pad = ImMax(1.0f, (float)(int)(check_sz / 6.0f));
|
||||||
window->DrawList->AddRectFilled(check_bb.Min+ImVec2(pad,pad), check_bb.Max-ImVec2(pad,pad), GetColorU32(ImGuiCol_CheckMark), style.FrameRounding);
|
RenderCheckMark(check_bb.Min + ImVec2(pad,pad), GetColorU32(ImGuiCol_CheckMark), check_bb.GetWidth() - pad*2.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g.LogEnabled)
|
if (g.LogEnabled)
|
||||||
@ -9967,7 +9975,7 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl
|
|||||||
}
|
}
|
||||||
|
|
||||||
ImGuiButtonFlags button_flags = 0;
|
ImGuiButtonFlags button_flags = 0;
|
||||||
if (flags & ImGuiSelectableFlags_Menu) button_flags |= ImGuiButtonFlags_PressedOnClick;
|
if (flags & ImGuiSelectableFlags_Menu) button_flags |= ImGuiButtonFlags_PressedOnClick | ImGuiButtonFlags_NoHoldingActiveID;
|
||||||
if (flags & ImGuiSelectableFlags_MenuItem) button_flags |= ImGuiButtonFlags_PressedOnRelease;
|
if (flags & ImGuiSelectableFlags_MenuItem) button_flags |= ImGuiButtonFlags_PressedOnRelease;
|
||||||
if (flags & ImGuiSelectableFlags_Disabled) button_flags |= ImGuiButtonFlags_Disabled;
|
if (flags & ImGuiSelectableFlags_Disabled) button_flags |= ImGuiButtonFlags_Disabled;
|
||||||
if (flags & ImGuiSelectableFlags_AllowDoubleClick) button_flags |= ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnDoubleClick;
|
if (flags & ImGuiSelectableFlags_AllowDoubleClick) button_flags |= ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnDoubleClick;
|
||||||
@ -10135,7 +10143,7 @@ bool ImGui::MenuItem(const char* label, const char* shortcut, bool selected, boo
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (selected)
|
if (selected)
|
||||||
RenderCheckMark(pos + ImVec2(window->MenuColumns.Pos[2] + extra_w + g.FontSize * 0.20f, 0.0f), GetColorU32(enabled ? ImGuiCol_Text : ImGuiCol_TextDisabled));
|
RenderCheckMark(pos + ImVec2(window->MenuColumns.Pos[2] + extra_w + g.FontSize * (0.20f+0.200f), g.FontSize * 0.134f * 0.5f), GetColorU32(enabled ? ImGuiCol_Text : ImGuiCol_TextDisabled), g.FontSize * 0.866f);
|
||||||
|
|
||||||
return pressed;
|
return pressed;
|
||||||
}
|
}
|
||||||
|
@ -109,6 +109,7 @@ IMGUI_API void ImTriangleBarycentricCoords(const ImVec2& a, const ImVec
|
|||||||
// Helpers: String
|
// Helpers: String
|
||||||
IMGUI_API int ImStricmp(const char* str1, const char* str2);
|
IMGUI_API int ImStricmp(const char* str1, const char* str2);
|
||||||
IMGUI_API int ImStrnicmp(const char* str1, const char* str2, int count);
|
IMGUI_API int ImStrnicmp(const char* str1, const char* str2, int count);
|
||||||
|
IMGUI_API void ImStrncpy(char* dst, const char* src, int count);
|
||||||
IMGUI_API char* ImStrdup(const char* str);
|
IMGUI_API char* ImStrdup(const char* str);
|
||||||
IMGUI_API int ImStrlenW(const ImWchar* str);
|
IMGUI_API int ImStrlenW(const ImWchar* str);
|
||||||
IMGUI_API const ImWchar*ImStrbolW(const ImWchar* buf_mid_line, const ImWchar* buf_begin); // Find beginning-of-line
|
IMGUI_API const ImWchar*ImStrbolW(const ImWchar* buf_mid_line, const ImWchar* buf_begin); // Find beginning-of-line
|
||||||
@ -142,6 +143,7 @@ static inline int ImClamp(int v, int mn, int mx)
|
|||||||
static inline float ImClamp(float v, float mn, float mx) { return (v < mn) ? mn : (v > mx) ? mx : v; }
|
static inline float ImClamp(float v, float mn, float mx) { return (v < mn) ? mn : (v > mx) ? mx : v; }
|
||||||
static inline ImVec2 ImClamp(const ImVec2& f, const ImVec2& mn, ImVec2 mx) { return ImVec2(ImClamp(f.x,mn.x,mx.x), ImClamp(f.y,mn.y,mx.y)); }
|
static inline ImVec2 ImClamp(const ImVec2& f, const ImVec2& mn, ImVec2 mx) { return ImVec2(ImClamp(f.x,mn.x,mx.x), ImClamp(f.y,mn.y,mx.y)); }
|
||||||
static inline float ImSaturate(float f) { return (f < 0.0f) ? 0.0f : (f > 1.0f) ? 1.0f : f; }
|
static inline float ImSaturate(float f) { return (f < 0.0f) ? 0.0f : (f > 1.0f) ? 1.0f : f; }
|
||||||
|
static inline void ImSwap(int& a, int& b) { int tmp = a; a = b; b = tmp; }
|
||||||
static inline void ImSwap(float& a, float& b) { float tmp = a; a = b; b = tmp; }
|
static inline void ImSwap(float& a, float& b) { float tmp = a; a = b; b = tmp; }
|
||||||
static inline int ImLerp(int a, int b, float t) { return (int)(a + (b - a) * t); }
|
static inline int ImLerp(int a, int b, float t) { return (int)(a + (b - a) * t); }
|
||||||
static inline float ImLerp(float a, float b, float t) { return a + (b - a) * t; }
|
static inline float ImLerp(float a, float b, float t) { return a + (b - a) * t; }
|
||||||
@ -182,7 +184,8 @@ enum ImGuiButtonFlags_
|
|||||||
ImGuiButtonFlags_AlignTextBaseLine = 1 << 8, // 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_AlignTextBaseLine = 1 << 8, // 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 << 9, // disable interaction if a key modifier is held
|
ImGuiButtonFlags_NoKeyModifiers = 1 << 9, // disable interaction if a key modifier is held
|
||||||
ImGuiButtonFlags_AllowOverlapMode = 1 << 10, // require previous frame HoveredId to either match id or be null before being usable
|
ImGuiButtonFlags_AllowOverlapMode = 1 << 10, // require previous frame HoveredId to either match id or be null before being usable
|
||||||
ImGuiButtonFlags_NoNavFocus = 1 << 11 // don't override navigation focus when activated
|
ImGuiButtonFlags_NoHoldingActiveID = 1 << 11, // don't set ActiveId while holding the mouse (ImGuiButtonFlags_PressedOnClick only)
|
||||||
|
ImGuiButtonFlags_NoNavFocus = 1 << 12 // don't override navigation focus when activated
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ImGuiSliderFlags_
|
enum ImGuiSliderFlags_
|
||||||
@ -915,7 +918,7 @@ namespace ImGui
|
|||||||
IMGUI_API void RenderColorRectWithAlphaCheckerboard(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, float grid_step, ImVec2 grid_off, float rounding = 0.0f, int rounding_corners_flags = ~0);
|
IMGUI_API void RenderColorRectWithAlphaCheckerboard(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, float grid_step, ImVec2 grid_off, float rounding = 0.0f, int rounding_corners_flags = ~0);
|
||||||
IMGUI_API void RenderCollapseTriangle(ImVec2 pos, bool is_open, float scale = 1.0f);
|
IMGUI_API void RenderCollapseTriangle(ImVec2 pos, bool is_open, float scale = 1.0f);
|
||||||
IMGUI_API void RenderBullet(ImVec2 pos);
|
IMGUI_API void RenderBullet(ImVec2 pos);
|
||||||
IMGUI_API void RenderCheckMark(ImVec2 pos, ImU32 col);
|
IMGUI_API void RenderCheckMark(ImVec2 pos, ImU32 col, float sz);
|
||||||
IMGUI_API void RenderNavHighlight(const ImRect& bb, ImGuiID id, ImGuiNavHighlightFlags flags = ImGuiNavHighlightFlags_TypeDefault); // Navigation highlight
|
IMGUI_API void RenderNavHighlight(const ImRect& bb, ImGuiID id, ImGuiNavHighlightFlags flags = ImGuiNavHighlightFlags_TypeDefault); // Navigation highlight
|
||||||
IMGUI_API void RenderRectFilledRangeH(ImDrawList* draw_list, const ImRect& rect, ImU32 col, float x_start_norm, float x_end_norm, float rounding);
|
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 const char* FindRenderedTextEnd(const char* text, const char* text_end = NULL); // Find the optional ## from which we stop displaying text.
|
||||||
|
Loading…
Reference in New Issue
Block a user