Giter Site home page Giter Site logo

Comments (9)

jvcleave avatar jvcleave commented on August 17, 2024

I think there may be some Unicode/UTF-8 in OF 0.9.0

Take a look at this and see if it may help
http://blog.openframeworks.cc/post/133404738514/openframeworks-090-ofthreadchannel-utf-8-and

Especially the section about ofAppendUTF8(str,key)

from ofximgui.

Geistyp avatar Geistyp commented on August 17, 2024

Yes, but ImGui combine key code to string and parse to utf8, we just use AddInputCharacter to add key code.

https://github.com/arturoc/glfw/blob/feature-keysUnicode/src/win32_window.c#L320

        case WM_SYSKEYDOWN:
        {
            const int scancode = (lParam >> 16) & 0x1ff;
            const int key = translateKey(wParam, lParam);
            if (key == _GLFW_KEY_INVALID)
                                break;
                        const int unicode = translateToUnicode(wParam,scancode);

                        _glfwInputKey(window, key, scancode, unicode, GLFW_PRESS, getKeyMods());
            break;
        }

        case WM_CHAR:
        {
            _glfwInputChar(window, (unsigned int) wParam, getKeyMods(), GL_TRUE);
            return 0;
        }

        case WM_SYSCHAR:
        {
            _glfwInputChar(window, (unsigned int) wParam, getKeyMods(), GL_FALSE);
            return 0;
        }

        case WM_UNICHAR:
        {
            // This message is not sent by Windows, but is sent by some
            // third-party input method engines

            if (wParam == UNICODE_NOCHAR)
            {
                // Returning TRUE here announces support for this message
                return TRUE;
            }

            _glfwInputChar(window, (unsigned int) wParam, getKeyMods(), GL_TRUE);
            return FALSE;
        }

oF already translate char to unicode, but ImGui input just need (unsigned int) wParam

There is no different change to use glfwSetCharCallback(), but add features to support IME input.

from ofximgui.

jvcleave avatar jvcleave commented on August 17, 2024

ok - I think I understand. I will take a look

from ofximgui.

o2co2 avatar o2co2 commented on August 17, 2024

@Geistyp

static char buf[256] = "";
        bool isinput = ImGui::InputText(ofLocaleToUtf8("输入中文").c_str(), buf, IM_ARRAYSIZE(buf));
        if (isinput)
        {
            ofLogNotice(  ofToString(buf) );
        }

display Garbled

from ofximgui.

o2co2 avatar o2co2 commented on August 17, 2024

@Geistyp How to convert static char buf[256]

from ofximgui.

Geistyp avatar Geistyp commented on August 17, 2024

@o2co2 what do you mean?
Is that "输入中文" garbled? or your IME input garbled?

from ofximgui.

o2co2 avatar o2co2 commented on August 17, 2024

@Geistyp see the picture
file-list

from ofximgui.

Geistyp avatar Geistyp commented on August 17, 2024

@o2co2
console output chinese? try setlocale(LC_ALL, "chs");

from ofximgui.

o2co2 avatar o2co2 commented on August 17, 2024

@Geistyp Thank you

static char buf[256] = "";
bool isinput = ImGui::InputText(ofLocaleToUtf8("输入中文").c_str(), buf, IM_ARRAYSIZE(buf));
if (isinput)
{
      std::wstring sw = UTF8ToUnicode(ofToString(buf));
      std::string uToa = UnicodeToANSI(sw);
      ofLogNotice(uToa.c_str());
}

from ofximgui.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.