|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Zahar Kiselev 2:5030/382.1 26 Feb 2002 22:55:12 To : Victor Wagner Subject : Re: Языковые оболочки... -------------------------------------------------------------------------------- Feb 16 12:04 02, Victor Wagner wrote to Zahar Kiselev: VW> Захар, ты не задумыввался о том, что в многооконных системах VW> жизнь бывает несколько сложнее, чем описанная тобой модель. VW> Тебе действительно хочется самому обрабатывать все эти VW> Expose, MappingNotify, SubstructureNotify, Resize, Configure, VW> Circulate, VW> ICCCM запросы от других программ, и прочие события VW> определенные в X-протоколе. А если немного подумать, VW> то дисплей является далеко не единственным источником событий. VW> Есть еще пайпы в дочерние процессы, и, если ты не будешь обрабатывать VW> их в том же цикле, то на время запуска дочернего процесса у тебя VW> интерфейс "замерезнет", есть сокет, ведущий к audio-серверу, VW> на котором время от времени возникает событие "а кинь-ка мне VW> еще кусок wav-а", есть другие сокеты, которые постоянно становятся VW> то readable, то writable. Я не являюсь профессиональным программистом и _никогда_ даже не задумаю писать программу, где вся эта куча событий будет присутствовать. VW> Более того, примерно для трех четвертей событий библиотеки VW> предоставляют VW> обработчики по умолчанию, и если ты создал, скажем поле ввода текста, VW> то нажатие алфавитно-цифровых клавиш на нем - уже не твоя забота И три четверти из предлагаемых обработчиков делают не то что мне бы хотелось. Самый распространенный пример - это использование клавиши TAB для перехода между несколькими полями ввода, причем только в том порядке, в котором они были созданы(описаны, объявлены). Я хочу так, как было в старых учетно-бухгалтерских(например) программах - перемещение между полями при помощи стрелок управления курсором. ZK>> так. А во иксовых интерфейсных библиотеках этот цикл и ZK>> функция получения события(клавиши или мыши) - упрятаны ZK>> внутрь библиотеки и соответственно я лишен возможности ZK>> контроля над этим. VW> Вообще говоря, есть pure Xlib, которая устроена точно так, как VW> ты описал. Почему-то большинство программистов предпочитает VW> пользоваться высокоуровневыми обертками. А те, кто этого VW> не делает, редко пишут программы, имеющие приемлемый look & feel. VW> Постоянно, то WM_DELETE_WINDOW забывают обработать, то еще что. xlib - это самый нижний уровень. Мне нужно то, что есть в библиотеке CScape и было например в TurboProfessional. И то и другое - многооконность в текстовом режиме, хочу точно то же самое(даже по внешнему виду), но поверх иксов. Впрочем - я тут разбираюсь с перетаскиванием CScape под Линукс - исходники есть и все необходимое для портабельности там внутри предусмотрено. Вот только не знаю - получится ли заставить CScape работать поверх xlib. То, что он будет работать в текстовом режиме поверх ncurses - ясно уже сейчас. Zahar(@spbdept.rbc.ru) --- Msged/LNX 6.1.0 * Origin: undefined location (2:5030/382.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/32883c7bfab2.html, оценка из 5, голосов 10
|