Дао Symbian Дмитрий «Dem@n» Тарасов Хакер, номер #096, стр. 096-130-3 - INC – здесь располагаются хедеры использующихся в проекте классов. Стоит отметить, что в Symbian C++ принята очень полезная практика - для каждого более-менее значимого класса создавать отдельную пару «хедер - cpp‘шник». Кроме того, в этой папке имеется файл с расширением hrh, в котором содержится перечисление всех юзерских команд, вызываемых при выборе определенного пункта меню: enum TXaCommandIds { cmd_mymoney=1, cmd_myanketa, cmd_myanketa_view, cmd_myanketa_change, cmd_shownadv, cmd_cab, cmd_hide }; Чтобы избежать всяких дурацких ошибок при сборке, важно не забывать вносить сюда все новые команды. Тут же лежит файл, содержащий локализованные версии строк, используемых в приложении для подписей, лейблов, диалогов и т.д. Как правило, такой файл состоит из строк вида: #define caption_cmd_title "МегаПрога" #define caption_cmd_exit "Выход" - SIS – тут находится pkp-файл, содержащий информацию, необходимую для сборки приложения, включая универсальный идентификатор приложения и пути файлов, которых надо поместить в сборку (картинки, ресурсы и т.д.). Так, например, в строке вида «"C:\Symbian\Series60\7.0\Epoc32\release\thumb\urel\Symbian4.app"-"!:\system\apps\Symbian4\Symbian4.app"» мы указываем, что файл Symbian4.app будет установлен в директорию system\apps в смартфоне. Сама сборка, то есть установочный sis-файл, окажется в рассматриваемой папке. - SRC – тут все просто - сорцы используемых в программе классов. Базовые классы проекта Элементарный Symbian-проект состоит из следующих классов: - Application – содержит точку входа и создает класс Document; - Document – задает некоторые свойства приложения (видимость/невидимость, например) и создает класс AppUI; - AppUI – формирует интерфейс пользователя и обрабатывает события (выбор пункта меню, элемента списка и т.д.), а также создает класс Container; - Container – класс, служащий контейнером для контролов (списки, редакторы и т.д.), а также отвечающий за перерисовку и настройку контролов. Думаю, на начальном уровне особый интерес представляет класс AppUI, поскольку он дает возможности обработки событий и команд пользователя. Рассмотрим, например, как обрабатывается выбор пункта меню. Как ты помнишь, в файле ресурсов содержится идентификатор команды, генерируемой при выборе каждого пункта. За перехват и обработку этих команд отвечает метод HandleCommandL класса AppUI. Код обработки выглядит так: void CXaAppUi::HandleCommandL(TInt aCommand) { switch ( aCommand ) { case cmd_first: { //какой-то код } break; case cmd_hide: { Exit(); //выход } break; case EAknSoftkeyBack: case EEikCmdExit: { Exit();//обработка нажатия на правую клавишу «Back» |