На этом шаге мы рассмотрим закрытие графического пользовательского интерфейса.
e_EndSession(AbortPossible)
При получении данного события оболочка графического пользовательского интерфейса должна быть закрыта. Это событие может быть вызвано пользователем или получено каким-либо иным способом, например, автоматически при сбое питания. В этом случае операционная система должна иметь некоторое время для завершения работы приложения благодаря системе бесперебойного питания (UPS, Uninterruptible Power Supply); это сообщение порождается операционной системой и посылается всем выполняющимся приложениям.
Событие посылается обработчику события окна Task. Предложение, обрабатывающее событие e_EndSession, в предикате обработчика должно завершиться неуспешно, если вы удовлетворите запрос на закрытие, или успешно - в противном случае.
Обычное действие, выполняемое для события e_EndSession, должно сохранять любые изменяемые данные.
Возвращаемый параметр, установленный в b_True, в приведенном ниже примере является бессмысленным.
my_window_event_handler(Window,e_EndSession(b_True),b_True):-!,
% Если этот код успешно выполнится, то система не закроется.
% Этот предикат должен выполниться неуспешно, чтобы запрос
% на закрытие системы был удовлетворен.
На следующем шаге мы рассмотрим активизацию меню и выбор пункта меню.