Clean up and simplify the choose mode code, from Thomas Adam.

This commit is contained in:
Nicholas Marriott
2012-06-25 14:08:55 +00:00
parent 39abca401a
commit 5b6f78186c
7 changed files with 249 additions and 316 deletions

26
tmux.h
View File

@ -846,6 +846,22 @@ struct window_mode {
void (*timer)(struct window_pane *);
};
/* Structures for choose mode. */
struct window_choose_data {
struct client *client;
struct session *session;
struct format_tree *ft;
char *ft_template;
char *raw_format;
char *action;
u_int idx;
};
struct window_choose_mode_item {
struct window_choose_data *wcd;
char *name;
};
/* Child window structure. */
struct window_pane {
u_int id;
@ -2121,10 +2137,14 @@ void window_copy_pageup(struct window_pane *);
extern const struct window_mode window_choose_mode;
void window_choose_vadd(
struct window_pane *, int, const char *, va_list);
void printflike3 window_choose_add(
struct window_pane *, int, const char *, ...);
void window_choose_add(struct window_pane *,
struct window_choose_data *);
void window_choose_ready(struct window_pane *,
u_int, void (*)(void *, int), void (*)(void *), void *);
u_int, void (*)(struct window_choose_data *),
void (*)(struct window_choose_data *));
struct window_choose_data *window_choose_data_create(
struct cmd_ctx *);
void window_choose_ctx(struct window_choose_data *);
/* names.c */
void queue_window_name(struct window *);