imgui_stdlib.cpp
Go to the documentation of this file.
1 // imgui_stdlib.cpp
2 // Wrappers for C++ standard library (STL) types (std::string, etc.)
3 // This is also an example of how you may wrap your own similar types.
4 
5 // Compatibility:
6 // - std::string support is only guaranteed to work from C++11.
7 // If you try to use it pre-C++11, please share your findings (w/ info about compiler/architecture)
8 
9 // Changelog:
10 // - v0.10: Initial version. Added InputText() / InputTextMultiline() calls with std::string
11 
12 #include "imgui.h"
13 #include "imgui_stdlib.h"
14 
16 {
20 };
21 
23 {
26  {
27  // Resize string callback
28  // If for some reason we refuse the new length (BufTextLen) and/or capacity (BufSize) we need to set them back to what we want.
29  std::string* str = user_data->Str;
30  IM_ASSERT(data->Buf == str->c_str());
31  str->resize(data->BufTextLen);
32  data->Buf = (char*)str->c_str();
33  }
34  else if (user_data->ChainCallback)
35  {
36  // Forward to user callback, if any
37  data->UserData = user_data->ChainCallbackUserData;
38  return user_data->ChainCallback(data);
39  }
40  return 0;
41 }
42 
43 bool ImGui::InputText(const char* label, std::string* str, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data)
44 {
47 
48  InputTextCallback_UserData cb_user_data;
49  cb_user_data.Str = str;
50  cb_user_data.ChainCallback = callback;
51  cb_user_data.ChainCallbackUserData = user_data;
52  return InputText(label, (char*)str->c_str(), str->capacity() + 1, flags, InputTextCallback, &cb_user_data);
53 }
54 
56 {
59 
60  InputTextCallback_UserData cb_user_data;
61  cb_user_data.Str = str;
62  cb_user_data.ChainCallback = callback;
63  cb_user_data.ChainCallbackUserData = user_data;
64  return InputTextMultiline(label, (char*)str->c_str(), str->capacity() + 1, size, flags, InputTextCallback, &cb_user_data);
65 }
66 
67 bool ImGui::InputTextWithHint(const char* label, const char* hint, std::string* str, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data)
68 {
71 
72  InputTextCallback_UserData cb_user_data;
73  cb_user_data.Str = str;
74  cb_user_data.ChainCallback = callback;
75  cb_user_data.ChainCallbackUserData = user_data;
76  return InputTextWithHint(label, hint, (char*)str->c_str(), str->capacity() + 1, flags, InputTextCallback, &cb_user_data);
77 }
ImGuiInputTextFlags_CallbackResize
@ ImGuiInputTextFlags_CallbackResize
Definition: imgui.h:828
InputTextCallback_UserData::Str
std::string * Str
Definition: imgui_stdlib.cpp:17
InputTextCallback_UserData::ChainCallbackUserData
void * ChainCallbackUserData
Definition: imgui_stdlib.cpp:19
label
GLuint GLsizei const GLchar * label
Definition: glcorearb.h:4316
imgui.h
string
GLsizei const GLchar *const * string
Definition: glcorearb.h:3083
if
PHP_PROTO_OBJECT_FREE_END PHP_PROTO_OBJECT_DTOR_END if(!upb_strtable_init(&intern->table, UPB_CTYPE_UINT64))
Definition: php/ext/google/protobuf/map.c:232
InputTextCallback_UserData
Definition: imgui_stdlib.cpp:15
ImVec2
Definition: imgui.h:208
imgui_stdlib.h
ImGui::InputTextMultiline
IMGUI_API bool InputTextMultiline(const char *label, char *buf, size_t buf_size, const ImVec2 &size=ImVec2(0, 0), ImGuiInputTextFlags flags=0, ImGuiInputTextCallback callback=NULL, void *user_data=NULL)
Definition: imgui_widgets.cpp:3116
flags
GLbitfield flags
Definition: glcorearb.h:3585
InputTextCallback_UserData::ChainCallback
ImGuiInputTextCallback ChainCallback
Definition: imgui_stdlib.cpp:18
ImGuiInputTextCallback
int(* ImGuiInputTextCallback)(ImGuiInputTextCallbackData *data)
Definition: imgui.h:175
update_failure_list.str
str
Definition: update_failure_list.py:41
ImGui::InputTextWithHint
IMGUI_API bool InputTextWithHint(const char *label, const char *hint, char *buf, size_t buf_size, ImGuiInputTextFlags flags=0, ImGuiInputTextCallback callback=NULL, void *user_data=NULL)
Definition: imgui_widgets.cpp:3121
ImGui::InputText
IMGUI_API bool InputText(const char *label, char *buf, size_t buf_size, ImGuiInputTextFlags flags=0, ImGuiInputTextCallback callback=NULL, void *user_data=NULL)
Definition: imgui_widgets.cpp:3110
ImGuiInputTextCallbackData
Definition: imgui.h:1560
size
GLsizeiptr size
Definition: glcorearb.h:2943
ImGuiInputTextFlags
int ImGuiInputTextFlags
Definition: imgui.h:162
data
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: glcorearb.h:2879
IM_ASSERT
#define IM_ASSERT(_EXPR)
Definition: imgui.h:79
InputTextCallback
static int InputTextCallback(ImGuiInputTextCallbackData *data)
Definition: imgui_stdlib.cpp:22


libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:54