ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/menubar.h
Revision: 1.2
Committed: Mon Nov 24 17:31:27 2003 UTC (20 years, 6 months ago) by pcg
Content type: text/plain
Branch: MAIN
CVS Tags: rel-1-3, rel-1-2
Changes since 1.1: +0 -0 lines
Log Message:
*** empty log message ***

File Contents

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