Subversion Repositories Kolibri OS

Rev

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 */