Данные для его инициализации берутся
Данные для его инициализации берутся из массива bmpdata размером 256 байт:
unsigned char bmpdata[256]={......};
// в фигурных скобках находятся 256 чисел, каждое в интервале от 0 до 255.
Установить соответствия между цветами и их числовыми значениями для режима B_CMAP8 можно с помощью программы 256. Также можно преобразовать уже готовый рисунок в заголовочный файл с помощью программы ImageToHeader.
Вывод рисунка иконки осуществляется функцией Draw(), которая устанавливает иконку в качестве фона для объекта класса DRDAppViewClass:
void DRDAppViewClass::Draw(BRect p) { SetViewBitmap(bg); Invalidate(BRect(0,0,15,15)); }
Функция Draw() вызывается системой каждый раз при необходимости перерисовать изображение, а программой - при присоединении объекта класса DRDAppViewClass к Shelf'у в функции AttachedToWindow:
void DRDAppViewClass::AttachedToWindow() { Draw(BRect(0,0,15,15)); }
Осталось рассмотреть две функции класса DRDAppViewClass. Функция MouseDown() вызывается системой при нажатии на иконке клавиши мыши. В ней производится обработка нажатий:
void DRDAppViewClass::MouseDown(BPoint p) { uint32 b; BPoint p1; GetMouse(&p1, &b); if(b==B_SECONDARY_MOUSE_BUTTON) { p1.Set(0,0); ConvertToScreen(&p1); BRect r=BRect(p1.x,p1.y,p1.x+15,p1.y+15); ConvertToScreen(&p); BMenuItem *mi=m->Go(p, false, true, r); if(mi) switch (mi->Message()->what) { case B_ABOUT_REQUESTED: (new BAlert("","Deskbar Replicant Demo
\nby Al.V. Sarikov.\nKherson, Ukraine, 2004. \nE-mail: avix@ukrpost.net.\nHome page:
http://avix.pp.ru.","OK"))->Go(); break; case B_QUIT_REQUESTED: QuitRequested(); break; } } else if(b==B_PRIMARY_MOUSE_BUTTON) (new BAlert("","Deskbar Replicant Demo
\nby Al.V. Sarikov.\nKherson, Ukraine, 2004. \nE-mail: avix@ukrpost.net.\nHome page:
http://avix.pp.ru.","OK"))->Go(); }
При нажатии левой клавиши мыши (Primary Mouse Button) выводится информация о программе и авторе. При нажатии правой клавиши мыши (Secondary Mouse Button) вызывается выпадающее меню функцией Go().
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий