UniScreen
Платформо-независимое описание полноэкранного GUI-окна UniGUI.
Обзор
UniScreen — фундаментальный дескриптор полноэкранных GUI-интерфейсов в UniGUI. Он инкапсулирует дерево виджетов Widget, заголовок окна, масштабирование интерфейса (uiScale), синхронизацию с масштабом GUI игры, политику рендеринга (UiRenderPolicy), шрифт по умолчанию и перехват клавиатурного ввода перед отправкой виджетам.
Жизненный цикл и открытие
Открытие и закрытие экрана не зависит от платформы. Вызов openGui() запрашивает у активного RenderBackend открытие экрана (например, создание и отображение Minecraft-обёртки Screen или автономного окна). Колбэк onClose вызывается при закрытии экрана.
Масштабирование и перехват ввода
Экран может масштабироваться синхронно с настройками интерфейса игры (scaleWithGameGui(true)) либо использовать фиксированный масштаб через uiScale(float).
Интерфейс KeyboardInputHandler позволяет глобально перехватывать горячие клавиши (например, Esc или поиск) до их передачи сфокусированным виджетам.
Создание и открытие экрана
Widget root = new MySettingsWidget();
UniScreen screen = new UniScreen("Settings", root)
.renderPolicy(UiRenderPolicy.onDirty())
.scaleWithGameGui(true)
.onClose(() -> System.out.println("Экран закрыт"))
.openGui();
Пользовательский масштаб и перехват ввода
UniScreen screen = new UniScreen("Редактор", editorRoot)
.uiScale(1.5f)
.keyboardInputHandler((keyCode, scanCode, modifiers) -> {
if (keyCode == 256) { // ESC
screen.closeGui();
return true;
}
return false;
})
.openGui();
API
UniScreen::closeCallback()
closeCallback()
Возвращает зарегистрированный колбэк закрытия или null.
Возвращает Runnable: Колбэк Runnable или null..
UniScreen::closeGui()
closeGui()
Закрывает этот экран через установленный бэкенд платформы игры.
Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..
UniScreen::context()
context()
Возвращает опциональный контекст интерфейса, привязанный к экрану.
Возвращает UIContext: Привязанный UIContext или null..
UniScreen::defaultFont()
defaultFont()
Возвращает шрифт по умолчанию на уровне экрана или null, если используется дефолт бэкенда.
Возвращает FontFace: Экземпляр FontFace или null..
UniScreen::defaultFont(FontFace)
defaultFont(FontFace)
Устанавливает шрифт по умолчанию для экрана; null восстанавливает значение по умолчанию.
| Параметр | Тип | Описание |
|---|---|---|
font |
FontFace |
Шрифт FontFace или null для сброса на дефолт бэкенда. |
Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..
UniScreen::hasCustomUiScale()
hasCustomUiScale()
Возвращает true, если задан пользовательский масштаб интерфейса.
Возвращает boolean: True, если задан конечный масштаб..
UniScreen::keyboardInputHandler()
keyboardInputHandler()
Возвращает перехватчик клавиатурного ввода уровня экрана.
Возвращает KeyboardInputHandler: Экземпляр KeyboardInputHandler или null..
UniScreen::keyboardInputHandler(KeyboardInputHandler)
keyboardInputHandler(KeyboardInputHandler)
Устанавливает перехватчик ввода с клавиатуры, вызываемый до передачи событий виджетам.
| Параметр | Тип | Описание |
|---|---|---|
handler |
KeyboardInputHandler |
Обработчик клавиатурного ввода. |
Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..
UniScreen::onClose(Runnable)
onClose(Runnable)
Регистрирует колбэк, вызываемый при закрытии экрана.
| Параметр | Тип | Описание |
|---|---|---|
callback |
Runnable |
Действие Runnable. |
Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..
UniScreen::openGui()
openGui()
Открывает этот экран через установленный бэкенд платформы игры.
Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..
UniScreen::pauseGame()
pauseGame()
Ставится ли игра на паузу, пока экран открыт (только одиночная игра); по умолчанию true.
Возвращает boolean: true, если игра ставится на паузу, пока экран открыт..
UniScreen::pauseGame(boolean)
pauseGame(boolean)
Задаёт, ставится ли игра на паузу, пока экран открыт. В сетевой игре не действует.
| Параметр | Тип | Описание |
|---|---|---|
value |
boolean |
Логическое значение. |
Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..
UniScreen::renderPolicy()
renderPolicy()
Возвращает активную политику рендеринга и инвалидации.
Возвращает UiRenderPolicy: Текущая политика UiRenderPolicy..
UniScreen::renderPolicy(UiRenderPolicy)
renderPolicy(UiRenderPolicy)
Настраивает политику рендеринга и инвалидации для экрана.
| Параметр | Тип | Описание |
|---|---|---|
policy |
UiRenderPolicy |
Устанавливаемая политика UiRenderPolicy; при null используется continuous. |
Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..
UniScreen::root()
root()
Возвращает корневой виджет экрана.
Возвращает Widget: Экземпляр корневого виджета..
UniScreen::scaleWithGameGui()
scaleWithGameGui()
Возвращает true, если масштаб экрана синхронизируется с настройками GUI игры.
Возвращает boolean: True при синхронизации масштаба..
UniScreen::scaleWithGameGui(boolean)
scaleWithGameGui(boolean)
Определяет, должен ли экран синхронизировать масштаб с настройками GUI игры.
| Параметр | Тип | Описание |
|---|---|---|
value |
boolean |
True для включения синхронизации. |
Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..
UniScreen::title()
title()
Возвращает заголовок окна экрана.
Возвращает String: Строка заголовка экрана..
UniScreen::title(String)
title(String)
Устанавливает заголовок окна экрана.
| Параметр | Тип | Описание |
|---|---|---|
title |
String |
Новый заголовок экрана. |
Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..
UniScreen::uiScale()
uiScale()
Возвращает пользовательский масштаб интерфейса или NaN, если не задан.
Возвращает float: Множитель масштабирования..
UniScreen::uiScale(float)
uiScale(float)
Устанавливает фиксированный масштаб интерфейса для экрана.
| Параметр | Тип | Описание |
|---|---|---|
scale |
float |
Положительный конечный масштабный коэффициент. |
Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..