1 /*
2  * screen.h: header for screen.c
3  *
4  * written by matthew green.
5  *
6  * copyright (c) 1993, 1994.
7  *
8  * see the copyright file, or type help ircii copyright
9  *
10  * @(#)$Id: screen.h 477 2013-11-18 12:38:07Z keaston $
11  */
12 
13 #ifndef __screen_h_
14 #define __screen_h_
15 
16 #include "window.h"
17 
18 #define WAIT_PROMPT_LINE        0x01
19 #define WAIT_PROMPT_KEY         0x02
20 #define WAIT_PROMPT_DUMMY	0x04
21 
22 /* Stuff for the screen/xterm junk */
23 
24 #define ST_NOTHING      -1
25 #define ST_SCREEN       0
26 #define ST_XTERM        1
27 
28 /* This is here because it happens in so many places */
29 #define curr_scr_win	current_screen->current_window
30 
31 	void	clear_window (Window *);
32 	int	BX_output_line (const unsigned char *);
33 	Window	*BX_create_additional_screen (void);
34 	void	BX_scroll_window (Window *);
35 	void	update_all_windows (void);
36 	void	BX_add_wait_prompt (char *, void (*) (char *, char *), char *, int, int);
37 	void	BX_cursor_in_display (Window *);
38 	int	BX_is_cursor_in_display (Screen *);
39 	void	BX_cursor_not_in_display (Screen *);
40 	void	set_current_screen (Screen *);
41 	void	window_redirect (char *, int);
42 	void	redraw_resized (Window *, ShrinkInfo, int);
43 	void	close_all_screen (void);
44 RETSIGTYPE	sig_refresh_screen (int);
45 	int	check_screen_redirect (char *);
46 	void	BX_kill_screen (Screen *);
47 	int	rite (Window *, const unsigned char *);
48 	ShrinkInfo	resize_display (Window *);
49 	void	redraw_window (Window *, int);
50 	void	redraw_all_windows (void);
51 	void	BX_add_to_screen (char *);
52 	void	do_screens (fd_set *);
53 	unsigned	char	**BX_split_up_line(const unsigned char *, int);
54 	void	BX_xterm_settitle(void);
55 	void	BX_add_to_window(Window *, const unsigned char *);
56 
57 Screen  * BX_create_new_screen(void);
58 
59 #ifdef GUI
60 	void	refresh_window_screen(Window *);
61 #endif
62 
63 	u_char *BX_strip_ansi		(const u_char *);
64 	char   *normalize_color		(int, int, int, int);
65 const	u_char *BX_skip_ctl_c_seq		(const u_char *, int *, int *, int);
66 	u_char **BX_prepare_display	(const u_char *, int, int *, int);
67 	int	BX_output_with_count	(const unsigned char *, int, int);
68 char	*BX_skip_incoming_mirc	(char *);
69 
70 /* Dont do any word-wrapping, just truncate each line at its place. */
71 #define PREPARE_NOWRAP	0x01
72 
73 extern	Screen	*main_screen;
74 extern	Screen	*last_input_screen;
75 extern	Screen	*screen_list;
76 extern	Screen	*output_screen;
77 extern  Window	*debugging_window;
78 
79 extern	int	strip_ansi_never_xlate;
80 
81 #endif /* __screen_h_ */
82