в конструкторе происходит создание объекта
Далее в конструкторе происходит создание объекта класса DRDAppViewClass, наследованного от класса BView, и попытка помещения его на Shelf. В случае неудачи выводится окно с сообщением об ошибке. Для возможности вывода сообщения и работы с классом BView включаем заголовочные файлы
#include < Alert.h>
#include < String.h>
#include < stdio.h>
#include < View.h>
Класс DRDAppViewClass объявляется следующим образом:
class DRDAppViewClass:public BView { public: DRDAppViewClass(); DRDAppViewClass(BMessage *msg); virtual status_t Archive(BMessage
*data, bool deep=true) const; virtual void AttachedToWindow(); virtual void Draw(BRect p); static DRDAppViewClass *
Instantiate(BMessage *data); virtual void MouseDown(BPoint p); virtual bool QuitRequested(void); private: BPopUpMenu *m; BBitmap *bg; };
Опишем последовательно функции и структуры данных, которые содержатся в классе DRDAppViewClass.
Конструктор класса без параметров создает первоначальный объект - область размером 16x16 пикселов с именем VIEW_NAME, определенным ранее.
DRDAppViewClass::DRDAppViewClass()
:BView(BRect(0,0,15,15), VIEW_NAME, B_FOLLOW_LEFT, B_WILL_DRAW) { return; }
Класс DRDAppViewClass, объект которого помещается на Shelf Deskbar'a, должен быть архивируемым (archivable). Размещение выполняется посредством архивации и последующей разархивации созданного объекта класса. Поэтому в описание класса включены функции Archive, Instantiate и конструктор DRDAppViewClass с параметром BMessage *msg. Функция Archive осуществляет упаковку объекта, созданного конструктором без параметров, в переменную-объект класса BMessage*:
status_t DRDAppViewClass::Archive
(BMessage *data, bool deep=true) const { BView::Archive(data, deep); data->AddString("add_on",APP_NAME); data->AddString("class", VIEW_NAME); return B_OK; }
В архив - объект класса BMessage* - добавляются имя объекта класса DRDAppViewClass для контроля при последующей распаковке и сигнатура приложения.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий