summaryrefslogtreecommitdiffstats
path: root/tmux.h
diff options
context:
space:
mode:
authornicm <nicm>2019-05-10 18:04:06 +0000
committernicm <nicm>2019-05-10 18:04:06 +0000
commit6dcca5fda4b21cb1903204d6945bd7b418858afd (patch)
treee16ce1b9e2b36df1cdd8eca9cbaa447d68a5d030 /tmux.h
parent004a9b52f0389700194d2789674a1fda90409438 (diff)
Add support for simple menus usable with mouse or keyboard. New command
display-menu shows a menu (bound to the mouse on status line by default) and a couple of extra formats for the default menus.
Diffstat (limited to 'tmux.h')
-rw-r--r--tmux.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/tmux.h b/tmux.h
index 7bff1a1a..757e7673 100644
--- a/tmux.h
+++ b/tmux.h
@@ -748,20 +748,20 @@ struct screen_redraw_ctx {
#define screen_hsize(s) ((s)->grid->hsize)
#define screen_hlimit(s) ((s)->grid->hlimit)
-/* Menu item. */
+/* Menu. */
struct menu_item {
- char *name;
- char *command;
- key_code key;
+ char *name;
+ char *command;
+ key_code key;
};
-
-/* Menu. */
struct menu {
char *title;
struct menu_item *items;
u_int count;
u_int width;
};
+typedef void (*menu_choice_cb)(struct menu *, u_int, key_code, void *);
+#define MENU_NOMOUSE 0x1
/*
* Window mode. Windows can be in several modes and this is used to call the
@@ -2550,6 +2550,16 @@ void printflike(1, 2) log_debug(const char *, ...);
__dead void printflike(1, 2) fatal(const char *, ...);
__dead void printflike(1, 2) fatalx(const char *, ...);
+/* menu.c */
+struct menu *menu_create_from_items(struct menu_item *, u_int,
+ struct client *, struct cmd_find_state *, const char *);
+struct menu *menu_create_from_string(const char *, struct client *,
+ struct cmd_find_state *, const char *);
+void menu_free(struct menu *);
+int menu_display(struct menu *, int, struct cmdq_item *, u_int,
+ u_int, struct client *, struct cmd_find_state *,
+ menu_choice_cb, void *);
+
/* style.c */
int style_parse(struct style *,const struct grid_cell *,
const char *);