This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
addons:functions:imgui [2016/06/26 22:30] atom0s |
addons:functions:imgui [2016/06/27 21:37] (current) atom0s |
||
---|---|---|---|
Line 50: | Line 50: | ||
* <color green>float GetWindowContentRegionWidth(void);</color>\\ | * <color green>float GetWindowContentRegionWidth(void);</color>\\ | ||
* <color red>ImDrawList* GetWindowDrawList(void);</color>\\ | * <color red>ImDrawList* GetWindowDrawList(void);</color>\\ | ||
- | * Not implemented currently. | ||
* <color green>ImVec2 GetWindowPos(void);</color>\\ | * <color green>ImVec2 GetWindowPos(void);</color>\\ | ||
* <color green>ImVec2 GetWindowSize(void);</color>\\ | * <color green>ImVec2 GetWindowSize(void);</color>\\ | ||
Line 62: | Line 61: | ||
* <color green>void SetNextWindowSize(const ImVec2& size, 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>\\ | * <color green>void SetNextWindowSizeConstraints(const ImVec2& size_min, const ImVec2& size_max, ImGuiSizeConstraintCallback custom_callback = NULL, void* custom_callback_data = NULL);</color>\\ | ||
- | * Callbacks are not implemented. | + | * 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 SetNextWindowContentSize(const ImVec2& size);</color>\\ | ||
* <color green>void SetNextWindowContentWidth(float width);</color>\\ | * <color green>void SetNextWindowContentWidth(float width);</color>\\ | ||
Line 87: | Line 86: | ||
* <color red>void SetStateStorage(ImGuiStorage* tree);</color>\\ | * <color red>void SetStateStorage(ImGuiStorage* tree);</color>\\ | ||
* <color red>ImGuiStorage* GetStateStorage(void);</color>\\ | * <color red>ImGuiStorage* GetStateStorage(void);</color>\\ | ||
- | * Not implemented currently. | ||
* <color green>void PushFont(ImFont* font);</color>\\ | * <color green>void PushFont(ImFont* font);</color>\\ | ||
Line 97: | Line 95: | ||
* <color green>void PopStyleVar(int count = 1);</color>\\ | * <color green>void PopStyleVar(int count = 1);</color>\\ | ||
* <color red>ImFont* GetFont(void);</color>\\ | * <color red>ImFont* GetFont(void);</color>\\ | ||
- | * Not implemented currently. | ||
* <color green>float GetFontSize(void);</color>\\ | * <color green>float GetFontSize(void);</color>\\ | ||
* <color green>ImVec2 GetFontTexUvWhitePixel(void);</color>\\ | * <color green>ImVec2 GetFontTexUvWhitePixel(void);</color>\\ | ||
Line 178: | Line 175: | ||
* <color green>bool RadioButton(const char* label, int* v, int v_button);</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 red>bool Combo(const char* label, int* current_item, const char%%**%% items, int items_count, int height_in_items = -1);</color>\\ | ||
- | * Not implemented currently. | ||
* <color green>bool Combo(const char* label, int* current_item, const char* items_separated_by_zeros, 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 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>\\ | ||
- | * Not implemented currently. | ||
* <color green>bool ColorButton(const ImVec4& col, bool small_height = false, bool outline_border = true);</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 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>bool ColorEdit4(const char* label, float col[4], bool show_alpha = true);</color>\\ | ||
* <color green>void ColorEditMode(ImGuiColorEditMode mode);</color>\\ | * <color green>void ColorEditMode(ImGuiColorEditMode mode);</color>\\ | ||
- | * <color red>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>\\ | + | * <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 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 red>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>\\ | + | * <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 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>\\ | ||
- | * Not implemented currently. | ||
* <color green>void ProgressBar(float fraction, const ImVec2& size_arg = ImVec2(-1, 0), const char* overlay = NULL);</color>\\ | * <color green>void ProgressBar(float fraction, const ImVec2& size_arg = ImVec2(-1, 0), const char* overlay = NULL);</color>\\ | ||
Line 205: | Line 205: | ||
* <color green>bool InputText(const char* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags = 0, ImGuiTextEditCallback callback = NULL, void* user_data = 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 and user_data are not implemented in Lua. | + | * 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>\\ | * <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 and user_data are not implemented in Lua. | + | * 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 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 InputFloat2(const char* label, float v[2], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);</color>\\ | ||
Line 253: | Line 253: | ||
* <color green>bool ListBox(const char* label, int* current_item, const char* items_separated_by_zeros, 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 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>\\ | ||
- | * Not implemented currently. | ||
* <color green>bool ListBoxHeader(const char* label, const ImVec2& size = ImVec2(0, 0));</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>bool ListBoxHeader(const char* label, int items_count, int height_in_items = -1);</color>\\ | ||
Line 332: | Line 331: | ||
* Not implementing this unless its requested. | * 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>\\ | * <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 its requested. | + | * 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>\\ | * <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 its requested. | + | * Not implementing this unless it's requested. |
* <color green>bool BeginChildFrame(ImGuiID id, const ImVec2& size, ImGuiWindowFlags extra_flags = 0);</color>\\ | * <color green>bool BeginChildFrame(ImGuiID id, const ImVec2& size, ImGuiWindowFlags extra_flags = 0);</color>\\ | ||
Line 383: | Line 382: | ||
* <color red>void SetCurrentContext(ImGuiContext* ctx);</color>\\ | * <color red>void SetCurrentContext(ImGuiContext* ctx);</color>\\ | ||
* Not implementing this function. | * 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> |