summaryrefslogtreecommitdiff
path: root/lib/internal.h
blob: c79ffd19aa25d19b90e0130a4b8a7173e5375f6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
 * @file internal.h
 */

#include "bemenu.h"

/**
 * Internal bmItem struct that is not exposed to public.
 * Represents a single item in menu.
 */
struct _bmItem {
    char *text;
};

/**
 * Internal bmRenderApi struct.
 * Renderers should be able to fill this one as they see fit.
 */
struct _bmRenderApi {
    void (*render)(struct _bmItem **items, unsigned int nmemb);
    void (*free)(void);
};

/**
 * Internal bmMenu struct that is not exposed to public.
 */
struct _bmMenu {
    bmDrawMode drawMode;
    struct _bmRenderApi renderApi;
    struct _bmItem **items;
    unsigned int itemsCount;
};

/* vim: set ts=8 sw=4 tw=0 :*/