#include "list.h"

extern int get_menu_choice(int menu_count, char *menu_items[]);
extern void scroll_with_recall(int lines);

extern win_ptr next_window(win_ptr win);
extern head_ptr get_window_lastlog(win_ptr win);
extern server_ptr get_window_server(win_ptr win);
extern void set_window_server(win_ptr win, server_ptr srv);

extern win_mode win_getmode(win_ptr win);
extern void win_setmode(win_ptr win, win_mode ml);
extern void win_serverset(server_ptr s);
extern win_ptr type_winget(server_ptr src, int type);
extern void reset_outwin(void);
extern void delete_windows(void);
extern void putcursor(int x);
extern void window_reorder(void);
extern void window_do_scroll(win_ptr win, int lines);
extern void update_off(void);
extern void update_on(void);
extern win_ptr window_exists(int num);
extern void window_rawshow(win_ptr win, int x, int y);
extern int hidden(win_ptr win);
extern void window_setsize(win_ptr win, int x, int y);
extern int window_swap(win_ptr win);
extern win_ptr window_num(int winnum);
extern void window_resize(win_ptr win, int change, int shrink, int top);
extern win_ptr prev_visible(win_ptr win);
extern win_ptr next_visible(win_ptr win);
extern win_ptr previous_window(win_ptr win, int prev);
extern int window_hide(win_ptr win);
extern win_ptr last_invisible(void);
extern int window_delete(win_ptr win);
extern void sl_nick(win_ptr win, char *str);
extern void updatestatwin(void);
extern void set_channel(int indx);
extern void join_channel(server_ptr srv, char *chan, win_ptr tojoin);
extern win_ptr leave_channel(server_ptr srv, char *chan);
extern char *get_channel(char *chan);
extern win_ptr isquery(server_ptr srv, char *str);
extern int clearquery(char *query);
extern void setquery(char *query);
extern char *getquery(void);
extern void split_window(void);
extern void clear_window(void);
extern void trap(int on);
extern void user_spawn(char *rest, int varpar, char *subparams);
extern void init_window(void);
extern int set_echo(int on);
extern int print_at(char *str, int len, int pl);
extern void del_char_from_input(int x, int num);
extern void rep_char_in_input(int key, int x);
extern void redraw(void);
extern void insert_char(int key, int x);
extern void kill_hold(void);
extern void free_hold(void);
extern void write_raw_to_screen(int row, int col, int clear_to_eol, char *str);
#include <stdarg.h>
extern void yell(char *format, ...);
extern void win_say(win_ptr win, char *format, ...);
extern void say(char *format, ...);
extern win_ptr set_outwin(win_ptr win);
extern int set_loglevel(int new);

extern void unset_win_lvl_srv(void);
extern void set_win_lvl_srv(server_ptr srv, int log_level);
extern win_ptr get_curr_win(void);
extern void sl_window2(win_ptr win, char *str);

#define NW 0
