Зададим имя исполняемому файлу. Для
Зададим имя исполняемому файлу. Для этого в окне проекта выбираем меню Edit/Project Settings. В появившемся окне указываем элемент списка x86 ELF Project, а в правой части окна в графе FileName пишем DeskbarReplicantDemo. Нажимаем кнопку Save и даем утвердительный ответ на вопрос о необходимости повторной линковки проекта.
Текст программы начинаем писать с функции main - главной функции любой C/C++-программы:
int main(void) { DRDAppClass DRDApp; return 1; }
DRDAppClass является классом приложения
- наследником класса BApplication:
class DRDAppClass:public BApplication { public: DRDAppClass(); };
Для возможности использования этого класса следует включить в текст программы заголовочный файл
#include < Application.h>
Класс DRDAppClass содержит единственную функцию - конструктор класса, поскольку его задачей является всего лишь инициализация объекта класса-наследника BView, помещаемого на Shelf Deskbar'а. После чего приложение завершает свою работу (функция main не содержит вызова функции Run() объекта класса DRDAppClass).
DRDAppClass::DRDAppClass():BApplication(APP_NAME) { BDeskbar d; if(d.HasItem(VIEW_NAME)) return;
DRDAppViewClass *DRDAppView; DRDAppView=new DRDAppViewClass(); status_t err=d.AddItem(DRDAppView); if(err!=B_OK) { char temp[255]; sprintf(temp, "Error starting: %s", strerror(err)); BAlert *alert = new BAlert("", temp, "OK"); alert->Go(); } }
Сигнатуру приложения APP_NAME и имя VIEW_NAME объекта, помещаемого на Shelf, задаем следующим образом:
#define APP_NAME "application/x-vnd.DeskbarReplicantDemo" #define VIEW_NAME "DRDAppView"
В первых двух строках конструктора класса DRDAppClass выполняется проверка наличия на Shelf'е объекта с именем VIEW_NAME и выход из конструктора, если такой объект уже существует. Таким образом предотвращается помещение на Shelf нескольких экземпляров одного и того же объекта.
Для того, чтобы иметь доступ к классу BDeskbar, включаем заголовочный файл
#include < Deskbar.h>
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий