42 lines
2.0 KiB
Markdown
42 lines
2.0 KiB
Markdown
# Окно и ввод — `api.window`
|
|
|
|
Группа `api.window` управляет окном приложения и плавающим полем ввода.
|
|
|
|
## Окно
|
|
|
|
| Метод | Описание |
|
|
| --- | --- |
|
|
| `api.window:close()` | Закрыть окно |
|
|
| `api.window:toggle_maximize()` | Развернуть окно / вернуть прежний размер |
|
|
| `api.window:set_maximized(true/false)` | Развернуть (`true`) или восстановить (`false`) окно |
|
|
| `api.window:minimize()` | Свернуть окно |
|
|
| `api.window:is_maximized()` | Развёрнуто ли окно прямо сейчас |
|
|
|
|
Команды окна не выполняются в момент вызова из Lua: они складываются в
|
|
очередь и применяются видом в начале следующего кадра.
|
|
|
|
## Плавающее поле ввода
|
|
|
|
`api.window:open_input(options)` открывает однострочное поле ввода чуть выше
|
|
центра окна. Параметры передаются таблицей:
|
|
|
|
| Поле | Описание |
|
|
| --- | --- |
|
|
| `title` | Текст над полем; если не задан, окно состоит из одной строки ввода |
|
|
| `placeholder` | Подсказка внутри пустого поля ввода |
|
|
| `callback` | `function(text)` — вызывается после Enter, когда окно уже закрыто |
|
|
|
|
Пока окно открыто, сочетания клавиш приложения не работают. Текст набирается
|
|
в поле; `Enter` подтверждает ввод и запускает `callback`, `Esc` и клик мышью
|
|
вне окна закрывают его без вызова колбэка.
|
|
|
|
```lua
|
|
api.window:open_input({
|
|
title = "Имя файла",
|
|
placeholder = "src/main.rs",
|
|
callback = function(text)
|
|
api.editor:open(text, {})
|
|
end,
|
|
})
|
|
```
|