===== События ===== ==== Назначение ==== Информационные сообщения с назначенными на него "событиями" используются телефоном для передачи информации из одной книги в другую. \\ Сообщения могут как содержать дополнительную информацию (//приложение//), так и могут быть отправлены без неё. \\ ==== Методы приёма информации ==== === Обработка событий книгой === Рассмотрим данный метод. \\ #pragma swi_number=0x12B __swi __arm int CreateBook(void * mem, void (* onClose)(BOOK*), const PAGE_DESC * bp, const char * name, int __0xFFFFFFFF,int __0); Как мы видим, третьим параметром при создании книги является PAGE_DESC. Это описание главной страницы книги. Данная страница будет добавлена в список активных страниц прямо при создании книги.\\ Пример описания страницы\\ const PAGE_MSG bk_msglst_base[] @ "DYN_PAGE" = { ELF_TERMINATE_EVENT, TerminateElf, ELF_SHOW_INFO_EVENT, ShowAuthorInfo, NIL_EVENT_TAG, NULL }; const PAGE_DESC bk_base = {"MyElf_Base_Page",0,bk_msglst_base}; Как мы видим, в массиве bk_msglst_base записаны номера событий и соответствующие им процедуры.\\ **Обратите внимание**, что //фиксированные// события из эльфпака (**ELF_TERMINATE_EVENT**, **ELF_SHOW_INFO_EVENT**, **SBY_REDRAW_EVENT**, **993** и т.д.) не требуют суффикса _TAG, а события, входящие в DYN_CONST, должны быть обязательно записаны с ним.\\ Также следует отметить, что данным способом не все события могут быть получены в некоторых случаях. \\ === Обработка событий с использованием ловушек === int onTimeReceived(UI_MESSAGE *message) { void *msg=message->data; //Дополнительная информация //... }; ModifyUIHook(UI_MEDIAPLAYER_AUDIO_PLAYING_TIME_EVENT, onTimeReceived, 1); ==== Функции передачи информации ==== [[elflib:functions:ui_event]], [[elflib:functions:ui_event_tobookid]], [[elflib:functions:ui_event_tobookidwdata]], [[elflib:functions:ui_event_tosid]], [[elflib:functions:ui_event_wdata]], где: * toBookID - событие передаётся книге с определённым ID * toSID - событие передаётся активной книге выбранной сессии * wData - событие содержит дополнительные данные