/*
 * Seven Kingdoms: Ancient Adversaries
 *
 * Copyright 1997,1998 Enlight Software Ltd.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */

// Filename    : OGETA.H
// Description : get field, non-blocking


#ifndef __OGETA_H
#define __OGETA_H

class Font;

// ---------- Define class GetA ---------- //

class GetA
{
public:
	short x;
	short y;
	short x_limit;
	char*	input_field;
	unsigned	field_len;
	unsigned	cursor_pos;
	unsigned mark_cursor_pos;
	Font*	font_ptr;
	char	align_flag;
	char	enable_flag;
	char	esc_key_flag;		// detect esc key to clear the field
	char* back_ground_bitmap;

	char	mouse_drag_flag;

public:
	GetA();
	void	init( int x1, int y1, int x2, char *field, unsigned length, Font *, char align, char detectEsc);
	int	height();
	void	clear();
	unsigned	detect_key();
	int	detect_click();
	unsigned	detect();
	void	paint(int paintCursor=1);
	int	cursor_x(int curPos);
	void	clear_select()				{ mark_cursor_pos = cursor_pos; }
	unsigned mark_begin();
	unsigned mark_end();
	int	is_select()					{ return mark_cursor_pos != cursor_pos; }
	void	select_whole();
};

// ---------- define class GetAGroup ---------- //

class GetAGroup
{
public:
   int		geta_num;
   GetA*		geta_array;
	int		focused_geta;
	char		enable_flag;

public:
	GetAGroup(int);
	~GetAGroup();

   void	paint();
   int	detect();
	int	set_focus(int, int paintFlag=1);

   GetA& operator[](int);
	int	operator()();
};


#endif


