Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » GRUB4DOS | GNU GRUB (часть 3)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

nik4z



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
и тестируйте.

Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 12:45 31-03-2016
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » GRUB4DOS | GNU GRUB (часть 3)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru