File: menu.h

package info (click to toggle)
xpaint 2.7.8.1-1.2
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 3,016 kB
  • ctags: 6,278
  • sloc: ansic: 37,708; makefile: 4,770; sh: 119
file content (49 lines) | stat: -rw-r--r-- 1,405 bytes parent folder | download | duplicates (3)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/* $Id: menu.h,v 1.17 2005/03/20 20:15:32 demailly Exp $ */

typedef void (*PaintMenuCallback) (Widget, Widget);

typedef struct PaintMenuItem_s {
    Widget widget;
    char *name;
    PaintMenuCallback callback;
    void *data;
    int flags;
    int nright;
    struct PaintMenuItem_s *right;
    Widget rightShell;
} PaintMenuItem;

#define MF_NONE         0x00
#define MF_CHECK        0x01
#define MF_CHECKON      (0x01|0x02)

#define MF_GROUP1	0x10
#define MF_GROUP2	0x20
#define MF_GROUP3	0x40
#define MF_GROUP4	0x80

typedef struct {
    Widget widget;
    char *name;
    int nitems;
    PaintMenuItem *items;
} PaintMenuBar;

extern Widget MenuBarCreate(Widget, int, PaintMenuBar[]);
extern Widget MenuPopupCreate(Widget, char *, int, PaintMenuItem[]);
extern void MenuCheckItem(Widget, Boolean);
extern Boolean IsItemChecked(Widget);

#define MI_NEW(name, flag, cb, cbdata, nright, right) \
  { None, name, (PaintMenuCallback)cb, (void*)cbdata, flag, nright, right, None }
#define MI_RIGHT(name, nright, right) \
  MI_NEW(name, MF_NONE, NULL, NULL, nright, right)
#define MI_FLAGCB(name, flag, cb, cbdata) \
  MI_NEW(name, flag, cb, cbdata, 0, NULL)
#define MI_FLAG(name, flag) \
  MI_FLAGCB(name, flag, NULL, NULL)
#define	MI_SIMPLECB(name, cb, cbdata) \
  MI_FLAGCB(name, MF_NONE, cb, cbdata)
#define	MI_SIMPLE(name) \
  MI_SIMPLECB(name, NULL, NULL)
#define	MI_SEPARATOR()					MI_SIMPLE("")