CTWM
Loading...
Searching...
No Matches
/usr/src/RPM/BUILD/ctwm-4.1.0/menus.h
Go to the documentation of this file.
1/*
2 * twm menus include file
3 *
4 *
5 * Copyright 1988 by Evans & Sutherland Computer Corporation,
6 * Salt Lake City, Utah
7 * Portions Copyright 1989 by the Massachusetts Institute of Technology
8 * Cambridge, Massachusetts
9 *
10 * $XConsortium: menus.h,v 1.24 89/12/10 17:46:26 jim Exp $
11 *
12 * 17-Nov-87 Thomas E. LaStrange File created
13 *
14 * Copyright 1992 Claude Lecommandeur.
15 */
16
17#ifndef _CTWM_MENUS_H
18#define _CTWM_MENUS_H
19
20#define TWM_ROOT "bLoB_GoOp" /* my private root menu */
21#define TWM_WINDOWS "TwmWindows" /* for f.menu "TwmWindows" */
22#define TWM_ICONS "TwmIcons" /* for f.menu "TwmIcons" */
23#define TWM_WORKSPACES "TwmWorkspaces" /* for f.menu "TwmWorkspaces" */
24#define TWM_ALLWINDOWS "TwmAllWindows" /* for f.menu "TwmAllWindows" */
25
26/* Added by dl 2004 */
27#define TWM_ALLICONS "TwmAllIcons" /* for f.menu "TwmAllIcons" */
28
29/*******************************************************************/
30/* Added by Dan Lilliehorn (dl@dl.nu) 2000-02-29 */
31#define TWM_KEYS "TwmKeys" /* for f.menu "TwmKeys" */
32#define TWM_VISIBLE "TwmVisible" /* for f.menu "TwmVisible" */
33
34
35/*
36 * MenuRoot.mapped - current/past state.
37 *
38 * XXX Perhaps the NEVER_MAPPED stuff should be pulled out and tracked
39 * some other way, and mapped just made into an bool.
40 */
46
47
48struct MenuItem {
49 struct MenuItem *next; /* next menu item */
50 struct MenuItem *prev; /* prev menu item */
51 struct MenuRoot *sub; /* MenuRoot of a pull right menu */
52 struct MenuRoot *root; /* back pointer to my MenuRoot */
53 char *item; /* the character string displayed */
54 char *action; /* action to be performed */
55 ColorPair normal; /* unhiglight colors */
56 ColorPair highlight; /* highlight colors */
57 short item_num; /* item number of this menu */
58 short x; /* x coordinate for text */
59 short func; /* twm built in function */
60 bool state; /* in reversed video state (i.e., active) */
61 short strlen; /* strlen(item) */
62 bool user_colors; /* colors were specified */
63 bool separated; /* separated from the next item */
64};
65
66struct MenuRoot {
67 struct MenuItem *first; /* first item in menu */
68 struct MenuItem *last; /* last item in menu */
69 struct MenuItem *lastactive; /* last active item in menu */
70 struct MenuItem *defaultitem; /* default item in menu */
71 struct MenuRoot *prev; /* previous root menu if pull right */
72 struct MenuRoot *next; /* next in list of root menus */
73 char *name; /* name of root */
74 Window w; /* the window of the menu */
75 Window shadow; /* the shadow window */
76 ColorPair highlight; /* highlight colors */
77 MRMapState mapped; /* whether ever/currently mapped */
78 short height; /* height of the menu */
79 short width; /* width of the menu */
80 short items; /* number of items in the menu */
81 bool pull; /* is there a pull right entry ? */
82 bool entered; /* EnterNotify following pop up */
83 bool real_menu; /* this is a real menu */
84 short x, y; /* position (for pinned menus) */
85 bool pinned; /* is this a pinned menu*/
86 struct MenuRoot *pmenu; /* the associated pinned menu */
87};
88
89
91 int func; /* the function number */
92 int mask; /* modifier mask */
93 MenuRoot *menu; /* menu if func is F_MENU */
94 MenuItem *item; /* action to perform if func != F_MENU */
95};
96
97struct FuncButton {
98 struct FuncButton *next; /* next in the list of function buttons */
99 int num; /* button number */
100 int cont; /* context */
101 int mods; /* modifiers */
102 int func; /* the function number */
103 MenuRoot *menu; /* menu if func is F_MENU */
104 MenuItem *item; /* action to perform if func != F_MENU */
105};
106
107struct FuncKey {
108 struct FuncKey *next; /* next in the list of function keys */
109 char *name; /* key name */
110 KeySym keysym; /* X keysym */
111 KeyCode keycode; /* X keycode */
112 int cont; /* context */
113 int mods; /* modifiers */
114 int func; /* function to perform */
115 char *win_name; /* window name (if any) */
116 char *action; /* action string (if any) */
117 MenuRoot *menu; /* menu if func is F_MENU */
118};
119
120extern MenuRoot *ActiveMenu;
121extern MenuItem *ActiveItem;
122
124extern char *CurrentSelectedWorkspace;
125extern bool AlternateContext;
126extern int AlternateKeymap;
127
128#define MAXMENUDEPTH 10 /* max number of nested menus */
129extern int MenuDepth;
130
131#define WARPSCREEN_NEXT "next"
132#define WARPSCREEN_PREV "prev"
133#define WARPSCREEN_BACK "back"
134
135#define COLORMAP_NEXT "next"
136#define COLORMAP_PREV "prev"
137#define COLORMAP_DEFAULT "default"
138
140MenuItem *AddToMenu(MenuRoot *menu, char *item, char *action,
141 MenuRoot *sub, int func, char *fore, char *back);
142bool PopUpMenu(MenuRoot *menu, int x, int y, bool center);
143void MakeWorkspacesMenu(void);
145bool AddFuncKey(char *name, int cont, int mods, int func,
146 MenuRoot *menu, char *win_name, char *action);
147void AddFuncButton(int num, int cont, int mods, int func,
148 MenuRoot *menu, MenuItem *item);
149void AddDefaultFuncButtons(void);
150void PopDownMenu(void);
151void HideMenu(MenuRoot *menu);
153void PaintMenu(MenuRoot *mr, XEvent *e);
154bool cur_fromMenu(void);
155void UpdateMenu(void);
156void MakeMenus(void);
157void MakeMenu(MenuRoot *mr);
158void MoveMenu(XEvent *eventp);
160
161// Mostly internal; exposed for testing
162char *mk_twmkeys_entry(const FuncKey *key);
163
164#endif /* _CTWM_MENUS_H */
static int PlaceX
Definition add_window.c:82
int y
Definition menus.c:70
int x
Definition menus.c:69
void MakeWorkspacesMenu(void)
Definition menus.c:442
MenuItem * AddToMenu(MenuRoot *menu, char *item, char *action, MenuRoot *sub, int func, char *fore, char *back)
Definition menus.c:732
void HideMenu(MenuRoot *menu)
Definition menus.c:1476
bool menuFromFrameOrWindowOrTitlebar
Definition menus.c:60
char * mk_twmkeys_entry(const FuncKey *key)
Generate up a string representation of a keybinding->action.
Definition menus.c:1657
void PaintMenu(MenuRoot *mr, XEvent *e)
Definition menus.c:419
MenuRoot * FindMenuRoot(char *name)
Definition menus.c:1503
void MakeMenus(void)
Definition menus.c:836
void AddFuncButton(int num, int cont, int mods, int func, MenuRoot *menu, MenuItem *item)
Definition menus.c:171
void AddDefaultFuncButtons(void)
Definition menus.c:223
void MoveMenu(XEvent *eventp)
Definition menus.c:1538
MenuItem * ActiveItem
Definition menus.c:59
char * CurrentSelectedWorkspace
Definition menus.c:61
MenuRoot * ActiveMenu
Definition menus.c:58
bool AddFuncKey(char *name, int cont, int mods, int func, MenuRoot *menu, char *win_name, char *action)
Definition menus.c:102
MenuRoot * NewMenuRoot(char *name)
Definition menus.c:637
void WarpCursorToDefaultEntry(MenuRoot *menu)
Definition menus.c:1626
bool PopUpMenu(MenuRoot *menu, int x, int y, bool center)
Definition menus.c:1130
void PaintEntry(MenuRoot *mr, MenuItem *mi, bool exposure)
Definition menus.c:242
void MakeMenu(MenuRoot *mr)
Definition menus.c:851
void PopDownMenu(void)
Definition menus.c:1442
bool AlternateContext
Definition menus.c:65
int MenuDepth
Definition menus.c:67
int AlternateKeymap
Definition menus.c:64
MRMapState
Definition menus.h:41
@ MRM_NEVER
Definition menus.h:42
@ MRM_UNMAPPED
Definition menus.h:43
@ MRM_MAPPED
Definition menus.h:44
bool cur_fromMenu(void)
Definition menus.c:482
void UpdateMenu(void)
Definition menus.c:487
int cont
Definition parse_yacc.c:28
int mods
Definition parse_yacc.c:29
MenuRoot * menu
Definition menus.h:103
struct FuncButton * next
Definition menus.h:98
int num
Definition menus.h:99
int cont
Definition menus.h:100
MenuItem * item
Definition menus.h:104
int func
Definition menus.h:102
int mods
Definition menus.h:101
int mods
Definition menus.h:113
char * name
Definition menus.h:109
char * win_name
Definition menus.h:115
char * action
Definition menus.h:116
int func
Definition menus.h:114
int cont
Definition menus.h:112
struct FuncKey * next
Definition menus.h:108
KeyCode keycode
Definition menus.h:111
KeySym keysym
Definition menus.h:110
MenuRoot * menu
Definition menus.h:117
ColorPair normal
Definition menus.h:55
bool user_colors
Definition menus.h:62
bool state
Definition menus.h:60
struct MenuItem * next
Definition menus.h:49
struct MenuRoot * root
Definition menus.h:52
bool separated
Definition menus.h:63
short func
Definition menus.h:59
short strlen
Definition menus.h:61
short item_num
Definition menus.h:57
struct MenuItem * prev
Definition menus.h:50
char * action
Definition menus.h:54
short x
Definition menus.h:58
char * item
Definition menus.h:53
ColorPair highlight
Definition menus.h:56
struct MenuRoot * sub
Definition menus.h:51
bool real_menu
Definition menus.h:83
short x
Definition menus.h:84
short height
Definition menus.h:78
struct MenuItem * last
Definition menus.h:68
struct MenuRoot * pmenu
Definition menus.h:86
Window shadow
Definition menus.h:75
short width
Definition menus.h:79
struct MenuItem * defaultitem
Definition menus.h:70
struct MenuRoot * prev
Definition menus.h:71
bool entered
Definition menus.h:82
struct MenuItem * first
Definition menus.h:67
short items
Definition menus.h:80
char * name
Definition menus.h:73
short y
Definition menus.h:84
struct MenuItem * lastactive
Definition menus.h:69
struct MenuRoot * next
Definition menus.h:72
MRMapState mapped
Definition menus.h:77
Window w
Definition menus.h:74
ColorPair highlight
Definition menus.h:76
bool pull
Definition menus.h:81
bool pinned
Definition menus.h:85
MenuRoot * menu
Definition menus.h:93
int func
Definition menus.h:91
int mask
Definition menus.h:92
MenuItem * item
Definition menus.h:94