ded2007
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору 1. Делаем резервную копию своего main.inc 2. Открываем main.inc в текстовом редакторе. 3. Поиском по тексту находим образец "/main.input" (без кавычек разумеется) - это начало скрипта, обрабатывающего нажатия клавиш - открывающая фигурная скобка, идущая после указанного текста, показывает начало скрипта - закрывающая скобка, соответствующая данной (все фигурные скобки парные, поэтому удобно использовать редактор с подсветкой синтаксиса) сопровождена словом } def и расположена после блока dup 0 ne { pop 0 } if - внутри этого скрипта анализируются нажатия различных клавиш. Поскольку код нажатой клавиши сравнивается с кодами подлежащими обработке, то скрипт состоит из набора блоков "if", которые ограничены командами вида dup ПроверяемыйКОД eq { .... .... pop 0 } if Нас будут интересовать блоки от keyUp и keyDown. 4. Если все вышесказанное понятно и Вы идентифицировали все блоки, то можно приступать к модификации скрипта. - НАЧАЛО СКРИПТА. Блок ... /main.input { dup 0 eq { return } if ... заменяем на... /main.input { /s.repeat 0 def % ded dup 0 eq { return } if - БЛОК keyUp... dup keyUp eq { menu.entry 0 gt { menu.entry false MenuSelect menu.entry menu.shift eq { /menu.shift menu.shift 1 sub def main.drawmenu } if /menu.entry menu.entry 1 sub def menu.entry true MenuSelect } if pop 0 } if ... заменяем на ... dup keyUp eq { menu.entry 0 gt { menu.entry false MenuSelect menu.entry menu.shift eq { /menu.shift menu.shift 1 sub def main.drawmenu } if /menu.entry menu.entry 1 sub def /s.repeat keyUp def % ded menu.entry true MenuSelect } if pop 0 } if - БЛОК keyDown... dup keyDown eq { menu.entry menu.texts length 1 sub lt { menu.entry false MenuSelect menu.visible.entries menu.entry menu.shift sub sub 1 eq { /menu.shift menu.shift 1 add def main.drawmenu } if /menu.entry menu.entry 1 add def menu.entry true MenuSelect } if pop 0 } if ... заменяем на ... dup keyDown eq { menu.entry menu.texts length 1 sub lt { menu.entry false MenuSelect menu.visible.entries menu.entry menu.shift sub sub 1 eq { /menu.shift menu.shift 1 add def main.drawmenu } if /menu.entry menu.entry 1 add def /s.repeat keyDown def % ded menu.entry true MenuSelect } if pop 0 } if - КОНЕЦ СКРИПТА. Блок ... dup 0 ne { pop 0 } if } def ... заменяем на ... dup 0 ne { pop 0 } if s.repeat 0 ne { menu.texts menu.entry get "---" eq { s.repeat main.input } { menu.entry true MenuSelect } ifelse } if % ded } def 5. "---" - это образец строк меню, которые должны пропускаться при движении вверх/вниз. Можете задать свой вариант, например 7 пробелов. Обратите внимание, что первый пробел после "title" служебный и не является частью строки меню. Совпадение должно быть точным, т.е. "---" и "--- " не одно и то же. 6. Сохраните изменения в main.inc, перекомпилируйте gfxboot тему, добавьте в menu.lst команды title --- configfile /menu.lst и тестируйте. | Всего записей: 224 | Зарегистр. 13-02-2009 | Отправлено: 00:13 29-09-2010 | Исправлено: ded2007, 00:30 29-09-2010 |
|