====== ImGui Functions ======
The new ImGui system that has been added to Ashita is implemented to Addons using the 'imgui' object. This object holds all the function calls and property objects to interact with what is exposed to addons. Below you can find a list of what is implemented to Lua and how to use it. Most calls are straightforward, however, some will be marked if changes are made.
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.
----
* bool GetHideObjects(void) const;\\
* void SetHideObjects(bool bHide);\\
* Implemented as 'imgui.GetHide()' and 'imgui.SetHide(hide)'.
* ImGuiIO& GetIO(void);\\
* ImGuiStyle& GetStyle(void);\\
* ImDrawData* GetDrawData(void);\\
* 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.
* void ShowUserGuide(void);\\
* void ShowStyleEditor(ImGuiStyle* ref = NULL);\\
* void ShowTestWindow(bool* p_open = NULL);\\
* void ShowMetricsWindow(bool* p_open = NULL);\\
* bool Begin(const char* name, bool* p_open = NULL, ImGuiWindowFlags flags = 0);\\
* bool Begin(const char* name, bool* p_open, const ImVec2& size_on_first_use, float bg_alpha = -1.0f, ImGuiWindowFlags flags = 0);\\
* void End(void);\\
* bool BeginChild(const char* str_id, const ImVec2& size = ImVec2(0, 0), bool border = false, ImGuiWindowFlags extra_flags = 0);\\
* bool BeginChild(ImGuiID id, const ImVec2& size = ImVec2(0, 0), bool border = false, ImGuiWindowFlags extra_flags = 0);\\
* void EndChild(void);\\
* ImVec2 GetContentRegionMax(void);\\
* ImVec2 GetContentRegionAvail(void);\\
* float GetContentRegionAvailWidth(void);\\
* ImVec2 GetWindowContentRegionMin(void);\\
* ImVec2 GetWindowContentRegionMax(void);\\
* float GetWindowContentRegionWidth(void);\\
* ImDrawList* GetWindowDrawList(void);\\
* ImVec2 GetWindowPos(void);\\
* ImVec2 GetWindowSize(void);\\
* float GetWindowWidth(void);\\
* float GetWindowHeight(void);\\
* bool IsWindowCollapsed(void);\\
* void SetWindowFontScale(float scale);\\
* void SetNextWindowPos(const ImVec2& pos, ImGuiSetCond cond = 0);\\
* void SetNextWindowPosCenter(ImGuiSetCond cond = 0);\\
* void SetNextWindowSize(const ImVec2& size, ImGuiSetCond cond = 0);\\
* void SetNextWindowSizeConstraints(const ImVec2& size_min, const ImVec2& size_max, ImGuiSizeConstraintCallback custom_callback = NULL, void* custom_callback_data = NULL);\\
* 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.)
* void SetNextWindowContentSize(const ImVec2& size);\\
* void SetNextWindowContentWidth(float width);\\
* void SetNextWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0);\\
* void SetNextWindowFocus(void);\\
* void SetWindowPos(const ImVec2& pos, ImGuiSetCond cond = 0);\\
* void SetWindowSize(const ImVec2& size, ImGuiSetCond cond = 0);\\
* void SetWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0);\\
* void SetWindowFocus(void);\\
* void SetWindowPos(const char* name, const ImVec2& pos, ImGuiSetCond cond = 0);\\
* void SetWindowSize(const char* name, const ImVec2& size, ImGuiSetCond cond = 0);\\
* void SetWindowCollapsed(const char* name, bool collapsed, ImGuiSetCond cond = 0);\\
* void SetWindowFocus(const char* name);\\
* float GetScrollX(void);\\
* float GetScrollY(void);\\
* float GetScrollMaxX(void);\\
* float GetScrollMaxY(void);\\
* void SetScrollX(float scroll_x);\\
* void SetScrollY(float scroll_y);\\
* void SetScrollHere(float center_y_ratio = 0.5f);\\
* void SetScrollFromPosY(float pos_y, float center_y_ratio = 0.5f);\\
* void SetKeyboardFocusHere(int offset = 0);\\
* void SetStateStorage(ImGuiStorage* tree);\\
* ImGuiStorage* GetStateStorage(void);\\
* void PushFont(ImFont* font);\\
* void PopFont(void);\\
* void PushStyleColor(ImGuiCol idx, const ImVec4& col);\\
* void PopStyleColor(int count = 1);\\
* void PushStyleVar(ImGuiStyleVar idx, float val);\\
* void PushStyleVar(ImGuiStyleVar idx, const ImVec2& val);\\
* void PopStyleVar(int count = 1);\\
* ImFont* GetFont(void);\\
* float GetFontSize(void);\\
* ImVec2 GetFontTexUvWhitePixel(void);\\
* ImU32 GetColorU32(ImGuiCol idx, float alpha_mul = 1.0f);\\
* ImU32 GetColorU32(const ImVec4& col);\\
* void PushItemWidth(float item_width);\\
* void PopItemWidth(void);\\
* float CalcItemWidth(void);\\
* void PushTextWrapPos(float wrap_pos_x = 0.0f);\\
* void PopTextWrapPos(void);\\
* void PushAllowKeyboardFocus(bool v);\\
* void PopAllowKeyboardFocus(void);\\
* void PushButtonRepeat(bool repeat);\\
* void PopButtonRepeat(void);\\
* void Separator(void);\\
* void SameLine(float pos_x = 0.0f, float spacing_w = -1.0f);\\
* void NewLine(void);\\
* void Spacing(void);\\
* void Dummy(const ImVec2& size);\\
* void Indent(float indent_w = 0.0f);\\
* void Unindent(float indent_w = 0.0f);\\
* void BeginGroup(void);\\
* void EndGroup(void);\\
* ImVec2 GetCursorPos(void);\\
* float GetCursorPosX(void);\\
* float GetCursorPosY(void);\\
* void SetCursorPos(const ImVec2& local_pos);\\
* void SetCursorPosX(float x);\\
* void SetCursorPosY(float y);\\
* ImVec2 GetCursorStartPos(void);\\
* ImVec2 GetCursorScreenPos(void);\\
* void SetCursorScreenPos(const ImVec2& pos);\\
* void AlignFirstTextHeightToWidgets(void);\\
* float GetTextLineHeight(void);\\
* float GetTextLineHeightWithSpacing(void);\\
* float GetItemsLineHeightWithSpacing(void);\\
* void Columns(int count = 1, const char* id = NULL, bool border = true);\\
* void NextColumn(void);\\
* int GetColumnIndex(void);\\
* float GetColumnOffset(int column_index = -1);\\
* void SetColumnOffset(int column_index, float offset_x);\\
* float GetColumnWidth(int column_index = -1);\\
* int GetColumnsCount(void);\\
* void PushID(const char* str_id);\\
* void PushID(const char* str_id_begin, const char* str_id_end);\\
* void PushID(const void* ptr_id);\\
* void PushID(int int_id);\\
* void PopID(void);\\
* ImGuiID GetID(const char* str_id);\\
* ImGuiID GetID(const char* str_id_begin, const char* str_id_end);\\
* ImGuiID GetID(const void* ptr_id);\\
* void Text(const char* fmt, ...);\\
* void TextV(const char* fmt, va_list args);\\
* void TextColored(const ImVec4& col, const char* fmt, ...);\\
* void TextColoredV(const ImVec4& col, const char* fmt, va_list args);\\
* void TextDisabled(const char* fmt, ...);\\
* void TextDisabledV(const char* fmt, va_list args);\\
* void TextWrapped(const char* fmt, ...);\\
* void TextWrappedV(const char* fmt, va_list args);\\
* void TextUnformatted(const char* text, const char* text_end = NULL);\\
* There may be some issues with this function. It may change in the future.
* void LabelText(const char* label, const char* fmt, ...);\\
* void LabelTextV(const char* label, const char* fmt, va_list args);\\
* void Bullet(void);\\
* void BulletText(const char* fmt, ...);\\
* void BulletTextV(const char* fmt, va_list args);\\
* bool Button(const char* label, const ImVec2& size = ImVec2(0, 0));\\
* bool SmallButton(const char* label);\\
* bool InvisibleButton(const char* str_id, const ImVec2& size);\\
* 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));\\
* 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));\\
* bool Checkbox(const char* label, bool* v);\\
* bool CheckboxFlags(const char* label, unsigned int* flags, unsigned int flags_value);\\
* bool RadioButton(const char* label, bool active);\\
* bool RadioButton(const char* label, int* v, int v_button);\\
* bool Combo(const char* label, int* current_item, const char%%**%% items, int items_count, int height_in_items = -1);\\
* bool Combo(const char* label, int* current_item, const char* items_separated_by_zeros, int height_in_items = -1);\\
* 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);\\
* bool ColorButton(const ImVec4& col, bool small_height = false, bool outline_border = true);\\
* bool ColorEdit3(const char* label, float col[3]);\\
* bool ColorEdit4(const char* label, float col[4], bool show_alpha = true);\\
* void ColorEditMode(ImGuiColorEditMode mode);\\
* 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));\\
* 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.
* 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));\\
* 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));\\
* 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.
* 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));\\
* void ProgressBar(float fraction, const ImVec2& size_arg = ImVec2(-1, 0), const char* overlay = NULL);\\
* 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);\\
* 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);\\
* 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);\\
* 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);\\
* 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);\\
* 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");\\
* 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");\\
* 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");\\
* 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");\\
* 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);\\
* bool InputText(const char* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags = 0, ImGuiTextEditCallback callback = NULL, void* user_data = NULL);\\
* 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.)
* 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);\\
* 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.)
* bool InputFloat(const char* label, float* v, float step = 0.0f, float step_fast = 0.0f, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);\\
* bool InputFloat2(const char* label, float v[2], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);\\
* bool InputFloat3(const char* label, float v[3], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);\\
* bool InputFloat4(const char* label, float v[4], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);\\
* bool InputInt(const char* label, int* v, int step = 1, int step_fast = 100, ImGuiInputTextFlags extra_flags = 0);\\
* bool InputInt2(const char* label, int v[2], ImGuiInputTextFlags extra_flags = 0);\\
* bool InputInt3(const char* label, int v[3], ImGuiInputTextFlags extra_flags = 0);\\
* bool InputInt4(const char* label, int v[4], ImGuiInputTextFlags extra_flags = 0);\\
* bool SliderFloat(const char* label, float* v, float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f);\\
* bool SliderFloat2(const char* label, float v[2], float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f);\\
* bool SliderFloat3(const char* label, float v[3], float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f);\\
* bool SliderFloat4(const char* label, float v[4], float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f);\\
* bool SliderAngle(const char* label, float* v_rad, float v_degrees_min = -360.0f, float v_degrees_max = +360.0f);\\
* bool SliderInt(const char* label, int* v, int v_min, int v_max, const char* display_format = "%.0f");\\
* bool SliderInt2(const char* label, int v[2], int v_min, int v_max, const char* display_format = "%.0f");\\
* bool SliderInt3(const char* label, int v[3], int v_min, int v_max, const char* display_format = "%.0f");\\
* bool SliderInt4(const char* label, int v[4], int v_min, int v_max, const char* display_format = "%.0f");\\
* 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);\\
* bool VSliderInt(const char* label, const ImVec2& size, int* v, int v_min, int v_max, const char* display_format = "%.0f");\\
* bool TreeNode(const char* label);\\
* bool TreeNode(const char* str_id, const char* fmt, ...);\\
* bool TreeNode(const void* ptr_id, const char* fmt, ...);\\
* bool TreeNodeV(const char* str_id, const char* fmt, va_list args);\\
* bool TreeNodeV(const void* ptr_id, const char* fmt, va_list args);\\
* bool TreeNodeEx(const char* label, ImGuiTreeNodeFlags flags = 0);\\
* bool TreeNodeEx(const char* str_id, ImGuiTreeNodeFlags flags, const char* fmt, ...);\\
* bool TreeNodeEx(const void* ptr_id, ImGuiTreeNodeFlags flags, const char* fmt, ...);\\
* bool TreeNodeExV(const char* str_id, ImGuiTreeNodeFlags flags, const char* fmt, va_list args);\\
* bool TreeNodeExV(const void* ptr_id, ImGuiTreeNodeFlags flags, const char* fmt, va_list args);\\
* void TreePush(const char* str_id = NULL);\\
* void TreePush(const void* ptr_id = NULL);\\
* void TreePop(void);\\
* void TreeAdvanceToLabelPos(void);\\
* float GetTreeNodeToLabelSpacing(void);\\
* void SetNextTreeNodeOpen(bool is_open, ImGuiSetCond cond = 0);\\
* bool CollapsingHeader(const char* label, ImGuiTreeNodeFlags flags = 0);\\
* bool CollapsingHeader(const char* label, bool* p_open, ImGuiTreeNodeFlags flags = 0);\\
* bool Selectable(const char* label, bool selected = false, ImGuiSelectableFlags flags = 0, const ImVec2& size = ImVec2(0, 0));\\
* bool Selectable(const char* label, bool* p_selected, ImGuiSelectableFlags flags = 0, const ImVec2& size = ImVec2(0, 0));\\
* bool ListBox(const char* label, int* current_item, const char%%**%% items, int items_count, int height_in_items = -1);\\
* bool ListBox(const char* label, int* current_item, const char* items_separated_by_zeros, int height_in_items = -1);\\
* 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);\\
* bool ListBoxHeader(const char* label, const ImVec2& size = ImVec2(0, 0));\\
* bool ListBoxHeader(const char* label, int items_count, int height_in_items = -1);\\
* void ListBoxFooter(void);\\
* void Value(const char* prefix, bool b);\\
* void Value(const char* prefix, int v);\\
* void Value(const char* prefix, unsigned int v);\\
* void Value(const char* prefix, float v, const char* float_format = NULL);\\
* 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
* void ValueColor(const char* prefix, const ImVec4& v);\\
* void ValueColor(const char* prefix, unsigned int v);\\
* void SetTooltip(const char* fmt, ...);\\
* void SetTooltipV(const char* fmt, va_list args);\\
* void BeginTooltip(void);\\
* void EndTooltip(void);\\
* bool BeginMainMenuBar(void);\\
* void EndMainMenuBar(void);\\
* bool BeginMenuBar(void);\\
* void EndMenuBar(void);\\
* bool BeginMenu(const char* label, bool enabled = true);\\
* void EndMenu(void);\\
* bool MenuItem(const char* label, const char* shortcut = NULL, bool selected = false, bool enabled = true);\\
* bool MenuItem(const char* label, const char* shortcut, bool* p_selected, bool enabled = true);\\
* void OpenPopup(const char* str_id);\\
* bool BeginPopup(const char* str_id);\\
* bool BeginPopupModal(const char* name, bool* p_open = NULL, ImGuiWindowFlags extra_flags = 0);\\
* bool BeginPopupContextItem(const char* str_id, int mouse_button = 1);\\
* bool BeginPopupContextWindow(bool also_over_items = true, const char* str_id = NULL, int mouse_button = 1);\\
* bool BeginPopupContextVoid(const char* str_id = NULL, int mouse_button = 1);\\
* void EndPopup(void);\\
* void CloseCurrentPopup(void);\\
* void LogToTTY(int max_depth = -1);\\
* void LogToFile(int max_depth = -1, const char* filename = NULL);\\
* void LogToClipboard(int max_depth = -1);\\
* void LogFinish(void);\\
* void LogButtons(void);\\
* void LogText(const char* fmt, ...);\\
* These logging functions should not be relied on, they may be removed in the future.
* void PushClipRect(const ImVec2& clip_rect_min, const ImVec2& clip_rect_max, bool intersect_with_current_clip_rect);\\
* void PopClipRect(void);\\
* bool IsItemHovered(void);\\
* bool IsItemHoveredRect(void);\\
* bool IsItemActive(void);\\
* bool IsItemClicked(int mouse_button = 0);\\
* bool IsItemVisible(void);\\
* bool IsAnyItemHovered(void);\\
* bool IsAnyItemActive(void);\\
* ImVec2 GetItemRectMin(void);\\
* ImVec2 GetItemRectMax(void);\\
* ImVec2 GetItemRectSize(void);\\
* void SetItemAllowOverlap(void);\\
* bool IsWindowHovered(void);\\
* bool IsWindowFocused(void);\\
* bool IsRootWindowFocused(void);\\
* bool IsRootWindowOrAnyChildFocused(void);\\
* bool IsRootWindowOrAnyChildHovered(void);\\
* bool IsRectVisible(const ImVec2& size);\\
* bool IsPosHoveringAnyWindow(const ImVec2& pos);\\
* float GetTime(void);\\
* int GetFrameCount(void);\\
* const char* GetStyleColName(ImGuiCol idx);\\
* ImVec2 CalcItemRectClosestPoint(const ImVec2& pos, bool on_edge = false, float outward = +0.0f);\\
* Not implementing this unless its requested.
* ImVec2 CalcTextSize(const char* text, const char* text_end = NULL, bool hide_text_after_double_hash = false, float wrap_width = -1.0f);\\
* Not implementing this unless it's requested.
* void CalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end);\\
* Not implementing this unless it's requested.
* bool BeginChildFrame(ImGuiID id, const ImVec2& size, ImGuiWindowFlags extra_flags = 0);\\
* void EndChildFrame(void);\\
* ImVec4 ColorConvertU32ToFloat4(ImU32 in);\\
* ImU32 ColorConvertFloat4ToU32(const ImVec4& in);\\
* void ColorConvertRGBtoHSV(float r, float g, float b, float& out_h, float& out_s, float& out_v);\\
* Lua does not support 'out' values, instead, this function will return out_h, out_s, out_v.
* void ColorConvertHSVtoRGB(float h, float s, float v, float& out_r, float& out_g, float& out_b);\\
* Lua does not support 'out' values, instead, this function will return out_r, out_g, out_b.
* int GetKeyIndex(ImGuiKey key);\\
* bool IsKeyDown(int key_index);\\
* bool IsKeyPressed(int key_index, bool repeat = true);\\
* bool IsKeyReleased(int key_index);\\
* bool IsMouseDown(int button);\\
* bool IsMouseClicked(int button, bool repeat = false);\\
* bool IsMouseDoubleClicked(int button);\\
* bool IsMouseReleased(int button);\\
* bool IsMouseHoveringWindow(void);\\
* bool IsMouseHoveringAnyWindow(void);\\
* bool IsMouseHoveringRect(const ImVec2& r_min, const ImVec2& r_max, bool clip = true);\\
* bool IsMouseDragging(int button = 0, float lock_threshold = -1.0f);\\
* ImVec2 GetMousePos(void);\\
* ImVec2 GetMousePosOnOpeningCurrentPopup(void);\\
* ImVec2 GetMouseDragDelta(int button = 0, float lock_threshold = -1.0f);\\
* void ResetMouseDragDelta(int button = 0);\\
* ImGuiMouseCursor GetMouseCursor(void);\\
* void SetMouseCursor(ImGuiMouseCursor type);\\
* void CaptureKeyboardFromApp(bool capture = true);\\
* void CaptureMouseFromApp(bool capture = true);\\
* void* MemAlloc(size_t sz);\\
* Not implementing this function.
* void MemFree(void* ptr);\\
* Not implementing this function.
* const char* GetClipboardText(void);\\
* void SetClipboardText(const char* text);\\
* const char* GetVersion(void);\\
* ImGuiContext* CreateContext(void* (*malloc_fn)(size_t) = NULL, void(*free_fn)(void*) = NULL);\\
* Not implementing this function.
* void DestroyContext(ImGuiContext* ctx);\\
* Not implementing this function.
* ImGuiContext* GetCurrentContext(void);\\
* Not implementing this function.
* void SetCurrentContext(ImGuiContext* ctx);\\
* 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.
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
**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.
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');