Page 2 of 2

Posted: Tue Jan 27, 2009 8:12 am
by borr_1
Nikolay wrote: Но я так и не понял это решение привязано к локали или нет? Если привязана, то его ценность сомнительна.. ценность конечно есть, но....
Если вы о локали вообще, то я не вижу таких решений, что можно было бы обойтись без нее - ну никак. А если конкретно о locale.h я полазил посмотрел у людей на код под Linux'ом они там его подключают setlocale используют насчет _wsetlocale - правда не видел но это еще не значит что его там нет все таки часть stl как никак - пока не попробуешь не узнаешь, а у нас с этим полный абзац :(

Posted: Tue Jan 27, 2009 8:33 am
by Nikolay
О локали вообще. Если у нас юникод - то должна быть возможность менять регистр без локали.

Правда я видел дисскусию, по-моему на рсдн что без локали даже юникод не преобразуешь так как... точно не помню но там ссылки на сложные случаи в сложных языках...

АПИ винды которые я использую преобразуют без установки локали.

Re: Validator русский и разочарование

Posted: Sun Dec 16, 2012 4:35 pm
by maximand
Народ, пора решить эту проблему, а то она тянется давно.
Проблема уверен зарыта где-то там где char код при нажатии клавиши выводится. Там стоит ограничение,что если код >= 256 то возвращать 0.
Тут то и проблема, видимо этот 0 воспринимается как true.
Поэтому в линуксе навигация в wxTreeCtrl по русским названиям не работает. Валидатор не ловит кириллицу. Копи/пасто по ctrl+c не работает в русской раскладке и т.д.

Щас поищу старые закладки, где я уже кое-что нарыл...
Вот отсюда IMHO ноги растут
http://forums.wxwidgets.org/viewtopic.p ... e+char+256

Проблема в том, что при нажатии клавиши, когда она не в латинской раскладке, то евента соответсвующего нет, поэтому валидатор и не ловит ничего.
Why 256???

Re: Validator русский и разочарование

Posted: Mon Dec 17, 2012 12:54 pm
by maximand
В дополнение к валидатору я приделал такую функцию
(Провереро под Windows wx-2.8.12)

Code: Select all

wxTextCtrl textAmount_->Connect( wxEVT_CHAR, wxKeyEventHandler(mmTransDialog::OnKeyDown), NULL, this);
...
void mmTransDialog::OnKeyDown(wxKeyEvent& event)
{
   int key_code = event.GetUnicodeKey();
   if (key_code > 57) return;
   event.Skip();
}
Теперь русские буковки не проходят. Не призываю использовать этот костыль, но надеюсь это поможет понять суть проблемы.
А под линуксом это вовсе не работает ибо при нажатии чего-то русского евента вовсе нет.

Re: Validator русский и разочарование

Posted: Thu Dec 20, 2012 2:46 pm
by Mojo
maximand wrote:Народ, пора решить эту проблему, а то она тянется давно.
......
Да, пора уже решить, а то мне скоро тоже понадобится wxTreeCtrl а судя по теме, будут у меня проблемы.

Re: Validator русский и разочарование

Posted: Thu Dec 20, 2012 7:16 pm
by SteelRat
А в 2.9.х оно тоже есть?

Re: Validator русский и разочарование

Posted: Thu Dec 20, 2012 7:24 pm
by Mojo
SteelRat wrote:А в 2.9.х оно тоже есть?

Про 2.9 не знаю.... у меня 2.8.12 но в ней тоже не пробовал этот глюк, просто читаю эту ветку и так совпало, что скоро мне нужен будет wxTreeCtrl с русским текстом в дереве. Вот и размышляю...

Re: Validator русский и разочарование

Posted: Fri Dec 21, 2012 5:15 pm
by maximand
SteelRat wrote:А в 2.9.х оно тоже есть?
Всё те же глюки (под Linux по крайней мере)