1/* echo-area.h -- Functions used in reading information from the echo area.
2   $Id: echo-area.h,v 1.4 2004/08/07 22:03:08 karl Exp $
3
4   This file is part of GNU Info, a program for reading online documentation
5   stored in Info format.
6
7   Copyright (C) 1993, 1997, 2004 Free Software Foundation, Inc.
8
9   This program is free software; you can redistribute it and/or modify
10   it under the terms of the GNU General Public License as published by
11   the Free Software Foundation; either version 2, or (at your option)
12   any later version.
13
14   This program is distributed in the hope that it will be useful,
15   but WITHOUT ANY WARRANTY; without even the implied warranty of
16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   GNU General Public License for more details.
18
19   You should have received a copy of the GNU General Public License
20   along with this program; if not, write to the Free Software
21   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
23   Written by Brian Fox (bfox@ai.mit.edu). */
24
25#ifndef INFO_ECHO_AREA_H
26#define INFO_ECHO_AREA_H
27
28#define EA_MAX_INPUT 256
29
30extern int echo_area_is_active, info_aborted_echo_area;
31
32/* Non-zero means that the last command executed while reading input
33   killed some text. */
34extern int echo_area_last_command_was_kill;
35
36extern void inform_in_echo_area (const char *message);
37extern void echo_area_inform_of_deleted_window (WINDOW *window);
38extern void echo_area_prep_read (void);
39extern VFunction *ea_last_executed_command;
40extern char * info_read_completing_internal (WINDOW *window, char *prompt,
41    REFERENCE **completions, int force);
42
43/* Read a line of text in the echo area.  Return a malloc ()'ed string,
44   or NULL if the user aborted out of this read.  WINDOW is the currently
45   active window, so that we can restore it when we need to.  PROMPT, if
46   non-null, is a prompt to print before reading the line. */
47extern char *info_read_in_echo_area (WINDOW *window, char *prompt);
48
49/* Read a line in the echo area with completion over COMPLETIONS.
50   Takes arguments of WINDOW, PROMPT, and COMPLETIONS, a REFERENCE **. */
51char *info_read_completing_in_echo_area (WINDOW *window,
52    char *prompt, REFERENCE **completions);
53
54/* Read a line in the echo area allowing completion over COMPLETIONS, but
55   not requiring it.  Takes arguments of WINDOW, PROMPT, and COMPLETIONS,
56   a REFERENCE **. */
57extern char *info_read_maybe_completing (WINDOW *window,
58    char *prompt, REFERENCE **completions);
59
60extern void ea_insert (WINDOW *window, int count, unsigned char key);
61extern void ea_quoted_insert (WINDOW *window, int count, unsigned char key);
62extern void ea_beg_of_line (WINDOW *window, int count, unsigned char key);
63extern void ea_backward (WINDOW *window, int count, unsigned char key);
64extern void ea_delete (WINDOW *window, int count, unsigned char key);
65extern void ea_end_of_line (WINDOW *window, int count, unsigned char key);
66extern void ea_forward (WINDOW *window, int count, unsigned char key);
67extern void ea_abort (WINDOW *window, int count, unsigned char key);
68extern void ea_rubout (WINDOW *window, int count, unsigned char key);
69extern void ea_complete (WINDOW *window, int count, unsigned char key);
70extern void ea_newline (WINDOW *window, int count, unsigned char key);
71extern void ea_kill_line (WINDOW *window, int count, unsigned char key);
72extern void ea_backward_kill_line (WINDOW *window, int count, unsigned char key);
73extern void ea_transpose_chars (WINDOW *window, int count, unsigned char key);
74extern void ea_yank (WINDOW *window, int count, unsigned char key);
75extern void ea_tab_insert (WINDOW *window, int count, unsigned char key);
76extern void ea_possible_completions (WINDOW *window, int count, unsigned char key);
77extern void ea_backward_word (WINDOW *window, int count, unsigned char key);
78extern void ea_kill_word (WINDOW *window, int count, unsigned char key);
79extern void ea_forward_word (WINDOW *window, int count, unsigned char key);
80extern void ea_yank_pop (WINDOW *window, int count, unsigned char key);
81extern void ea_backward_kill_word (WINDOW *window, int count, unsigned char key);
82extern void ea_scroll_completions_window (WINDOW *window, int count,
83    unsigned char key);
84
85#endif /* not INFO_ECHO_AREA_H */
86