mirror of
https://github.com/Drezil/imgui.git
synced 2025-04-01 17:02:45 +00:00
Various zealous warning fixes (thanks Clang). (Navigation branch)
This commit is contained in:
parent
ffb4f6ca8c
commit
6c63c7a8b1
14
imgui.cpp
14
imgui.cpp
@ -2149,7 +2149,7 @@ static bool NavScoreItem(ImRect cand)
|
|||||||
// FIXME-NAVIGATION: Introducing biases for vertical navigation, needs to be removed.
|
// FIXME-NAVIGATION: Introducing biases for vertical navigation, needs to be removed.
|
||||||
float dbx = NavScoreItemDistInterval(cand.Min.x, cand.Max.x, curr.Min.x, curr.Max.x);
|
float dbx = NavScoreItemDistInterval(cand.Min.x, cand.Max.x, curr.Min.x, curr.Max.x);
|
||||||
float dby = NavScoreItemDistInterval(ImLerp(cand.Min.y, cand.Max.y, 0.2f), ImLerp(cand.Min.y, cand.Max.y, 0.8f), ImLerp(curr.Min.y, curr.Max.y, 0.2f), ImLerp(curr.Min.y, curr.Max.y, 0.8f)); // Scale down on Y to keep using box-distance for vertically touching items
|
float dby = NavScoreItemDistInterval(ImLerp(cand.Min.y, cand.Max.y, 0.2f), ImLerp(cand.Min.y, cand.Max.y, 0.8f), ImLerp(curr.Min.y, curr.Max.y, 0.2f), ImLerp(curr.Min.y, curr.Max.y, 0.8f)); // Scale down on Y to keep using box-distance for vertically touching items
|
||||||
if (dby && dbx)
|
if (dby != 0.0f && dbx != 0.0f)
|
||||||
dbx = (dbx/1000.0f) + ((dbx > 0.0f) ? +1.0f : -1.0f);
|
dbx = (dbx/1000.0f) + ((dbx > 0.0f) ? +1.0f : -1.0f);
|
||||||
float dist_box = fabsf(dbx) + fabsf(dby);
|
float dist_box = fabsf(dbx) + fabsf(dby);
|
||||||
|
|
||||||
@ -2161,7 +2161,7 @@ static bool NavScoreItem(ImRect cand)
|
|||||||
// Determine which quadrant of 'curr' our candidate item 'cand' lies in based on distance
|
// Determine which quadrant of 'curr' our candidate item 'cand' lies in based on distance
|
||||||
ImGuiDir quadrant;
|
ImGuiDir quadrant;
|
||||||
float dax = 0.0f, day = 0.0f, dist_axial = 0.0f;
|
float dax = 0.0f, day = 0.0f, dist_axial = 0.0f;
|
||||||
if (dbx || dby)
|
if (dbx != 0.0f || dby != 0.0f)
|
||||||
{
|
{
|
||||||
// For non-overlapping boxes, use distance between boxes
|
// For non-overlapping boxes, use distance between boxes
|
||||||
dax = dbx;
|
dax = dbx;
|
||||||
@ -2169,7 +2169,7 @@ static bool NavScoreItem(ImRect cand)
|
|||||||
dist_axial = dist_box;
|
dist_axial = dist_box;
|
||||||
quadrant = NavScoreItemGetQuadrant(dbx, dby);
|
quadrant = NavScoreItemGetQuadrant(dbx, dby);
|
||||||
}
|
}
|
||||||
else if (dcx || dcy)
|
else if (dcx != 0.0f || dcy != 0.0f)
|
||||||
{
|
{
|
||||||
// For overlapping boxes with different centers, use distance between centers
|
// For overlapping boxes with different centers, use distance between centers
|
||||||
dax = dcx;
|
dax = dcx;
|
||||||
@ -2232,7 +2232,10 @@ static bool NavScoreItem(ImRect cand)
|
|||||||
if (g.NavMoveResultDistBox == FLT_MAX && dist_axial < g.NavMoveResultDistAxial) // Check axial match
|
if (g.NavMoveResultDistBox == FLT_MAX && dist_axial < g.NavMoveResultDistAxial) // Check axial match
|
||||||
if (g.NavLayer == 1 && !(g.NavWindow->Flags & ImGuiWindowFlags_ChildMenu))
|
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))
|
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))
|
||||||
g.NavMoveResultDistAxial = dist_axial, new_best = true;
|
{
|
||||||
|
g.NavMoveResultDistAxial = dist_axial;
|
||||||
|
new_best = true;
|
||||||
|
}
|
||||||
|
|
||||||
return new_best;
|
return new_best;
|
||||||
}
|
}
|
||||||
@ -8329,7 +8332,8 @@ bool ImGui::SliderBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v
|
|||||||
else if (g.ActiveIdSource == ImGuiInputSource_Nav && g.NavActivateDownId == id)
|
else if (g.ActiveIdSource == ImGuiInputSource_Nav && g.NavActivateDownId == id)
|
||||||
{
|
{
|
||||||
const ImVec2 delta2 = GetNavInputAmount2d(0, ImGuiNavReadMode_RepeatFast, 0.0f, 0.0f);
|
const ImVec2 delta2 = GetNavInputAmount2d(0, ImGuiNavReadMode_RepeatFast, 0.0f, 0.0f);
|
||||||
if (float delta = is_horizontal ? delta2.x : -delta2.y)
|
float delta = is_horizontal ? delta2.x : -delta2.y;
|
||||||
|
if (delta != 0.0f)
|
||||||
{
|
{
|
||||||
clicked_t = SliderBehaviorCalcRatioFromValue(*v, v_min, v_max, power, linear_zero_pos);
|
clicked_t = SliderBehaviorCalcRatioFromValue(*v, v_min, v_max, power, linear_zero_pos);
|
||||||
if (decimal_precision == 0 && !is_non_linear)
|
if (decimal_precision == 0 && !is_non_linear)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user