Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6499 → Rev 6500

/contrib/C_Layer/INCLUDE/kolibri_kmenu.h
13,14 → 13,89
#define KMENU_LBORDER_SIZE 2
#define KMENU_DBORDER_SIZE 1
 
typedef struct {
int type;
uint32_t color;
union {
uint32_t bgcolor;
void *buffer;
};
} t_font;
 
typedef struct {
uint16_t left, top, right, bottom;
} t_rect;
 
typedef struct kmenuitem_t{
int type;
char *text;
union {
void *submenu;
//kmenuitem_callback_t callback;
size_t btnid;
};
void (*paint)(struct kmenuitem_t *item, t_rect *rc) __attribute__((__stdcall__));
int is_focused;
int is_enabled;
int is_visible;
size_t style;
 
int font_width, font_height;
t_font font;
size_t left, top;
size_t width, height, pref_width, pref_height;
size_t margin_left, margin_right, margin_top, margin_bottom;
size_t padding_left, padding_right, padding_top, padding_bottom;
} kmenuitem_t;
 
typedef struct ksubmenu_t{
kmenuitem_t **items;
int count;
void (*paint)(struct ksubmenu_t *menu) __attribute__((__stdcall__));
int is_opened;
int focus_idx;
size_t width, height;
size_t left, top;
int tid;
int parent_wnd, parent_tid, submenu_tid, self_wnd;
int level;
size_t return_btnid;
int set_new_padding, set_new_margin;
t_rect items_padding;
t_rect items_margin;
struct ksubmenu_t *parent;
} ksubmenu_t;
 
typedef struct {
kmenuitem_t **submenu;
int count;
size_t width, height;
size_t left, top;
int line_height;
int focus_idx;
int submenu_tid;
} kmenu_t;
 
 
extern int kolibri_kmenu_init(void);
 
extern void (*kmainmenu_draw)(void *) __attribute__((__stdcall__));
extern void (*kmainmenu_dispatch_cursorevent)(void *) __attribute__((__stdcall__));
extern void (*kmainmenu_draw)(ksubmenu_t *) __attribute__((__stdcall__));
extern void (*kmainmenu_dispatch_cursorevent)(ksubmenu_t *) __attribute__((__stdcall__));
extern void (*kmenu_init)(void *) __attribute__((__stdcall__));
extern void* (*ksubmenu_new)() __attribute__((__stdcall__));
extern void (*ksubmenu_add)(void *, void *) __attribute__((__stdcall__));
extern void* (*kmenuitem_new)(uint32_t, const char *, uint32_t) __attribute__((__stdcall__));
extern void* (*kmenuitem__submenu_new)(uint32_t, const char *, void *) __attribute__((__stdcall__));
extern ksubmenu_t* (*ksubmenu_new)() __attribute__((__stdcall__));
extern void (*ksubmenu_add)(ksubmenu_t *, kmenuitem_t *) __attribute__((__stdcall__));
extern kmenuitem_t* (*kmenuitem_new)(uint32_t, const char *, uint32_t) __attribute__((__stdcall__));
extern kmenuitem_t* (*kmenuitem__submenu_new)(uint32_t, const char *, ksubmenu_t *) __attribute__((__stdcall__));
 
#endif /* KOLIBRI_KMENU_H */