User Tools

Site Tools


addons:functions:gui

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
addons:functions:gui [2017/04/21 22:01]
atom0s
addons:functions:gui [2017/04/21 22:03]
atom0s
Line 19: Line 19:
 ---- ----
  
 +Most of the calls are straight-forward and used as they are in C++. However, some of them had to have minor changes to work with Lua's types and lack of pointers. The following is a list of how things are implemented.
  
 +Please note, the following changes apply to ALL functions listed below:
 +\\
 +\\
 +  * Any function that takes ImVec2(...) is replaced by two float values instead.
 +  * Any function that takes ImVec4(...) is replaced by four float values instead.
 +    * //**Example (Before):** void SetNextWindowPos(const ImVec2& pos, ImGuiSetCond cond = 0);//
 +    * //**Example (After):** void SetNextWindowPos(float pos_x, float pos_y, ImGuiSetCond cond = 0);//
 +  * Any function that returns ImVec2(...) instead returns two values.
 +  * Any function that returns ImVec4(...) instead returns four values.
 +    * //**Example (Before):** ImVec2 GetWindowPos(void);//​
 +    * //**Example (After):** pos_x, pos_y = GetWindowPos();//​
 +  * Any function that takes a pointer value is replaced with an ImGuiVar variable instead. (See more info on ImGuiVar below.)
 +  * Any function that accepts varargs '​...' ​ are not handled as such. Instead they accept only a single string. Use Lua's buildt-in string.format function to format strings.
 +  * Any function that accepts va_list as an argument type is not implemented as Lua has no way to do this natively.
 +
 +----
 +
 +  * <color green>​bool GetHideObjects(void) const;</​color>​\\
 +  * <color green>​void SetHideObjects(bool bHide);</​color>​\\
 +    * Implemented as '​imgui.GetHide()'​ and '​imgui.SetHide(hide)'​.
 +
 +  * <color red>​ImGuiIO&​ GetIO(void);</​color>​\\
 +  * <color red>​ImGuiStyle&​ GetStyle(void);</​color>​\\
 +  * <color red>​ImDrawData* GetDrawData(void);</​color>​\\
 +    * Not implemented through these functions.
 +    * GetIO can be accessed via '​imgui.io'​.
 +    * GetStyle can be accessed via '​imgui.style'​.
 +    * GetDrawData is not implemented at all currently.
 +
 +  * <color green>​void ShowUserGuide(void);</​color>​\\
 +  * <color green>​void ShowStyleEditor(ImGuiStyle* ref = NULL);</​color>​\\
 +  * <color green>​void ShowTestWindow(bool* p_open = NULL);</​color>​\\
 +  * <color green>​void ShowMetricsWindow(bool* p_open = NULL);</​color>​\\
 +
 +  * <color green>​bool Begin(const char* name, bool* p_open = NULL, ImGuiWindowFlags flags = 0);</​color>​\\
 +  * <color green>​bool Begin(const char* name, bool* p_open, const ImVec2& size_on_first_use,​ float bg_alpha = -1.0f, ImGuiWindowFlags flags = 0);</​color>​\\
 +  * <color green>​void End(void);</​color>​\\
 +  * <color green>​bool BeginChild(const char* str_id, const ImVec2& size = ImVec2(0, 0), bool border = false, ImGuiWindowFlags extra_flags = 0);</​color>​\\
 +  * <color green>​bool BeginChild(ImGuiID id, const ImVec2& size = ImVec2(0, 0), bool border = false, ImGuiWindowFlags extra_flags = 0);</​color>​\\
 +  * <color green>​void EndChild(void);</​color>​\\
 +  * <color green>​ImVec2 GetContentRegionMax(void);</​color>​\\
 +  * <color green>​ImVec2 GetContentRegionAvail(void);</​color>​\\
 +  * <color green>​float GetContentRegionAvailWidth(void);</​color>​\\
 +  * <color green>​ImVec2 GetWindowContentRegionMin(void);</​color>​\\
 +  * <color green>​ImVec2 GetWindowContentRegionMax(void);</​color>​\\
 +  * <color green>​float GetWindowContentRegionWidth(void);</​color>​\\
 +  * <color red>​ImDrawList* GetWindowDrawList(void);</​color>​\\
 +  * <color green>​ImVec2 GetWindowPos(void);</​color>​\\
 +  * <color green>​ImVec2 GetWindowSize(void);</​color>​\\
 +  * <color green>​float GetWindowWidth(void);</​color>​\\
 +  * <color green>​float GetWindowHeight(void);</​color>​\\
 +  * <color green>​bool IsWindowCollapsed(void);</​color>​\\
 +  * <color green>​void SetWindowFontScale(float scale);</​color>​\\
 +
 +  * <color green>​void SetNextWindowPos(const ImVec2& pos, ImGuiSetCond cond = 0);</​color>​\\
 +  * <color green>​void SetNextWindowPosCenter(ImGuiSetCond cond = 0);</​color>​\\
 +  * <color green>​void SetNextWindowSize(const ImVec2& size, ImGuiSetCond cond = 0);</​color>​\\
 +  * <color green>​void SetNextWindowSizeConstraints(const ImVec2& size_min, const ImVec2& size_max, ImGuiSizeConstraintCallback custom_callback = NULL, void* custom_callback_data = NULL);</​color>​\\
 +    * callback is implemented as a string. It is the name to a Lua function to call when the callback is invoked. (custom_callback_data is not implemented.)
 +  * <color green>​void SetNextWindowContentSize(const ImVec2& size);</​color>​\\
 +  * <color green>​void SetNextWindowContentWidth(float width);</​color>​\\
 +  * <color green>​void SetNextWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0);</​color>​\\
 +  * <color green>​void SetNextWindowFocus(void);</​color>​\\
 +  * <color green>​void SetWindowPos(const ImVec2& pos, ImGuiSetCond cond = 0);</​color>​\\
 +  * <color green>​void SetWindowSize(const ImVec2& size, ImGuiSetCond cond = 0);</​color>​\\
 +  * <color green>​void SetWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0);</​color>​\\
 +  * <color green>​void SetWindowFocus(void);</​color>​\\
 +  * <color green>​void SetWindowPos(const char* name, const ImVec2& pos, ImGuiSetCond cond = 0);</​color>​\\
 +  * <color green>​void SetWindowSize(const char* name, const ImVec2& size, ImGuiSetCond cond = 0);</​color>​\\
 +  * <color green>​void SetWindowCollapsed(const char* name, bool collapsed, ImGuiSetCond cond = 0);</​color>​\\
 +  * <color green>​void SetWindowFocus(const char* name);</​color>​\\
 +
 +  * <color green>​float GetScrollX(void);</​color>​\\
 +  * <color green>​float GetScrollY(void);</​color>​\\
 +  * <color green>​float GetScrollMaxX(void);</​color>​\\
 +  * <color green>​float GetScrollMaxY(void);</​color>​\\
 +  * <color green>​void SetScrollX(float scroll_x);</​color>​\\
 +  * <color green>​void SetScrollY(float scroll_y);</​color>​\\
 +  * <color green>​void SetScrollHere(float center_y_ratio = 0.5f);</​color>​\\
 +  * <color green>​void SetScrollFromPosY(float pos_y, float center_y_ratio = 0.5f);</​color>​\\
 +  * <color green>​void SetKeyboardFocusHere(int offset = 0);</​color>​\\
 +  * <color red>void SetStateStorage(ImGuiStorage* tree);</​color>​\\
 +  * <color red>​ImGuiStorage* GetStateStorage(void);</​color>​\\
 +
 +  * <color green>​void PushFont(ImFont* font);</​color>​\\
 +  * <color green>​void PopFont(void);</​color>​\\
 +  * <color green>​void PushStyleColor(ImGuiCol idx, const ImVec4& col);</​color>​\\
 +  * <color green>​void PopStyleColor(int count = 1);</​color>​\\
 +  * <color green>​void PushStyleVar(ImGuiStyleVar idx, float val);</​color>​\\
 +  * <color green>​void PushStyleVar(ImGuiStyleVar idx, const ImVec2& val);</​color>​\\
 +  * <color green>​void PopStyleVar(int count = 1);</​color>​\\
 +  * <color red>​ImFont* GetFont(void);</​color>​\\
 +  * <color green>​float GetFontSize(void);</​color>​\\
 +  * <color green>​ImVec2 GetFontTexUvWhitePixel(void);</​color>​\\
 +  * <color green>​ImU32 GetColorU32(ImGuiCol idx, float alpha_mul = 1.0f);</​color>​\\
 +  * <color green>​ImU32 GetColorU32(const ImVec4& col);</​color>​\\
 +
 +  * <color green>​void PushItemWidth(float item_width);</​color>​\\
 +  * <color green>​void PopItemWidth(void);</​color>​\\
 +  * <color green>​float CalcItemWidth(void);</​color>​\\
 +  * <color green>​void PushTextWrapPos(float wrap_pos_x = 0.0f);</​color>​\\
 +  * <color green>​void PopTextWrapPos(void);</​color>​\\
 +  * <color green>​void PushAllowKeyboardFocus(bool v);</​color>​\\
 +  * <color green>​void PopAllowKeyboardFocus(void);</​color>​\\
 +  * <color green>​void PushButtonRepeat(bool repeat);</​color>​\\
 +  * <color green>​void PopButtonRepeat(void);</​color>​\\
 +
 +  * <color green>​void Separator(void);</​color>​\\
 +  * <color green>​void SameLine(float pos_x = 0.0f, float spacing_w = -1.0f);</​color>​\\
 +  * <color green>​void NewLine(void);</​color>​\\
 +  * <color green>​void Spacing(void);</​color>​\\
 +  * <color green>​void Dummy(const ImVec2& size);</​color>​\\
 +  * <color green>​void Indent(float indent_w = 0.0f);</​color>​\\
 +  * <color green>​void Unindent(float indent_w = 0.0f);</​color>​\\
 +  * <color green>​void BeginGroup(void);</​color>​\\
 +  * <color green>​void EndGroup(void);</​color>​\\
 +  * <color green>​ImVec2 GetCursorPos(void);</​color>​\\
 +  * <color green>​float GetCursorPosX(void);</​color>​\\
 +  * <color green>​float GetCursorPosY(void);</​color>​\\
 +  * <color green>​void SetCursorPos(const ImVec2& local_pos);</​color>​\\
 +  * <color green>​void SetCursorPosX(float x);</​color>​\\
 +  * <color green>​void SetCursorPosY(float y);</​color>​\\
 +  * <color green>​ImVec2 GetCursorStartPos(void);</​color>​\\
 +  * <color green>​ImVec2 GetCursorScreenPos(void);</​color>​\\
 +  * <color green>​void SetCursorScreenPos(const ImVec2& pos);</​color>​\\
 +  * <color green>​void AlignFirstTextHeightToWidgets(void);</​color>​\\
 +  * <color green>​float GetTextLineHeight(void);</​color>​\\
 +  * <color green>​float GetTextLineHeightWithSpacing(void);</​color>​\\
 +  * <color green>​float GetItemsLineHeightWithSpacing(void);</​color>​\\
 +
 +  * <color green>​void Columns(int count = 1, const char* id = NULL, bool border = true);</​color>​\\
 +  * <color green>​void NextColumn(void);</​color>​\\
 +  * <color green>​int GetColumnIndex(void);</​color>​\\
 +  * <color green>​float GetColumnOffset(int column_index = -1);</​color>​\\
 +  * <color green>​void SetColumnOffset(int column_index,​ float offset_x);</​color>​\\
 +  * <color green>​float GetColumnWidth(int column_index = -1);</​color>​\\
 +  * <color green>​int GetColumnsCount(void);</​color>​\\
 +
 +  * <color green>​void PushID(const char* str_id);</​color>​\\
 +  * <color green>​void PushID(const char* str_id_begin,​ const char* str_id_end);</​color>​\\
 +  * <color green>​void PushID(const void* ptr_id);</​color>​\\
 +  * <color green>​void PushID(int int_id);</​color>​\\
 +  * <color green>​void PopID(void);</​color>​\\
 +  * <color green>​ImGuiID GetID(const char* str_id);</​color>​\\
 +  * <color green>​ImGuiID GetID(const char* str_id_begin,​ const char* str_id_end);</​color>​\\
 +  * <color green>​ImGuiID GetID(const void* ptr_id);</​color>​\\
 +
 +  * <color green>​void Text(const char* fmt, ...);</​color>​\\
 +  * <color red>void TextV(const char* fmt, va_list args);</​color>​\\
 +  * <color green>​void TextColored(const ImVec4& col, const char* fmt, ...);</​color>​\\
 +  * <color red>void TextColoredV(const ImVec4& col, const char* fmt, va_list args);</​color>​\\
 +  * <color green>​void TextDisabled(const char* fmt, ...);</​color>​\\
 +  * <color red>void TextDisabledV(const char* fmt, va_list args);</​color>​\\
 +  * <color green>​void TextWrapped(const char* fmt, ...);</​color>​\\
 +  * <color red>void TextWrappedV(const char* fmt, va_list args);</​color>​\\
 +  * <color green>​void TextUnformatted(const char* text, const char* text_end = NULL);</​color>​\\
 +    * There may be some issues with this function. It may change in the future.
 +  * <color green>​void LabelText(const char* label, const char* fmt, ...);</​color>​\\
 +  * <color red>void LabelTextV(const char* label, const char* fmt, va_list args);</​color>​\\
 +  * <color green>​void Bullet(void);</​color>​\\
 +  * <color green>​void BulletText(const char* fmt, ...);</​color>​\\
 +  * <color red>void BulletTextV(const char* fmt, va_list args);</​color>​\\
 +  * <color green>​bool Button(const char* label, const ImVec2& size = ImVec2(0, 0));</​color>​\\
 +  * <color green>​bool SmallButton(const char* label);</​color>​\\
 +  * <color green>​bool InvisibleButton(const char* str_id, const ImVec2& size);</​color>​\\
 +  * <color green>​void Image(ImTextureID user_texture_id,​ const ImVec2& size, const ImVec2& uv0 = ImVec2(0, 0), const ImVec2& uv1 = ImVec2(1, 1), const ImVec4& tint_col = ImVec4(1, 1, 1, 1), const ImVec4& border_col = ImVec4(0, 0, 0, 0));</​color>​\\
 +  * <color green>​bool ImageButton(ImTextureID user_texture_id,​ const ImVec2& size, const ImVec2& uv0 = ImVec2(0, 0), const ImVec2& uv1 = ImVec2(1, 1), int frame_padding = -1, const ImVec4& bg_col = ImVec4(0, 0, 0, 0), const ImVec4& tint_col = ImVec4(1, 1, 1, 1));</​color>​\\
 +  * <color green>​bool Checkbox(const char* label, bool* v);</​color>​\\
 +  * <color green>​bool CheckboxFlags(const char* label, unsigned int* flags, unsigned int flags_value);</​color>​\\
 +  * <color green>​bool RadioButton(const char* label, bool active);</​color>​\\
 +  * <color green>​bool RadioButton(const char* label, int* v, int v_button);</​color>​\\
 +  * <color red>bool Combo(const char* label, int* current_item,​ const char%%**%% items, int items_count,​ int height_in_items = -1);</​color>​\\
 +  * <color green>​bool Combo(const char* label, int* current_item,​ const char* items_separated_by_zeros,​ int height_in_items = -1);</​color>​\\
 +  * <color red>bool Combo(const char* label, int* current_item,​ bool(*items_getter)(void* data, int idx, const char%%**%% out_text), void* data, int items_count,​ int height_in_items = -1);</​color>​\\
 +  * <color green>​bool ColorButton(const ImVec4& col, bool small_height = false, bool outline_border = true);</​color>​\\
 +  * <color green>​bool ColorEdit3(const char* label, float col[3]);</​color>​\\
 +  * <color green>​bool ColorEdit4(const char* label, float col[4], bool show_alpha = true);</​color>​\\
 +  * <color green>​void ColorEditMode(ImGuiColorEditMode mode);</​color>​\\
 +  * <color green>​void PlotLines(const char* label, const float* values, int values_count,​ int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0, 0), int stride = sizeof(float));</​color>​\\
 +    * Implemented in a custom manner to support an array of  float values, using a Lua table. Call is setup as:
 +      * imgui.PlotLines(label,​ values_table,​ values_count,​ values_offset,​ overlay_text,​ scale_min, scale_max, graph_size_x,​ graph_size_y,​ stride);
 +      * Default values are still present starting at values_offset.
 +  * <color red>void PlotLines(const char* label, float(*values_getter)(void* data, int idx), void* data, int values_count,​ int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0, 0));</​color>​\\
 +  * <color green>​void PlotHistogram(const char* label, const float* values, int values_count,​ int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0, 0), int stride = sizeof(float));</​color>​\\
 +    * Implemented in a custom manner to support an array of  float values, using a Lua table. Call is setup as:
 +      * imgui.PlotHistogram(label,​ values_table,​ values_count,​ values_offset,​ overlay_text,​ scale_min, scale_max, graph_size_x,​ graph_size_y,​ stride);
 +      * Default values are still present starting at values_offset.
 +  * <color red>void PlotHistogram(const char* label, float(*values_getter)(void* data, int idx), void* data, int values_count,​ int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0, 0));</​color>​\\
 +  * <color green>​void ProgressBar(float fraction, const ImVec2& size_arg = ImVec2(-1, 0), const char* overlay = NULL);</​color>​\\
 +
 +  * <color green>​bool DragFloat(const char* label, float* v, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "​%.3f",​ float power = 1.0f);</​color>​\\
 +  * <color green>​bool DragFloat2(const char* label, float v[2], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "​%.3f",​ float power = 1.0f);</​color>​\\
 +  * <color green>​bool DragFloat3(const char* label, float v[3], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "​%.3f",​ float power = 1.0f);</​color>​\\
 +  * <color green>​bool DragFloat4(const char* label, float v[4], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "​%.3f",​ float power = 1.0f);</​color>​\\
 +  * <color green>​bool DragFloatRange2(const char* label, float* v_current_min,​ float* v_current_max,​ float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "​%.3f",​ const char* display_format_max = NULL, float power = 1.0f);</​color>​\\
 +  * <color green>​bool DragInt(const char* label, int* v, float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "​%.0f"​);</​color>​\\
 +  * <color green>​bool DragInt2(const char* label, int v[2], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "​%.0f"​);</​color>​\\
 +  * <color green>​bool DragInt3(const char* label, int v[3], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "​%.0f"​);</​color>​\\
 +  * <color green>​bool DragInt4(const char* label, int v[4], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "​%.0f"​);</​color>​\\
 +  * <color green>​bool DragIntRange2(const char* label, int* v_current_min,​ int* v_current_max,​ float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "​%.0f",​ const char* display_format_max = NULL);</​color>​\\
 +
 +  * <color green>​bool InputText(const char* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags = 0, ImGuiTextEditCallback callback = NULL, void* user_data = NULL);</​color>​\\
 +    * callback is implemented as a string. It is the name to a Lua function to call when the callback is invoked. (user_data is not implemented.)
 +  * <color green>​bool InputTextMultiline(const char* label, char* buf, size_t buf_size, const ImVec2& size = ImVec2(0, 0), ImGuiInputTextFlags flags = 0, ImGuiTextEditCallback callback = NULL, void* user_data = NULL);</​color>​\\
 +    * callback is implemented as a string. It is the name to a Lua function to call when the callback is invoked. (user_data is not implemented.)
 +  * <color green>​bool InputFloat(const char* label, float* v, float step = 0.0f, float step_fast = 0.0f, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);</​color>​\\
 +  * <color green>​bool InputFloat2(const char* label, float v[2], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);</​color>​\\
 +  * <color green>​bool InputFloat3(const char* label, float v[3], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);</​color>​\\
 +  * <color green>​bool InputFloat4(const char* label, float v[4], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);</​color>​\\
 +  * <color green>​bool InputInt(const char* label, int* v, int step = 1, int step_fast = 100, ImGuiInputTextFlags extra_flags = 0);</​color>​\\
 +  * <color green>​bool InputInt2(const char* label, int v[2], ImGuiInputTextFlags extra_flags = 0);</​color>​\\
 +  * <color green>​bool InputInt3(const char* label, int v[3], ImGuiInputTextFlags extra_flags = 0);</​color>​\\
 +  * <color green>​bool InputInt4(const char* label, int v[4], ImGuiInputTextFlags extra_flags = 0);</​color>​\\
 +
 +  * <color green>​bool SliderFloat(const char* label, float* v, float v_min, float v_max, const char* display_format = "​%.3f",​ float power = 1.0f);</​color>​\\
 +  * <color green>​bool SliderFloat2(const char* label, float v[2], float v_min, float v_max, const char* display_format = "​%.3f",​ float power = 1.0f);</​color>​\\
 +  * <color green>​bool SliderFloat3(const char* label, float v[3], float v_min, float v_max, const char* display_format = "​%.3f",​ float power = 1.0f);</​color>​\\
 +  * <color green>​bool SliderFloat4(const char* label, float v[4], float v_min, float v_max, const char* display_format = "​%.3f",​ float power = 1.0f);</​color>​\\
 +  * <color green>​bool SliderAngle(const char* label, float* v_rad, float v_degrees_min = -360.0f, float v_degrees_max = +360.0f);</​color>​\\
 +  * <color green>​bool SliderInt(const char* label, int* v, int v_min, int v_max, const char* display_format = "​%.0f"​);</​color>​\\
 +  * <color green>​bool SliderInt2(const char* label, int v[2], int v_min, int v_max, const char* display_format = "​%.0f"​);</​color>​\\
 +  * <color green>​bool SliderInt3(const char* label, int v[3], int v_min, int v_max, const char* display_format = "​%.0f"​);</​color>​\\
 +  * <color green>​bool SliderInt4(const char* label, int v[4], int v_min, int v_max, const char* display_format = "​%.0f"​);</​color>​\\
 +  * <color green>​bool VSliderFloat(const char* label, const ImVec2& size, float* v, float v_min, float v_max, const char* display_format = "​%.3f",​ float power = 1.0f);</​color>​\\
 +  * <color green>​bool VSliderInt(const char* label, const ImVec2& size, int* v, int v_min, int v_max, const char* display_format = "​%.0f"​);</​color>​\\
 +
 +  * <color green>​bool TreeNode(const char* label);</​color>​\\
 +  * <color green>​bool TreeNode(const char* str_id, const char* fmt, ...);</​color>​\\
 +  * <color green>​bool TreeNode(const void* ptr_id, const char* fmt, ...);</​color>​\\
 +  * <color red>bool TreeNodeV(const char* str_id, const char* fmt, va_list args);</​color>​\\
 +  * <color red>bool TreeNodeV(const void* ptr_id, const char* fmt, va_list args);</​color>​\\
 +  * <color green>​bool TreeNodeEx(const char* label, ImGuiTreeNodeFlags flags = 0);</​color>​\\
 +  * <color green>​bool TreeNodeEx(const char* str_id, ImGuiTreeNodeFlags flags, const char* fmt, ...);</​color>​\\
 +  * <color green>​bool TreeNodeEx(const void* ptr_id, ImGuiTreeNodeFlags flags, const char* fmt, ...);</​color>​\\
 +  * <color red>bool TreeNodeExV(const char* str_id, ImGuiTreeNodeFlags flags, const char* fmt, va_list args);</​color>​\\
 +  * <color red>bool TreeNodeExV(const void* ptr_id, ImGuiTreeNodeFlags flags, const char* fmt, va_list args);</​color>​\\
 +  * <color green>​void TreePush(const char* str_id = NULL);</​color>​\\
 +  * <color green>​void TreePush(const void* ptr_id = NULL);</​color>​\\
 +  * <color green>​void TreePop(void);</​color>​\\
 +  * <color green>​void TreeAdvanceToLabelPos(void);</​color>​\\
 +  * <color green>​float GetTreeNodeToLabelSpacing(void);</​color>​\\
 +  * <color green>​void SetNextTreeNodeOpen(bool is_open, ImGuiSetCond cond = 0);</​color>​\\
 +  * <color green>​bool CollapsingHeader(const char* label, ImGuiTreeNodeFlags flags = 0);</​color>​\\
 +  * <color green>​bool CollapsingHeader(const char* label, bool* p_open, ImGuiTreeNodeFlags flags = 0);</​color>​\\
 +
 +  * <color green>​bool Selectable(const char* label, bool selected = false, ImGuiSelectableFlags flags = 0, const ImVec2& size = ImVec2(0, 0));</​color>​\\
 +  * <color green>​bool Selectable(const char* label, bool* p_selected, ImGuiSelectableFlags flags = 0, const ImVec2& size = ImVec2(0, 0));</​color>​\\
 +  * <color red>bool ListBox(const char* label, int* current_item,​ const char%%**%% items, int items_count,​ int height_in_items = -1);</​color>​\\
 +  * <color green>​bool ListBox(const char* label, int* current_item,​ const char* items_separated_by_zeros,​ int height_in_items = -1);</​color>​\\
 +  * <color red>bool ListBox(const char* label, int* current_item,​ bool(*items_getter)(void* data, int idx, const char%%**%% out_text), void* data, int items_count,​ int height_in_items = -1);</​color>​\\
 +  * <color green>​bool ListBoxHeader(const char* label, const ImVec2& size = ImVec2(0, 0));</​color>​\\
 +  * <color green>​bool ListBoxHeader(const char* label, int items_count,​ int height_in_items = -1);</​color>​\\
 +  * <color green>​void ListBoxFooter(void);</​color>​\\
 +
 +  * <color green>​void Value(const char* prefix, bool b);</​color>​\\
 +  * <color green>​void Value(const char* prefix, int v);</​color>​\\
 +  * <color green>​void Value(const char* prefix, unsigned int v);</​color>​\\
 +  * <color green>​void Value(const char* prefix, float v, const char* float_format = NULL);</​color>​\\
 +    * Value functions take an extra argument due to not being able to differentiate between the types in Lua.
 +      * Value(prefix,​ type, b);
 +      * Value(prefix,​ type, v);
 +      * Value(prefix,​ type, v);
 +      * Value(prefix,​ type, v, float_format);​
 +        * Type: 0 = bool
 +        * Type: 1 = int
 +        * Type: 2 = unsigned int
 +        * Type: 3 = float
 +  * <color green>​void ValueColor(const char* prefix, const ImVec4& v);</​color>​\\
 +  * <color green>​void ValueColor(const char* prefix, unsigned int v);</​color>​\\
 +
 +  * <color green>​void SetTooltip(const char* fmt, ...);</​color>​\\
 +  * <color red>void SetTooltipV(const char* fmt, va_list args);</​color>​\\
 +  * <color green>​void BeginTooltip(void);</​color>​\\
 +  * <color green>​void EndTooltip(void);</​color>​\\
 +
 +  * <color green>​bool BeginMainMenuBar(void);</​color>​\\
 +  * <color green>​void EndMainMenuBar(void);</​color>​\\
 +  * <color green>​bool BeginMenuBar(void);</​color>​\\
 +  * <color green>​void EndMenuBar(void);</​color>​\\
 +  * <color green>​bool BeginMenu(const char* label, bool enabled = true);</​color>​\\
 +  * <color green>​void EndMenu(void);</​color>​\\
 +  * <color green>​bool MenuItem(const char* label, const char* shortcut = NULL, bool selected = false, bool enabled = true);</​color>​\\
 +  * <color green>​bool MenuItem(const char* label, const char* shortcut, bool* p_selected, bool enabled = true);</​color>​\\
 +
 +  * <color green>​void OpenPopup(const char* str_id);</​color>​\\
 +  * <color green>​bool BeginPopup(const char* str_id);</​color>​\\
 +  * <color green>​bool BeginPopupModal(const char* name, bool* p_open = NULL, ImGuiWindowFlags extra_flags = 0);</​color>​\\
 +  * <color green>​bool BeginPopupContextItem(const char* str_id, int mouse_button = 1);</​color>​\\
 +  * <color green>​bool BeginPopupContextWindow(bool also_over_items = true, const char* str_id = NULL, int mouse_button = 1);</​color>​\\
 +  * <color green>​bool BeginPopupContextVoid(const char* str_id = NULL, int mouse_button = 1);</​color>​\\
 +  * <color green>​void EndPopup(void);</​color>​\\
 +  * <color green>​void CloseCurrentPopup(void);</​color>​\\
 +
 +  * <color green>​void LogToTTY(int max_depth = -1);</​color>​\\
 +  * <color green>​void LogToFile(int max_depth = -1, const char* filename = NULL);</​color>​\\
 +  * <color green>​void LogToClipboard(int max_depth = -1);</​color>​\\
 +  * <color green>​void LogFinish(void);</​color>​\\
 +  * <color green>​void LogButtons(void);</​color>​\\
 +  * <color green>​void LogText(const char* fmt, ...);</​color>​\\
 +    * These logging functions should not be relied on, they may be removed in the future.
 +
 +  * <color green>​void PushClipRect(const ImVec2& clip_rect_min,​ const ImVec2& clip_rect_max,​ bool intersect_with_current_clip_rect);</​color>​\\
 +  * <color green>​void PopClipRect(void);</​color>​\\
 +
 +  * <color green>​bool IsItemHovered(void);</​color>​\\
 +  * <color green>​bool IsItemHoveredRect(void);</​color>​\\
 +  * <color green>​bool IsItemActive(void);</​color>​\\
 +  * <color green>​bool IsItemClicked(int mouse_button = 0);</​color>​\\
 +  * <color green>​bool IsItemVisible(void);</​color>​\\
 +  * <color green>​bool IsAnyItemHovered(void);</​color>​\\
 +  * <color green>​bool IsAnyItemActive(void);</​color>​\\
 +  * <color green>​ImVec2 GetItemRectMin(void);</​color>​\\
 +  * <color green>​ImVec2 GetItemRectMax(void);</​color>​\\
 +  * <color green>​ImVec2 GetItemRectSize(void);</​color>​\\
 +  * <color green>​void SetItemAllowOverlap(void);</​color>​\\
 +  * <color green>​bool IsWindowHovered(void);</​color>​\\
 +  * <color green>​bool IsWindowFocused(void);</​color>​\\
 +  * <color green>​bool IsRootWindowFocused(void);</​color>​\\
 +  * <color green>​bool IsRootWindowOrAnyChildFocused(void);</​color>​\\
 +  * <color green>​bool IsRootWindowOrAnyChildHovered(void);</​color>​\\
 +  * <color green>​bool IsRectVisible(const ImVec2& size);</​color>​\\
 +  * <color green>​bool IsPosHoveringAnyWindow(const ImVec2& pos);</​color>​\\
 +  * <color green>​float GetTime(void);</​color>​\\
 +  * <color green>​int GetFrameCount(void);</​color>​\\
 +  * <color green>​const char* GetStyleColName(ImGuiCol idx);</​color>​\\
 +  * <color red>​ImVec2 CalcItemRectClosestPoint(const ImVec2& pos, bool on_edge = false, float outward = +0.0f);</​color>​\\
 +    * Not implementing this unless its requested.
 +  * <color red>​ImVec2 CalcTextSize(const char* text, const char* text_end = NULL, bool hide_text_after_double_hash = false, float wrap_width = -1.0f);</​color>​\\
 +    * Not implementing this unless it's requested.
 +  * <color red>void CalcListClipping(int items_count,​ float items_height,​ int* out_items_display_start,​ int* out_items_display_end);</​color>​\\
 +    * Not implementing this unless it's requested.
 +
 +  * <color green>​bool BeginChildFrame(ImGuiID id, const ImVec2& size, ImGuiWindowFlags extra_flags = 0);</​color>​\\
 +  * <color green>​void EndChildFrame(void);</​color>​\\
 +
 +  * <color green>​ImVec4 ColorConvertU32ToFloat4(ImU32 in);</​color>​\\
 +  * <color green>​ImU32 ColorConvertFloat4ToU32(const ImVec4& in);</​color>​\\
 +  * <color green>​void ColorConvertRGBtoHSV(float r, float g, float b, float& out_h, float& out_s, float& out_v);</​color>​\\
 +    * Lua does not support '​out'​ values, instead, this function will return out_h, out_s, out_v.
 +  * <color green>​void ColorConvertHSVtoRGB(float h, float s, float v, float& out_r, float& out_g, float& out_b);</​color>​\\
 +    * Lua does not support '​out'​ values, instead, this function will return out_r, out_g, out_b.
 +    ​
 +  * <color green>​int GetKeyIndex(ImGuiKey key);</​color>​\\
 +  * <color green>​bool IsKeyDown(int key_index);</​color>​\\
 +  * <color green>​bool IsKeyPressed(int key_index, bool repeat = true);</​color>​\\
 +  * <color green>​bool IsKeyReleased(int key_index);</​color>​\\
 +  * <color green>​bool IsMouseDown(int button);</​color>​\\
 +  * <color green>​bool IsMouseClicked(int button, bool repeat = false);</​color>​\\
 +  * <color green>​bool IsMouseDoubleClicked(int button);</​color>​\\
 +  * <color green>​bool IsMouseReleased(int button);</​color>​\\
 +  * <color green>​bool IsMouseHoveringWindow(void);</​color>​\\
 +  * <color green>​bool IsMouseHoveringAnyWindow(void);</​color>​\\
 +  * <color green>​bool IsMouseHoveringRect(const ImVec2& r_min, const ImVec2& r_max, bool clip = true);</​color>​\\
 +  * <color green>​bool IsMouseDragging(int button = 0, float lock_threshold = -1.0f);</​color>​\\
 +  * <color green>​ImVec2 GetMousePos(void);</​color>​\\
 +  * <color green>​ImVec2 GetMousePosOnOpeningCurrentPopup(void);</​color>​\\
 +  * <color green>​ImVec2 GetMouseDragDelta(int button = 0, float lock_threshold = -1.0f);</​color>​\\
 +  * <color green>​void ResetMouseDragDelta(int button = 0);</​color>​\\
 +  * <color green>​ImGuiMouseCursor GetMouseCursor(void);</​color>​\\
 +  * <color green>​void SetMouseCursor(ImGuiMouseCursor type);</​color>​\\
 +  * <color green>​void CaptureKeyboardFromApp(bool capture = true);</​color>​\\
 +  * <color green>​void CaptureMouseFromApp(bool capture = true);</​color>​\\
 +
 +  * <color red>​void* MemAlloc(size_t sz);</​color>​\\
 +    * Not implementing this function.
 +  * <color red>void MemFree(void* ptr);</​color>​\\
 +    * Not implementing this function.
 +  * <color green>​const char* GetClipboardText(void);</​color>​\\
 +  * <color green>​void SetClipboardText(const char* text);</​color>​\\
 +
 +  * <color green>​const char* GetVersion(void);</​color>​\\
 +  * <color red>​ImGuiContext* CreateContext(void* (*malloc_fn)(size_t) = NULL, void(*free_fn)(void*) = NULL);</​color>​\\
 +    * Not implementing this function.
 +  * <color red>void DestroyContext(ImGuiContext* ctx);</​color>​\\
 +    * Not implementing this function.
 +  * <color red>​ImGuiContext* GetCurrentContext(void);</​color>​\\
 +    * Not implementing this function.
 +  * <color red>void SetCurrentContext(ImGuiContext* ctx);</​color>​\\
 +    * Not implementing this function.
 +
 +
 +-----
 +
 +===== Notes =====
 +
 +**InputText / InputTextMultiline** - The callback, if present, should be a string that points to a callback function like this:
 + - The callbacks data is a [[imgui.ImGuiTextEditCallbackData]] structure instance.
 +
 +<code lua>
 +    if (imgui.InputText('​test',​ test_text_input_buffer,​ 1024, imgui.bor(ImGuiInputTextFlags_EnterReturnsTrue,​ImGuiInputTextFlags_CallbackCompletion,​ImGuiInputTextFlags_CallbackHistory),​ '​test_callback'​)) then
 +        print('​Enter was pressed!'​);​
 +    end
 +    ​
 +    function test_callback(data)
 +        print('​Callback was fired!'​);​
 +        return 0;
 +    end
 +</​code>​
 +
 +**SetNextWindowSizeConstraints** - The callback, if present, should be a string that points to a callback function like this:
 + - The callbacks data is a [[imgui.ImGuiSizeConstraintCallbackData]] structure instance.
 +
 +<code lua>
 +function SquareResizeConstraint(data)
 +    data.DesiredSize = ImVec2(math.max(data.DesiredSize.x,​ data.DesiredSize.y),​ math.max(data.DesiredSize.x,​ data.DesiredSize.y)); ​   ​
 +end
 +
 +imgui.SetNextWindowSizeConstraints(0,​ 0, float_max, float_max, '​SquareResizeConstraint'​);​
 +</​code>​
addons/functions/gui.txt · Last modified: 2017/04/22 00:10 (external edit)