События

Как и во многих инструментах для построения пользовательских интерфейсов, ключевую роль в архитектуре LUWRAIN играет центральный цикл обработки событий. Он выполняет две важные функции:

  • централизованно собирает все события для доставки элементам управления;
  • синхронизирует взаимодействие фоновых потоков с элементами управления.

Взаимодействие с элементами управления вне потока, в котором выполняется центральный цикл, в LUWRAIN запрещено. В тех случаях, где подобное взаимодействие угрожает целостности системы, подобные операции блокируют соответствующие проверки, но даже если блокировка отсутствует, результат выполнения такого действия не определён.

События разбиты на несколько категорий. Часть из них скрыта в реализации ядра системы и воспользоваться ими можно только используя специальные функции интерфейса ядра. Примером такого события может быть событие, которое позволяет в общем цикле обработки выполнить произвольное действие, переданное в виде лямбда-выражения. Напрямую приложения не могут использовать такое событие, но могут воспользоваться функцией runUiSafely() в интерфейсе org.luwrain.core.Luwrain.

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

© 2012–2024 Проект LUWRAIN
Дизайн от Strash