mirror of
https://github.com/ocornut/imgui.git
synced 2024-11-28 00:39:02 +08:00
Merge pull request #274 from DanielGibson/utf8-char-input
ImGuiIO::AddInputCharactersUTF8(utf8str), use it in SDL2 example
This commit is contained in:
commit
bc4ede656b
@ -118,9 +118,7 @@ bool ImGui_ImplSdl_ProcessEvent(SDL_Event* event)
|
|||||||
case SDL_TEXTINPUT:
|
case SDL_TEXTINPUT:
|
||||||
{
|
{
|
||||||
ImGuiIO& io = ImGui::GetIO();
|
ImGuiIO& io = ImGui::GetIO();
|
||||||
unsigned int c = event->text.text[0];
|
io.AddInputCharactersUTF8(event->text.text);
|
||||||
if (c > 0 && c < 0x10000)
|
|
||||||
io.AddInputCharacter((unsigned short)c);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
case SDL_KEYDOWN:
|
case SDL_KEYDOWN:
|
||||||
|
12
imgui.cpp
12
imgui.cpp
@ -778,6 +778,18 @@ void ImGuiIO::AddInputCharacter(ImWchar c)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ImGuiIO::AddInputCharactersUTF8(const char* utf8chars)
|
||||||
|
{
|
||||||
|
// we can't pass more wchars than ImGuiIO::InputCharacters[] can hold so don't convert more
|
||||||
|
static const int wcharBufLen = sizeof(ImGuiIO::InputCharacters)/sizeof(ImWchar);
|
||||||
|
ImWchar wchars[wcharBufLen];
|
||||||
|
ImTextStrFromUtf8(wchars, wcharBufLen, utf8chars, NULL);
|
||||||
|
for(int i=0; i<wcharBufLen && wchars[i] != 0; ++i)
|
||||||
|
{
|
||||||
|
AddInputCharacter(wchars[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Math bits
|
// Math bits
|
||||||
// We are keeping those static in the .cpp file so as not to leak them outside, in the case the user has implicit cast operators between ImVec2 and its own types.
|
// We are keeping those static in the .cpp file so as not to leak them outside, in the case the user has implicit cast operators between ImVec2 and its own types.
|
||||||
static inline ImVec2 operator*(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x*rhs, lhs.y*rhs); }
|
static inline ImVec2 operator*(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x*rhs, lhs.y*rhs); }
|
||||||
|
1
imgui.h
1
imgui.h
@ -705,6 +705,7 @@ struct ImGuiIO
|
|||||||
|
|
||||||
// Function
|
// Function
|
||||||
IMGUI_API void AddInputCharacter(ImWchar c); // Helper to add a new character into InputCharacters[]
|
IMGUI_API void AddInputCharacter(ImWchar c); // Helper to add a new character into InputCharacters[]
|
||||||
|
IMGUI_API void AddInputCharactersUTF8(const char* utf8chars); // Helper to add new characters into InputCharacters[] from an utf8-string
|
||||||
|
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
// Output - Retrieve after calling NewFrame(), you can use them to discard inputs or hide them from the rest of your application
|
// Output - Retrieve after calling NewFrame(), you can use them to discard inputs or hide them from the rest of your application
|
||||||
|
Loading…
Reference in New Issue
Block a user