Changed SameLine() parameters from int to float.

This commit is contained in:
ocornut 2015-07-10 19:36:34 -06:00
parent 8094aa78d2
commit b67593a4b1
2 changed files with 30 additions and 29 deletions

View File

@ -136,6 +136,7 @@
Occasionally introducing changes that are breaking the API. The breakage are generally minor and easy to fix. 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. 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.
- 2015/07/10 (1.43) - changed SameLine() parameters from int to float.
- 2015/07/02 (1.42) - renamed SetScrollPosHere() to SetScrollFromCursorPos(). Kept inline redirection function (will obsolete). - 2015/07/02 (1.42) - renamed SetScrollPosHere() to SetScrollFromCursorPos(). Kept inline redirection function (will obsolete).
- 2015/07/02 (1.42) - renamed GetScrollPosY() to GetScrollY(). Necessary to reduce confusion along with other scrolling functions, because positions (e.g. cursor position) are not equivalent to scrolling amount. - 2015/07/02 (1.42) - renamed GetScrollPosY() to GetScrollY(). Necessary to reduce confusion along with other scrolling functions, because positions (e.g. cursor position) are not equivalent to scrolling amount.
- 2015/06/14 (1.41) - changed ImageButton() default bg_col parameter from (0,0,0,1) (black) to (0,0,0,0) (transparent) - makes a difference when texture have transparence - 2015/06/14 (1.41) - changed ImageButton() default bg_col parameter from (0,0,0,1) (black) to (0,0,0,0) (transparent) - makes a difference when texture have transparence
@ -6161,7 +6162,7 @@ static bool SliderFloatN(const char* label, float* v, int components, float v_mi
{ {
ImGui::PushID(i); ImGui::PushID(i);
value_changed |= ImGui::SliderFloat("##v", &v[i], v_min, v_max, display_format, power); value_changed |= ImGui::SliderFloat("##v", &v[i], v_min, v_max, display_format, power);
ImGui::SameLine(0, (int)g.Style.ItemInnerSpacing.x); ImGui::SameLine(0, g.Style.ItemInnerSpacing.x);
ImGui::PopID(); ImGui::PopID();
ImGui::PopItemWidth(); ImGui::PopItemWidth();
} }
@ -6203,7 +6204,7 @@ static bool SliderIntN(const char* label, int* v, int components, int v_min, int
{ {
ImGui::PushID(i); ImGui::PushID(i);
value_changed |= ImGui::SliderInt("##v", &v[i], v_min, v_max, display_format); value_changed |= ImGui::SliderInt("##v", &v[i], v_min, v_max, display_format);
ImGui::SameLine(0, (int)g.Style.ItemInnerSpacing.x); ImGui::SameLine(0, g.Style.ItemInnerSpacing.x);
ImGui::PopID(); ImGui::PopID();
ImGui::PopItemWidth(); ImGui::PopItemWidth();
} }
@ -6387,7 +6388,7 @@ static bool DragFloatN(const char* label, float* v, int components, float v_spee
{ {
ImGui::PushID(i); ImGui::PushID(i);
value_changed |= ImGui::DragFloat("##v", &v[i], v_speed, v_min, v_max, display_format, power); value_changed |= ImGui::DragFloat("##v", &v[i], v_speed, v_min, v_max, display_format, power);
ImGui::SameLine(0, (int)g.Style.ItemInnerSpacing.x); ImGui::SameLine(0, g.Style.ItemInnerSpacing.x);
ImGui::PopID(); ImGui::PopID();
ImGui::PopItemWidth(); ImGui::PopItemWidth();
} }
@ -6427,10 +6428,10 @@ bool ImGui::DragFloatRange2(const char* label, float* v_current_min, float* v_cu
bool value_changed = ImGui::DragFloat("##min", v_current_min, v_speed, (v_min >= v_max) ? -FLT_MAX : v_min, (v_min >= v_max) ? *v_current_max : ImMin(v_max, *v_current_max), display_format, power); bool value_changed = ImGui::DragFloat("##min", v_current_min, v_speed, (v_min >= v_max) ? -FLT_MAX : v_min, (v_min >= v_max) ? *v_current_max : ImMin(v_max, *v_current_max), display_format, power);
ImGui::PopItemWidth(); ImGui::PopItemWidth();
ImGui::SameLine(0, (int)g.Style.ItemInnerSpacing.x); ImGui::SameLine(0, g.Style.ItemInnerSpacing.x);
value_changed |= ImGui::DragFloat("##max", v_current_max, v_speed, (v_min >= v_max) ? *v_current_min : ImMax(v_min, *v_current_min), (v_min >= v_max) ? FLT_MAX : v_max, display_format_max ? display_format_max : display_format, power); value_changed |= ImGui::DragFloat("##max", v_current_max, v_speed, (v_min >= v_max) ? *v_current_min : ImMax(v_min, *v_current_min), (v_min >= v_max) ? FLT_MAX : v_max, display_format_max ? display_format_max : display_format, power);
ImGui::PopItemWidth(); ImGui::PopItemWidth();
ImGui::SameLine(0, (int)g.Style.ItemInnerSpacing.x); ImGui::SameLine(0, g.Style.ItemInnerSpacing.x);
ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); ImGui::TextUnformatted(label, FindTextDisplayEnd(label));
ImGui::EndGroup(); ImGui::EndGroup();
@ -6465,7 +6466,7 @@ static bool DragIntN(const char* label, int* v, int components, float v_speed, i
{ {
ImGui::PushID(i); ImGui::PushID(i);
value_changed |= ImGui::DragInt("##v", &v[i], v_speed, v_min, v_max, display_format); value_changed |= ImGui::DragInt("##v", &v[i], v_speed, v_min, v_max, display_format);
ImGui::SameLine(0, (int)g.Style.ItemInnerSpacing.x); ImGui::SameLine(0, g.Style.ItemInnerSpacing.x);
ImGui::PopID(); ImGui::PopID();
ImGui::PopItemWidth(); ImGui::PopItemWidth();
} }
@ -6505,10 +6506,10 @@ bool ImGui::DragIntRange2(const char* label, int* v_current_min, int* v_current_
bool value_changed = ImGui::DragInt("##min", v_current_min, v_speed, (v_min >= v_max) ? IM_INT_MIN : v_min, (v_min >= v_max) ? *v_current_max : ImMin(v_max, *v_current_max), display_format); bool value_changed = ImGui::DragInt("##min", v_current_min, v_speed, (v_min >= v_max) ? IM_INT_MIN : v_min, (v_min >= v_max) ? *v_current_max : ImMin(v_max, *v_current_max), display_format);
ImGui::PopItemWidth(); ImGui::PopItemWidth();
ImGui::SameLine(0, (int)g.Style.ItemInnerSpacing.x); ImGui::SameLine(0, g.Style.ItemInnerSpacing.x);
value_changed |= ImGui::DragInt("##max", v_current_max, v_speed, (v_min >= v_max) ? *v_current_min : ImMax(v_min, *v_current_min), (v_min >= v_max) ? IM_INT_MAX : v_max, display_format_max ? display_format_max : display_format); value_changed |= ImGui::DragInt("##max", v_current_max, v_speed, (v_min >= v_max) ? *v_current_min : ImMax(v_min, *v_current_min), (v_min >= v_max) ? IM_INT_MAX : v_max, display_format_max ? display_format_max : display_format);
ImGui::PopItemWidth(); ImGui::PopItemWidth();
ImGui::SameLine(0, (int)g.Style.ItemInnerSpacing.x); ImGui::SameLine(0, g.Style.ItemInnerSpacing.x);
ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); ImGui::TextUnformatted(label, FindTextDisplayEnd(label));
ImGui::EndGroup(); ImGui::EndGroup();
@ -6672,7 +6673,7 @@ bool ImGui::Checkbox(const char* label, bool* v)
ImRect total_bb = check_bb; ImRect total_bb = check_bb;
if (label_size.x > 0) if (label_size.x > 0)
SameLine(0, (int)style.ItemInnerSpacing.x); SameLine(0, style.ItemInnerSpacing.x);
const ImRect text_bb(window->DC.CursorPos + ImVec2(0,style.FramePadding.y), window->DC.CursorPos + ImVec2(0,style.FramePadding.y) + label_size); const ImRect text_bb(window->DC.CursorPos + ImVec2(0,style.FramePadding.y), window->DC.CursorPos + ImVec2(0,style.FramePadding.y) + label_size);
if (label_size.x > 0) if (label_size.x > 0)
{ {
@ -6730,7 +6731,7 @@ bool ImGui::RadioButton(const char* label, bool active)
ImRect total_bb = check_bb; ImRect total_bb = check_bb;
if (label_size.x > 0) if (label_size.x > 0)
SameLine(0, (int)style.ItemInnerSpacing.x); SameLine(0, style.ItemInnerSpacing.x);
const ImRect text_bb(window->DC.CursorPos + ImVec2(0, style.FramePadding.y), window->DC.CursorPos + ImVec2(0, style.FramePadding.y) + label_size); const ImRect text_bb(window->DC.CursorPos + ImVec2(0, style.FramePadding.y), window->DC.CursorPos + ImVec2(0, style.FramePadding.y) + label_size);
if (label_size.x > 0) if (label_size.x > 0)
{ {
@ -7575,13 +7576,13 @@ bool ImGui::InputFloat(const char* label, float *v, float step, float step_fast,
if (step > 0.0f) if (step > 0.0f)
{ {
ImGui::PopItemWidth(); ImGui::PopItemWidth();
ImGui::SameLine(0, (int)style.ItemInnerSpacing.x); ImGui::SameLine(0, style.ItemInnerSpacing.x);
if (ButtonEx("-", button_sz, ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups)) if (ButtonEx("-", button_sz, ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups))
{ {
*v -= g.IO.KeyCtrl && step_fast > 0.0f ? step_fast : step; *v -= g.IO.KeyCtrl && step_fast > 0.0f ? step_fast : step;
value_changed = true; value_changed = true;
} }
ImGui::SameLine(0, (int)style.ItemInnerSpacing.x); ImGui::SameLine(0, style.ItemInnerSpacing.x);
if (ButtonEx("+", button_sz, ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups)) if (ButtonEx("+", button_sz, ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups))
{ {
*v += g.IO.KeyCtrl && step_fast > 0.0f ? step_fast : step; *v += g.IO.KeyCtrl && step_fast > 0.0f ? step_fast : step;
@ -7592,7 +7593,7 @@ bool ImGui::InputFloat(const char* label, float *v, float step, float step_fast,
if (label_size.x > 0) if (label_size.x > 0)
{ {
ImGui::SameLine(0, (int)style.ItemInnerSpacing.x); ImGui::SameLine(0, style.ItemInnerSpacing.x);
RenderText(ImVec2(window->DC.CursorPos.x, window->DC.CursorPos.y + style.FramePadding.y), label); RenderText(ImVec2(window->DC.CursorPos.x, window->DC.CursorPos.y + style.FramePadding.y), label);
ItemSize(label_size, style.FramePadding.y); ItemSize(label_size, style.FramePadding.y);
} }
@ -7625,7 +7626,7 @@ static bool InputFloatN(const char* label, float* v, int components, int decimal
{ {
ImGui::PushID(i); ImGui::PushID(i);
value_changed |= ImGui::InputFloat("##v", &v[i], 0, 0, decimal_precision, extra_flags); value_changed |= ImGui::InputFloat("##v", &v[i], 0, 0, decimal_precision, extra_flags);
ImGui::SameLine(0, (int)g.Style.ItemInnerSpacing.x); ImGui::SameLine(0, g.Style.ItemInnerSpacing.x);
ImGui::PopID(); ImGui::PopID();
ImGui::PopItemWidth(); ImGui::PopItemWidth();
} }
@ -7668,7 +7669,7 @@ static bool InputIntN(const char* label, int* v, int components, ImGuiInputTextF
{ {
ImGui::PushID(i); ImGui::PushID(i);
value_changed |= ImGui::InputInt("##v", &v[i], 0, 0, extra_flags); value_changed |= ImGui::InputInt("##v", &v[i], 0, 0, extra_flags);
ImGui::SameLine(0, (int)g.Style.ItemInnerSpacing.x); ImGui::SameLine(0, g.Style.ItemInnerSpacing.x);
ImGui::PopID(); ImGui::PopID();
ImGui::PopItemWidth(); ImGui::PopItemWidth();
} }
@ -8342,7 +8343,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], bool alpha)
for (int n = 0; n < components; n++) for (int n = 0; n < components; n++)
{ {
if (n > 0) if (n > 0)
ImGui::SameLine(0, (int)style.ItemInnerSpacing.x); ImGui::SameLine(0, style.ItemInnerSpacing.x);
if (n + 1 == components) if (n + 1 == components)
ImGui::PushItemWidth(w_item_last); ImGui::PushItemWidth(w_item_last);
value_changed |= ImGui::DragInt(ids[n], &i[n], 1.0f, 0, 255, fmt[n]); value_changed |= ImGui::DragInt(ids[n], &i[n], 1.0f, 0, 255, fmt[n]);
@ -8377,7 +8378,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], bool alpha)
break; break;
} }
ImGui::SameLine(0, (int)style.ItemInnerSpacing.x); ImGui::SameLine(0, style.ItemInnerSpacing.x);
const ImVec4 col_display(col[0], col[1], col[2], 1.0f); const ImVec4 col_display(col[0], col[1], col[2], 1.0f);
if (ImGui::ColorButton(col_display)) if (ImGui::ColorButton(col_display))
@ -8385,7 +8386,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], bool alpha)
if (window->DC.ColorEditMode == ImGuiColorEditMode_UserSelectShowButton) if (window->DC.ColorEditMode == ImGuiColorEditMode_UserSelectShowButton)
{ {
ImGui::SameLine(0, (int)style.ItemInnerSpacing.x); ImGui::SameLine(0, style.ItemInnerSpacing.x);
const char* button_titles[3] = { "RGB", "HSV", "HEX" }; const char* button_titles[3] = { "RGB", "HSV", "HEX" };
if (ButtonEx(button_titles[edit_mode], ImVec2(0,0), ImGuiButtonFlags_DontClosePopups)) if (ButtonEx(button_titles[edit_mode], ImVec2(0,0), ImGuiButtonFlags_DontClosePopups))
g.ColorEditModeStorage.SetInt(id, (edit_mode + 1) % 3); // Don't set local copy of 'edit_mode' right away! g.ColorEditModeStorage.SetInt(id, (edit_mode + 1) % 3); // Don't set local copy of 'edit_mode' right away!
@ -8393,7 +8394,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], bool alpha)
} }
else else
{ {
ImGui::SameLine(0, (int)style.ItemInnerSpacing.x); ImGui::SameLine(0, style.ItemInnerSpacing.x);
} }
ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); ImGui::TextUnformatted(label, FindTextDisplayEnd(label));
@ -8615,11 +8616,11 @@ void ImGui::EndGroup()
} }
// Gets back to previous line and continue with horizontal layout // Gets back to previous line and continue with horizontal layout
// column_x == 0 : follow on previous item // pos_x == 0 : follow on previous item
// columm_x != 0 : align to specified column // pos_x != 0 : align to specified column
// spacing_w < 0 : use default spacing if column_x==0, no spacing if column_x!=0 // spacing_w < 0 : use default spacing if column_x==0, no spacing if column_x!=0
// spacing_w >= 0 : enforce spacing // spacing_w >= 0 : enforce spacing
void ImGui::SameLine(int column_x, int spacing_w) void ImGui::SameLine(float pos_x, float spacing_w)
{ {
ImGuiState& g = *GImGui; ImGuiState& g = *GImGui;
ImGuiWindow* window = GetCurrentWindow(); ImGuiWindow* window = GetCurrentWindow();
@ -8627,16 +8628,16 @@ void ImGui::SameLine(int column_x, int spacing_w)
return; return;
float x, y; float x, y;
if (column_x != 0) if (pos_x != 0.0f)
{ {
if (spacing_w < 0) spacing_w = 0; if (spacing_w < 0.0f) spacing_w = 0.0f;
x = window->Pos.x + (float)column_x + (float)spacing_w; x = window->Pos.x + pos_x + spacing_w;
y = window->DC.CursorPosPrevLine.y; y = window->DC.CursorPosPrevLine.y;
} }
else else
{ {
if (spacing_w < 0) spacing_w = (int)g.Style.ItemSpacing.x; if (spacing_w < 0.0f) spacing_w = g.Style.ItemSpacing.x;
x = window->DC.CursorPosPrevLine.x + (float)spacing_w; x = window->DC.CursorPosPrevLine.x + spacing_w;
y = window->DC.CursorPosPrevLine.y; y = window->DC.CursorPosPrevLine.y;
} }
window->DC.CurrentLineHeight = window->DC.PrevLineHeight; window->DC.CurrentLineHeight = window->DC.PrevLineHeight;
@ -11368,7 +11369,7 @@ void ImGui::ShowTestWindow(bool* opened)
} }
} }
ImGui::PlotLines("##Graph", &values.front(), (int)values.Size, values_offset, "avg 0.0", -1.0f, 1.0f, ImVec2(0,80)); ImGui::PlotLines("##Graph", &values.front(), (int)values.Size, values_offset, "avg 0.0", -1.0f, 1.0f, ImVec2(0,80));
ImGui::SameLine(0, (int)ImGui::GetStyle().ItemInnerSpacing.x); ImGui::SameLine(0, ImGui::GetStyle().ItemInnerSpacing.x);
ImGui::BeginGroup(); ImGui::BeginGroup();
ImGui::Text("Graph"); ImGui::Text("Graph");
ImGui::Checkbox("pause", &pause); ImGui::Checkbox("pause", &pause);

View File

@ -170,7 +170,7 @@ namespace ImGui
IMGUI_API void BeginGroup(); // once closing a group it is seen as a single item (so you can use IsItemHovered() on a group, SameLine() between groups, etc. IMGUI_API void BeginGroup(); // once closing a group it is seen as a single item (so you can use IsItemHovered() on a group, SameLine() between groups, etc.
IMGUI_API void EndGroup(); IMGUI_API void EndGroup();
IMGUI_API void Separator(); // horizontal line IMGUI_API void Separator(); // horizontal line
IMGUI_API void SameLine(int column_x = 0, int spacing_w = -1); // call between widgets or groups to layout them horizontally IMGUI_API void SameLine(float pos_x = 0.0f, float spacing_w = -1.0f); // call between widgets or groups to layout them horizontally
IMGUI_API void Spacing(); // add spacing IMGUI_API void Spacing(); // add spacing
IMGUI_API void Dummy(const ImVec2& size); // add a dummy item of given size IMGUI_API void Dummy(const ImVec2& size); // add a dummy item of given size
IMGUI_API void Indent(); // move content position toward the right by style.IndentSpacing pixels IMGUI_API void Indent(); // move content position toward the right by style.IndentSpacing pixels