File: menu.h

package info (click to toggle)
xpaint 2.5.1-2
  • links: PTS
  • area: main
  • in suites: hamm
  • size: 1,488 kB
  • ctags: 2,478
  • sloc: ansic: 25,980; makefile: 36; sh: 23
file content (48 lines) | stat: -rw-r--r-- 1,357 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
/* $Id: menu.h,v 1.2 1996/04/19 08:52:16 torsten 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, int, PaintMenuItem[]);
extern void MenuCheckItem(Widget, Boolean);

#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_SEPERATOR()					MI_SIMPLE("")