Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6524 | siemargl | 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 */ |