@ -10,8 +10,8 @@
- MISSION STATEMENT
- END - USER GUIDE
- PROGRAMMER GUIDE
- TROUBLESHOOTING & FREQUENTLY ASKED QUESTIONS
- API BREAKING CHANGES
- TROUBLESHOOTING & FREQUENTLY ASKED QUESTIONS
- ISSUES & TODO - LIST
- CODE
- SAMPLE CODE
@ -105,6 +105,22 @@
// swap video buffer, etc.
}
API BREAKING CHANGES
= = = = = = = = = = = = = = = = = = = =
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 .
- 2014 / 11 / 26 ( 1.17 ) retired IMGUI_ONCE_UPON_A_FRAME helper macro in favor of ImGuiOnceUponAFrame type that works on all compilers .
- 2014 / 11 / 07 ( 1.15 ) renamed IsHovered ( ) to IsItemHovered ( )
- 2014 / 10 / 02 ( 1.14 ) renamed IMGUI_INCLUDE_IMGUI_USER_CPP to IMGUI_INCLUDE_IMGUI_USER_INL and imgui_user . cpp to imgui_user . inl ( more IDE friendly )
- 2014 / 09 / 25 ( 1.13 ) removed ' text_end ' parameter from IO . SetClipboardTextFn ( the string is now always zero - terminated for simplicity )
- 2014 / 09 / 24 ( 1.12 ) renamed SetFontScale ( ) to SetWindowFontScale ( )
- 2014 / 09 / 24 ( 1.12 ) moved IM_MALLOC / IM_REALLOC / IM_FREE preprocessor defines to IO . MemAllocFn / IO . MemReallocFn / IO . MemFreeFn
- 2014 / 08 / 30 ( 1.09 ) removed IO . FontHeight ( now computed automatically )
- 2014 / 08 / 30 ( 1.09 ) moved IMGUI_FONT_TEX_UV_FOR_WHITE preprocessor define to IO . FontTexUvForWhite
- 2014 / 08 / 28 ( 1.09 ) changed the behavior of IO . PixelCenterOffset following various rendering fixes
TROUBLESHOOTING & FREQUENTLY ASKED QUESTIONS
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
@ -142,23 +158,11 @@
e . g . " ##Foobar " display an empty label and uses " ##Foobar " as ID
- read articles about the imgui principles ( see web links ) to understand the requirement and use of ID .
- tip : the construct ' if ( IMGUI_ONCE_UPON_A_FRAME ) ' will evaluate to true only once a frame , you can use it to add custom UI in the middle of a deep nested inner loop in your code .
- tip : the construct ' static ImGuiOnceUponAFrame once ; if ( once ) ' will evaluate to ' true ' only once a frame , you can use it to quickly add custom UI in the middle of a deep nested inner loop in your code .
- tip : you can call Render ( ) multiple times ( e . g for VR renders ) , up to you to communicate the extra state to your RenderDrawListFn function .
- tip : you can create widgets without a Begin ( ) / End ( ) block , they will go in an implicit window called " Debug "
- tip : read the ShowTestWindow ( ) code for more example of how to use ImGui !
API BREAKING CHANGES
= = = = = = = = = = = = = = = = = = = =
- 2014 / 11 / 07 ( 1.15 ) renamed IsHovered ( ) to IsItemHovered ( )
- 2014 / 10 / 02 ( 1.14 ) renamed IMGUI_INCLUDE_IMGUI_USER_CPP to IMGUI_INCLUDE_IMGUI_USER_INL and imgui_user . cpp to imgui_user . inl ( more IDE friendly )
- 2014 / 09 / 25 ( 1.13 ) removed ' text_end ' parameter from IO . SetClipboardTextFn ( the string is now always zero - terminated for simplicity )
- 2014 / 09 / 24 ( 1.12 ) renamed SetFontScale ( ) to SetWindowFontScale ( )
- 2014 / 09 / 24 ( 1.12 ) moved IM_MALLOC / IM_REALLOC / IM_FREE preprocessor defines to IO . MemAllocFn / IO . MemReallocFn / IO . MemFreeFn
- 2014 / 08 / 30 ( 1.09 ) removed IO . FontHeight ( now computed automatically )
- 2014 / 08 / 30 ( 1.09 ) moved IMGUI_FONT_TEX_UV_FOR_WHITE preprocessor define to IO . FontTexUvForWhite
- 2014 / 08 / 28 ( 1.09 ) changed the behavior of IO . PixelCenterOffset following various rendering fixes
ISSUES & TODO - LIST
= = = = = = = = = = = = = = = = = =
@ -4121,7 +4125,7 @@ static void STB_TEXTEDIT_LAYOUTROW(StbTexteditRow* r, STB_TEXTEDIT_STRING* ob
static bool is_white ( unsigned int c ) { return c = = 0 | | c = = ' ' | | c = = ' \t ' | | c = = ' \r ' | | c = = ' \n ' ; }
static bool is_separator ( unsigned int c ) { return c = = ' , ' | | c = = ' ; ' | | c = = ' ( ' | | c = = ' ) ' | | c = = ' { ' | | c = = ' } ' | | c = = ' [ ' | | c = = ' ] ' | | c = = ' | ' ; }
static bool STB_TEXTEDIT_IS_SPACE ( ImWchar c ) { return is_white ( ( unsigned int ) c ) | | is_separator ( ( unsigned int ) c ) ; }
# define STB_TEXTEDIT_IS_SPACE(CH) ( is_white((unsigned int)CH) || is_separator((unsigned int)CH) )
static void STB_TEXTEDIT_DELETECHARS ( STB_TEXTEDIT_STRING * obj , int pos , int n ) { ImWchar * dst = obj - > Text + pos ; const ImWchar * src = obj - > Text + pos + n ; while ( ImWchar c = * src + + ) * dst + + = c ; * dst = ' \0 ' ; }
static bool STB_TEXTEDIT_INSERTCHARS ( STB_TEXTEDIT_STRING * obj , int pos , const ImWchar * new_text , int new_text_len )
{
@ -6683,6 +6687,10 @@ void ImGui::ShowTestWindow(bool* open)
ImGui : : EndTooltip ( ) ;
}
//static ImGuiOnceUponAFrame oaf;
//if (oaf) ImGui::Text("This will be displayed.");
//if (oaf) ImGui::Text("This won't be displayed!");
ImGui : : Separator ( ) ;
ImGui : : Text ( " ^ Horizontal separator " ) ;