BeOS - статьи

Украинский Переводчик онлайн перевод текста online с на английский. |

Помещение репликанта на Shelf Deskbar'а - часть 2


Зададим имя исполняемому файлу. Для этого в окне проекта выбираем меню 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>




Начало  Назад  Вперед