// ******************* START OF ANSITERM.H ******************
//
// This is the public definition for the AnsiTerminal class.  
// It has just three public functions, as well as a constructor 
// and a destructor.
//

#ifndef _ANSITERM_DOT_H
#define _ANSITERM_DOT_H

#include "terminal.h"

class AnsiTerminal : public Terminal {
private :
    void parse( void );
    int parse_ansi_string( void );
    void position_cursor( void );
    void cursor_move( int row_dir, int col_dir );
    void cursor_position_report( void );
    void erase_in_display( void );
    void erase_in_line( void );
    void save_position( void );
    void restore_position( void );
    void set_color( void );
    void set_mode( void );
    char *ansi_parms[ 16 ];
    int parm_count;
    int saved_row;
    int saved_col;
    char **keys;
    char **extended_keys;
public :
    AnsiTerminal( RS232 &p, BaseWindow &w );
    virtual ~AnsiTerminal( void );
    virtual int ReadPort( void );
    virtual void Display( int c ){ *window << (char) c; }
    virtual void WriteKey( int c );
};

#endif  // #ifdef _ANSITERM_DOT_H

// ******************** END OF ANSITERM.H *********************
