XmTextField/libwcsmbs/lesstif

Martin Dvorak mdvo4092 na ss1000.ms.mff.cuni.cz
Středa Květen 24 12:18:01 CEST 2000


Uz jednou se objevil v konferenci prispevek tykajici
se chyboveho vypisu (tehdy se jednalo o Netscape):

Warning: 
    Name: textfield
    Class: XmTextField
    Character '0', not supported in font.  Discarded.

pri psani do textoveho fieldu. Uvedene zaplaty me vsak neuspokojily.
	Me netrapi ani tak Netscape, jako Java (JDK).
Pri nastavovani obsahu textoveho fieldu (tyka se XmTextField a XmText)
at uz ve webovych strankach (Netscape), nebo z Javy dostanu
tento vypis. Opacne ale pri vstupu z klavesnice vse funguje, a z
komponenty jsem schopen text bez problemu ziskat. V Jave konkretne
.setText(String) chodi, ale .getText() ne.

V cem je problem - to prave nevim.

1. Mam distribuci Debianu. V ni prakticky veskere bin. od cp az
po zmineny Netscape pouzivaji preload libwcsmbs, ktery se stara
o multibyte support (konkretne mam verzi 0.0.5, zkousel jsem
i novejsi, ale nepomohlo to). Autorem je ze zrejmych duvodu jakysi
japonec -> bohuzel i README je japonsky. Problem by tedy mohl
byt zde - nejsem si totiz jist, zda chodi nejen podpora japonstiny,
ale take UNICODE (viz nize). (v jinych distribucich (jako RedHat se tato
knihovna nepouziva)).

2. Protoze jak Netscape tak Java (AWT) pouzivaji Motif
-> lesstif (inst. v0.90), dopidil jsem se k problemu v nem. V doc 
jsem se docetl:

Does LessTif support I18N?
 Two widgets that accept text input (namely XmText and XmTextField) 
do support it, but they don't feature multibyte support. 
 This means you can use sequences such as Multi_key+c+o to get (C),
Multi_key+n+~ to get the
?, etc.. These work because they're part of the ISO Latin 1 character set, which is based on
one-byte representations. 
 The XmText and XmTextField widgets can handle input methods, as described
above, but they
don't have multibyte support. This means that Asian input methods which work with a
multi-byte representation of a character will not work (yet). 

Takze problem je mozna zde. Java nejspis jede v UNICODE (mozna
ze i vnitrne Netscape) a tudiz pouziva multibyte support tj. wcsmbs, 
ktery lesstif neumi (a nebo je vse uplne jinak).

Poradil by mi nekdo, jak rozchodit v Jave textfieldy (i za cenu 
odstreleni cestiny z X (coz podle me nepomuze)? Nejde mi o tedy 
o Netscape ale o *JDK*. 

                    Predem diky
					Martin Dvorak					

---
ultradvorka na post.cz
http://run.to/ultradvorka
---




Další informace o konferenci Linux