## Описание

Быстрое меню находится снизу диалогового окна и содержит часто используемые кнопки:

Переменная `quick_menu` отвечает за включение (`True`, по умолчанию) или отключение (`False`) этого меню.

## Свойства кнопок

Об изменении свойств кнопок (размеры, изображения, шрифт и т. д.) читайте в статье Интерфейс (gui).

## Добавление

Вы можете добавить свою кнопку в быстрое меню.

Списком (`list`) кнопок является `quick_menu_screen.items`.

Добавление своей кнопки:
`quick_menu_screen.items.append(['Screenshot', make_screenshot])`

Добавляемый объект является массивом со следующими элементами:

1. Строка с названием кнопки (автоматически будет применена система перевода);
2. Функция, которая будет вызвана при нажатии на кнопку;
3. Необязательный аргумент - вызываемый объект (`callable` - например, функция), возвращающий `True` (если кнопку нужно показать) или `False` (если нет).

Т. к. `quick_menu_screen.items` является простым массивом, то доступны все его методы.
Вот более сложный пример:

    my_score = 0

    def my_secret_func():
        # remove button from list
        i = 0
        while i < len(quick_menu_screen.items):
            if quick_menu_screen.items[i][0] == 'Something':
                quick_menu_screen.items.pop(i)
                break
            i += 1

        notification.out('Something')

    quick_menu_screen.items.insert(1, ['Something', my_secret_func, Eval('my_score > 10')])

Здесь кнопка "вставляется" (`insert`) так, что после этого занимает место `1` (отчёт идёт с `0`).
Также стоит обратить внимание на условие отображения: значение переменной `my_score` должно быть больше 10. Для упрощения проверки рекомендуется ввести (или скопипастить) в консоль (`Shift+O`) код `my_score = 11`.

Ну и перед удалением производится поиск элемента.
Почему бы просто не вызвать `quick_menu_screen.items.pop(1)`, ведь именно в индекс `1` мы его и добавляли?
Специально для случая, когда после этого кода что-то могло вставить ещё одну кнопку перед нашей.

## Объяснение Eval

"Вызов" экземпляра класса `Eval` возвращает то, что вернул бы код, который был передан ему при создании.
Пример:

    my_var = 5
    def my_func(a):
        return a * 2

    e = Eval('my_var * my_func(2) + 3')
    answer1 = e() # 23

    def instead_eval():
        return my_var * my_func(2) + 3
    answer2 = instead_eval() # 23

## Перевод

Перевод выполняется довольно просто (это код верхнего уровня - не в блоках `init`, `label` и т. д.):

    translate russian strings:

        old 'Screenshot'
        new 'Скриншот'

        old 'Something'
        new 'Что-то'

Подробнее читайте в статье Система переводов.

## Стиль контейнера кнопок

Располагается в переменной `style.quick_hbox`.
Изменив его, вы можете, например, сдвинуть все кнопки в левый или правый угол.
Настоятельно не рекомендуется каким-либо образом устанавливать ему размер.

Простой, в общем-то, код всего быстрого меню можно посмотреть в файле `Ren-Engine/rpy/screens/quick_menu.rpy`.

Далее ->
<- Назад