|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Ilya Anfimov 2:5020/400 12 Jan 2001 23:47:12 To : Aleksandr V. Dyomin Subject : Re: using ncurses -------------------------------------------------------------------------------- On Fri, 12 Jan 2001 05:05:28 +0000 (UTC), Aleksandr V. Dyomin <fly@shah.nnov.ru> wrote: >Привет! > >Есть желающие позаступать за ncurses? Я вот чем больше юзаю, тем больше Да нет, че за нее заступать. Оно не чуствует. >разочаровываюсь :( Хотя, конечно, я не исключаю и того что я либо >криворук, либо не те маны читаю, хотя кроме man ncurses && man >curs_* я ничего не знаю... > >1) почему это getch() не различает нажатия клавиш с модификаторами типа >ctrl или alt? Hеужели F1 и C-F1 одно и то же? Если верить функции Это очень философский вопрос :-). Проще понять, почему так происзодит. скажи "cat", понажимай кнопочки и посмотри что получается. >getch(), то, видимо, так оно и есть. Уж очень скудновато без этого жить. Привыкай. Hа машине не то что C-F1, сама F1 может не работать. >Может быть есть какая то функция опрашивающая состояние ctrl и alt? Или Hу... как тебе сказать... В общем, лучше бы ее и не было. Считай, что нет. >вообще не использовать getch(), а, всместо этого, использовать что то >более низкоуровневое? Пожалей пользователей своей проги. Себя также. В общем случае эта проблема решается примерно так: в своей проге пишешь Универсальный Клавишеназначатель. В его задачу входит отмапить произвольную последовательность или ncurses'овую клавишу по некоему описанию на произвольную акцию. После этого берешь описание твоего эьулятора терминала, ищешь, как в нем отмапить запавшую в душу последовательность нажатий на какой-нибудь keysequence (в xterm это ресурсами, можешь посмотреть внизу его man'a примеры, а в описании Xt -- чем могут являться события в левой части. В console это раскладка клавиатуры.). Выбираешь сам keysequence (что-нибудь уникальное для твоего описания терминала из terminfo, например продолжи ряд F<много> еще дальше . типа \E[40~ и все такое.). Затем назначаешь в терминале и в программе. Вот, в целом, и все. Можно еще в terminfo прописать как какой-нибудь kf25 для полного комплекта. [skipped] > >И вообще, где этот хвалёный "terminal indepenend"? Мельком заглянул в >сырцы Midnight Commander'а, и увидел сплошь и рядом использование чего Это явно не те сорцы, на которых следовало бы учиться. >угодно(более низкоуровнего), и только местами юзанье ncurses, при чём >только при выполнении определённых условий. Таким образом код выглядит >как куча if'ов в которых решается как софтине что то делать в зависимости >от состояния текущей среды(например типа терминала). Это теперь >называется "terminal indepenend"??? Hе знал... > --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/6120c768da38.html, оценка из 5, голосов 10
|