Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. #ifndef KOLIBRI_DBUTTON_H
  2. #define KOLIBRI_DBUTTON_H
  3.  
  4. typedef struct {
  5.         uint32_t type;
  6.         uint32_t x_w;
  7.         uint32_t y_h;
  8.         uint32_t mouse_pos;
  9.     uint32_t mouse_keys;
  10.     uint32_t mouse_keys_old;
  11.     void*    active_raw;        //active bitmap
  12.     void*    passive_raw;       //passive bitmap
  13.     void*    click_raw;         //pressed bitmap
  14.     uint32_t resolution_raw; // bpp, as esi fn65
  15.     void*    palette_raw;    // palette, as edi fn65
  16.     uint32_t offset_raw;     // width as ebp fn65
  17.     uint32_t select;         // internal state: 0 - passive, 2 - pressed, 1 - clicked
  18.     uint32_t click;          // clicked - 1, zero it after tested
  19. } pict_button;
  20.  
  21.  
  22. inline pict_button* kolibri_pict_button(pict_button* b, uint32_t x_w, uint32_t y_h, void* active_pict, void* passive_pict, void* pressed_pict, uint32_t bpp, void* palette, int32_t offset_line)
  23. {
  24.     b->type = b->mouse_pos = b->mouse_keys = b->mouse_keys_old = b->select = b->click = 0;
  25.     b->x_w = x_w;
  26.     b->y_h = y_h;
  27.     b->active_raw = active_pict;
  28.     b->passive_raw = passive_pict;
  29.     b->click_raw = pressed_pict;
  30.     b->resolution_raw = bpp;
  31.     b->palette_raw = palette;
  32.     b->offset_raw = offset_line;
  33.  
  34.     return b;
  35. }
  36.  
  37. inline pict_button* kolibri_new_pict_button(uint32_t x_w, uint32_t y_h, void* active_pict, void* passive_pict, void* pressed_pict, uint32_t bpp, void* palette, int32_t offset_line)
  38. {
  39.     pict_button *new_d_but = (pict_button *)malloc(sizeof(pict_button));
  40.     return kolibri_pict_button(new_d_but, x_w, y_h, active_pict, passive_pict, pressed_pict, bpp, palette, offset_line);
  41. }
  42.  
  43. inline void gui_add_pict_button(kolibri_window *wnd, pict_button* db)
  44. {
  45.     kolibri_window_add_element(wnd, KOLIBRI_D_BUTTON, db);
  46. }
  47.  
  48.  
  49. extern void (*dynamic_button_draw)(pict_button *) __attribute__((__stdcall__));
  50. extern void (*dynamic_button_mouse)(pict_button *) __attribute__((__stdcall__));
  51.  
  52. #endif /* KOLIBRI_DBUTTON_H */
  53.