@ -136,6 +136,7 @@
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 .
- 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 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
@ -6161,7 +6162,7 @@ static bool SliderFloatN(const char* label, float* v, int components, float v_mi
{
ImGui : : PushID ( i ) ;
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 : : PopItemWidth ( ) ;
}
@ -6203,7 +6204,7 @@ static bool SliderIntN(const char* label, int* v, int components, int v_min, int
{
ImGui : : PushID ( i ) ;
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 : : PopItemWidth ( ) ;
}
@ -6387,7 +6388,7 @@ static bool DragFloatN(const char* label, float* v, int components, float v_spee
{
ImGui : : PushID ( i ) ;
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 : : 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 ) ;
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 ) ;
ImGui : : PopItemWidth ( ) ;
ImGui : : SameLine ( 0 , ( int ) g . Style . ItemInnerSpacing . x ) ;
ImGui : : SameLine ( 0 , g . Style . ItemInnerSpacing . x ) ;
ImGui : : TextUnformatted ( label , FindTextDisplayEnd ( label ) ) ;
ImGui : : EndGroup ( ) ;
@ -6465,7 +6466,7 @@ static bool DragIntN(const char* label, int* v, int components, float v_speed, i
{
ImGui : : PushID ( i ) ;
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 : : 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 ) ;
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 ) ;
ImGui : : PopItemWidth ( ) ;
ImGui : : SameLine ( 0 , ( int ) g . Style . ItemInnerSpacing . x ) ;
ImGui : : SameLine ( 0 , g . Style . ItemInnerSpacing . x ) ;
ImGui : : TextUnformatted ( label , FindTextDisplayEnd ( label ) ) ;
ImGui : : EndGroup ( ) ;
@ -6672,7 +6673,7 @@ bool ImGui::Checkbox(const char* label, bool* v)
ImRect total_bb = check_bb ;
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 ) ;
if ( label_size . x > 0 )
{
@ -6730,7 +6731,7 @@ bool ImGui::RadioButton(const char* label, bool active)
ImRect total_bb = check_bb ;
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 ) ;
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 )
{
ImGui : : PopItemWidth ( ) ;
ImGui : : SameLine ( 0 , ( int ) style . ItemInnerSpacing . x ) ;
ImGui : : SameLine ( 0 , style . ItemInnerSpacing . x ) ;
if ( ButtonEx ( " - " , button_sz , ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups ) )
{
* v - = g . IO . KeyCtrl & & step_fast > 0.0f ? step_fast : step ;
value_changed = true ;
}
ImGui : : SameLine ( 0 , ( int ) style . ItemInnerSpacing . x ) ;
ImGui : : SameLine ( 0 , style . ItemInnerSpacing . x ) ;
if ( ButtonEx ( " + " , button_sz , ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups ) )
{
* 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 )
{
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 ) ;
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 ) ;
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 : : PopItemWidth ( ) ;
}
@ -7668,7 +7669,7 @@ static bool InputIntN(const char* label, int* v, int components, ImGuiInputTextF
{
ImGui : : PushID ( i ) ;
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 : : PopItemWidth ( ) ;
}
@ -8342,7 +8343,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], bool alpha)
for ( int n = 0 ; n < components ; n + + )
{
if ( n > 0 )
ImGui : : SameLine ( 0 , ( int ) style . ItemInnerSpacing . x ) ;
ImGui : : SameLine ( 0 , style . ItemInnerSpacing . x ) ;
if ( n + 1 = = components )
ImGui : : PushItemWidth ( w_item_last ) ;
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 ;
}
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 ) ;
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 )
{
ImGui : : SameLine ( 0 , ( int ) style . ItemInnerSpacing . x ) ;
ImGui : : SameLine ( 0 , style . ItemInnerSpacing . x ) ;
const char * button_titles [ 3 ] = { " RGB " , " HSV " , " HEX " } ;
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!
@ -8393,7 +8394,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], bool alpha)
}
else
{
ImGui : : SameLine ( 0 , ( int ) style . ItemInnerSpacing . x ) ;
ImGui : : SameLine ( 0 , style . ItemInnerSpacing . x ) ;
}
ImGui : : TextUnformatted ( label , FindTextDisplayEnd ( label ) ) ;
@ -8615,11 +8616,11 @@ void ImGui::EndGroup()
}
// Gets back to previous line and continue with horizontal layout
// column _x == 0 : follow on previous item
// columm _x != 0 : align to specified column
// pos _x == 0 : follow on previous item
// 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 : enforce spacing
void ImGui : : SameLine ( int column_x , in t spacing_w )
void ImGui : : SameLine ( float pos_x , floa t spacing_w )
{
ImGuiState & g = * GImGui ;
ImGuiWindow * window = GetCurrentWindow ( ) ;
@ -8627,16 +8628,16 @@ void ImGui::SameLine(int column_x, int spacing_w)
return ;
float x , y ;
if ( column_x ! = 0 )
if ( pos_x ! = 0.0f )
{
if ( spacing_w < 0 ) spacing_w = 0 ;
x = window - > Pos . x + ( float ) column_x + ( float ) spacing_w ;
if ( spacing_w < 0.0f ) spacing_w = 0.0f ;
x = window - > Pos . x + pos_x + spacing_w ;
y = window - > DC . CursorPosPrevLine . y ;
}
else
{
if ( spacing_w < 0 ) spacing_w = ( int ) g . Style . ItemSpacing . x ;
x = window - > DC . CursorPosPrevLine . x + ( float ) spacing_w ;
if ( spacing_w < 0.0f ) spacing_w = g . Style . ItemSpacing . x ;
x = window - > DC . CursorPosPrevLine . x + spacing_w ;
y = window - > DC . CursorPosPrevLine . y ;
}
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 : : SameLine ( 0 , ( int ) ImGui : : GetStyle ( ) . ItemInnerSpacing . x ) ;
ImGui : : SameLine ( 0 , ImGui : : GetStyle ( ) . ItemInnerSpacing . x ) ;
ImGui : : BeginGroup ( ) ;
ImGui : : Text ( " Graph " ) ;
ImGui : : Checkbox ( " pause " , & pause ) ;