* detect and disallow circular transient-for hints
[fvwm.git] / fvwm / menus.h
blob28e9db32f423d9314f5246018d22dd8b6cb47fa4
1 /* -*-c-*- */
3 #ifndef _MENUS_
4 #define _MENUS_
6 #define MENU_IS_LEFT 0x01
7 #define MENU_IS_RIGHT 0x02
8 #define MENU_IS_UP 0x04
9 #define MENU_IS_DOWN 0x08
12 * MISCELLANEOUS MENU STUFF
15 #define IS_MENU_RETURN(x) \
16 ((x)==MENU_DONE || (x)==MENU_ABORTED || (x)==MENU_SUBMENU_TORN_OFF)
18 struct MenuRoot;
19 struct MenuStyle;
20 struct MenuReturn;
21 struct MenuParameters;
22 struct MenuOptions;
23 struct MenuItem;
24 struct MenuRepaintTransparentParameters;
27 * EXPORTED FUNCTIONS
30 void menus_init(void);
31 struct MenuRoot *menus_find_menu(char *name);
32 void menus_remove_style_from_menus(struct MenuStyle *ms);
33 struct MenuRoot *FollowMenuContinuations(
34 struct MenuRoot *mr, struct MenuRoot **pmrPrior);
35 struct MenuRoot *NewMenuRoot(char *name);
36 void AddToMenu(struct MenuRoot *, char *, char *, Bool, Bool, Bool);
37 void menu_enter_tear_off_menu(const exec_context_t *exc);
38 void menu_close_tear_off_menu(FvwmWindow *fw);
39 Bool menu_redraw_transparent_tear_off_menu(FvwmWindow *fw, Bool pr_only);
40 void do_menu(struct MenuParameters *pmp, struct MenuReturn *pret);
41 char *get_menu_options(
42 char *action, Window w, FvwmWindow *fw, XEvent *e, struct MenuRoot *mr,
43 struct MenuItem *mi, struct MenuOptions *pops);
44 Bool DestroyMenu(
45 struct MenuRoot *mr, Bool do_recreate, Bool is_command_request);
46 void add_another_menu_item(char *action);
47 void change_mr_menu_style(struct MenuRoot *mr, char *stylename);
48 void UpdateAllMenuStyles(void);
49 void UpdateMenuColorset(int cset);
50 void SetMenuCursor(Cursor cursor);
51 void update_transparent_menu_bg(
52 struct MenuRepaintTransparentParameters *prtm,
53 int current_x, int current_y, int step_x, int step_y,
54 int end_x, int end_y);
55 void repaint_transparent_menu(
56 struct MenuRepaintTransparentParameters *prtmp,
57 Bool first, int x, int y, int end_x, int end_y, Bool is_bg_set);
58 Bool menu_expose(XEvent *event, FvwmWindow *fw);
59 int menu_binding(Display *dpy, binding_t type, int button, KeySym keysym,
60 int context, int modifier, char *action, char *menuStyle);
61 #endif /* _MENUS_ */