NEW-CLX. How to translate keysyms to chars?

Help
2008-10-28
2013-05-29
  • Drutsa Pavel

    Drutsa Pavel - 2008-10-28

    On trying to write an simple GUI application I was confronted with difficulties in translation of keysyms into characters, especially with non  ASCII chars (I use both Russian and Romanian layout sometimes in one application at once). 
    The function 'keysym-name' gives me some very nice and correct descriptions that however, I can't draw on the screen i.e. translate into characters, that user input from his keyboard.
    For my case, I added a function  'keycode->string' in my CLX module, that  uses XLookupString  function from libX11. But it's not portable at all.

     
    • Sam Steingold

      Sam Steingold - 2008-10-29

      to be honest, I am hazy on the difference between keysyms and keycodes.
      however, there is a function called XLIB:KEYSYM->CHARACTER which, I think, should do what you want.
      if what you want is to go from the unicode name, you need CL:NAME-CHAR and XLIB:CHARACTER->KEYSYMS (not implemented, but seems trivial given http://www.x.org/wiki/KeySyms\).

       
      • François-René Rideau

        I don't know what your application is, but if you seriously want to accept arbitrary user input, in any language, you might prefer to use such library as pango. If it's just to get an input mechanism for a game, then keysyms are probably OK.

         
        • Drutsa Pavel

          Drutsa Pavel - 2008-10-29

          For now, it's a trivial "text entry" that must accept simple text input from the keyboard and draw it using "fixed" font.
          And I don't want more functionality that provides the 'libX11' library in my equivalent C code.

           
    • Drutsa Pavel

      Drutsa Pavel - 2008-10-29

      I found that the XLIB:DEFAULT-KEYSYM-INDEX functions differ in MIT-CLX and NEW-CLX.
      it NEW-CLX it returns constant 0.
      Should I write one,  for my needs ?
      in clx comments it's described that "brain dammaged" :-).
      Or maybe it's a reason to use XLookupString() in KEYCODE->CHARACER function in NEW-CLX implimentation ?
      All the work is done in the libX11.

       
      • Sam Steingold

        Sam Steingold - 2008-10-29

        there are many snide comments in the code.
        not all of them are equally valid.
        if you can improve the implementation of any function there, e.g., XLIB:DEFAULT-KEYSYM-INDEX, http://www.cygwin.com/acronyms/#PTC
        I don't see how XLookupString is relevant to KEYCODE->CHARACTER, but you can always file a patch (with a few test cases!)
        thanks.

         

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks