ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/menubar.h
Revision: 1.5
Committed: Sun Jan 2 10:55:43 2005 UTC (19 years, 4 months ago) by root
Content type: text/plain
Branch: MAIN
CVS Tags: rel-6_2, rel-6_0, rel-6_1, rel-5_5, rel-5_4, rel-5_7, rel-5_1, rel-5_0, rel-5_3, rel-5_2, rel-5_9, rel-5_8, rel-4_8, rel-4_9
Changes since 1.4: +3 -3 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 pcg 1.3 #ifndef MENUBAR_H_
2     #define MENUBAR_H_
3 pcg 1.1
4     typedef struct {
5     short type; /* must not be changed; first element */
6     short len; /* strlen (str) */
7     unsigned char *str; /* action to take */
8     } action_t;
9    
10     typedef struct {
11     short type; /* must not be changed; first element */
12     struct menu_t *menu; /* sub-menu */
13     } submenu_t;
14    
15     typedef struct menuitem_t {
16     struct menuitem_t *prev; /* prev menu-item */
17     struct menuitem_t *next; /* next menu-item */
18     char *name; /* character string displayed */
19     char *name2; /* character string displayed (right) */
20     short len; /* strlen (name) */
21     short len2; /* strlen (name) */
22     union {
23 root 1.5 short type; /* must not be changed; first element */
24     action_t action;
25     submenu_t submenu;
26 pcg 1.1 } entry;
27     } menuitem_t;
28    
29     enum menuitem_t_action {
30     MenuLabel,
31     MenuAction,
32     MenuTerminalAction,
33     MenuSubMenu
34     };
35    
36     typedef struct menu_t {
37     struct menu_t *parent; /* parent menu */
38     struct menu_t *prev; /* prev menu */
39     struct menu_t *next; /* next menu */
40     menuitem_t *head; /* double-linked list */
41     menuitem_t *tail; /* double-linked list */
42     menuitem_t *item; /* current item */
43     char *name; /* menu name */
44     short len; /* strlen (name) */
45     short width; /* maximum menu width [chars] */
46     Window win; /* window of the menu */
47 pcg 1.4 struct rxvt_drawable *drawable;
48 pcg 1.1 short x; /* x location [pixels] (chars if parent == NULL) */
49     short y; /* y location [pixels] */
50     short w, h; /* window width, height [pixels] */
51     } menu_t;
52    
53     typedef struct bar_t {
54     menu_t *head, *tail; /* double-linked list of menus */
55     char *title; /* title to put in the empty menuBar */
56     #if (MENUBAR_MAX > 1)
57     # define MAXNAME 16
58     char name[MAXNAME]; /* name to use to refer to menubar */
59     struct bar_t *next, *prev; /* circular linked-list */
60     #endif /* (MENUBAR_MAX > 1) */
61     #define NARROWS 4
62     action_t arrows[NARROWS];
63     } bar_t;
64    
65     /* #define DEBUG_MENU */
66     /* #define DEBUG_MENU_LAYOUT */
67     /* #define DEBUG_MENUBAR_STACKING */
68    
69     #define HSPACE 1 /* one space */
70     #define isSeparator(name) ((name)[0] == '\0')
71     #define HEIGHT_SEPARATOR (SHADOW + 1)
72     #define HEIGHT_TEXT (Height2Pixel(1) + 2)
73    
74 pcg 1.4 #define MENU_DELAY_USEC 0 /* no delay */
75 pcg 1.1
76     #define SEPARATOR_NAME "-"
77     #define MENUITEM_BEG '{'
78     #define MENUITEM_END '}'
79     #define COMMENT_CHAR '#'
80    
81     #define DOT "."
82     #define DOTS ".."
83    
84     #endif /* _MENUBAR_H_ */