summaryrefslogtreecommitdiffstats
path: root/tmux.h
diff options
context:
space:
mode:
authornicm <nicm>2019-05-28 07:18:42 +0000
committernicm <nicm>2019-05-28 07:18:42 +0000
commit799a154b91c6e6ff7dbe62b67272f09578c99914 (patch)
tree1524162e444623f07f5492f9382c9edd07c19bba /tmux.h
parent90cd045cf354000cbf9c1f66e27366868a040588 (diff)
Change display-menu from taking a single string to a set of arguments,
which is much easier to work with. Based on a diff from Avi Halachmi.
Diffstat (limited to 'tmux.h')
-rw-r--r--tmux.h20
1 files changed, 13 insertions, 7 deletions
diff --git a/tmux.h b/tmux.h
index 19305875..8eb1e65a 100644
--- a/tmux.h
+++ b/tmux.h
@@ -752,12 +752,12 @@ struct screen_redraw_ctx {
/* Menu. */
struct menu_item {
- char *name;
- char *command;
+ const char *name;
key_code key;
+ const char *command;
};
struct menu {
- char *title;
+ const char *title;
struct menu_item *items;
u_int count;
u_int width;
@@ -2467,8 +2467,8 @@ void mode_tree_each_tagged(struct mode_tree_data *, mode_tree_each_cb,
void mode_tree_down(struct mode_tree_data *, int);
struct mode_tree_data *mode_tree_start(struct window_pane *, struct args *,
mode_tree_build_cb, mode_tree_draw_cb, mode_tree_search_cb,
- mode_tree_menu_cb, void *, const char *, const char **, u_int,
- struct screen **);
+ mode_tree_menu_cb, void *, const struct menu_item *, const char **,
+ u_int, struct screen **);
void mode_tree_zoom(struct mode_tree_data *, struct args *);
void mode_tree_build(struct mode_tree_data *);
void mode_tree_free(struct mode_tree_data *);
@@ -2600,8 +2600,14 @@ __dead void printflike(1, 2) fatal(const char *, ...);
__dead void printflike(1, 2) fatalx(const char *, ...);
/* menu.c */
-struct menu *menu_create(const char *, struct cmdq_item *, struct client *,
- struct cmd_find_state *, const char *);
+struct menu *menu_create(const char *);
+void menu_add_items(struct menu *, const struct menu_item *,
+ struct cmdq_item *, struct client *,
+ struct cmd_find_state *);
+void menu_add_item(struct menu *, const struct menu_item *,
+ struct cmdq_item *, struct client *,
+ struct cmd_find_state *);
+
void menu_free(struct menu *);
int menu_display(struct menu *, int, struct cmdq_item *, u_int,
u_int, struct client *, struct cmd_find_state *,