File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / trafshow / selector.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 16:55:18 2012 UTC (12 years, 2 months ago) by misho
Branches: trafshow, MAIN
CVS tags: v5_2_3p0, v5_2_3, HEAD
trafshow

/*
 *	Copyright (c) 1999,2004 Rinet Corp., Novosibirsk, Russia
 *
 * Redistribution and use in source forms, with and without modification,
 * are permitted provided that this entire comment appears intact.
 *
 * THIS SOURCE CODE IS PROVIDED ``AS IS'' WITHOUT ANY WARRANTIES OF ANY KIND.
 */

#ifndef	_SELECTOR_H_
#define	_SELECTOR_H_

typedef	struct selector {
	int window_color;
	int cursor_color;

	int LINE;		/* first line on screen		*/
	int COL;		/* first column on screen	*/
	int LINES;		/* number of lines on screen	*/
	int COLS;		/* number of columns on screen	*/
	int items;		/* size of items array 		*/

	int (*get_header)(char *dst, int size, const void *header);
	void *header;		/* header args pointer		*/

	int (*get_line)(char *dst, int size, const void *list, int idx);
	void *list;		/* list args pointer		*/

	int (*get_footer)(char *dst, int size, const void *footer);
	void *footer;		/* footer args pointer		*/

	int index;		/* array current index		*/
	int fline;		/* first displayed line		*/
	int cline;		/* current screen line		*/
} SELECTOR;

SELECTOR *selector_init();
void selector_redraw(SELECTOR *sp);
void selector_withdraw(SELECTOR *sp);
int selector_get(SELECTOR *sp);
void selector_set(int new_index, SELECTOR *sp);
int selector_move(int ch, SELECTOR *sp);

#endif	/* !_SELECTOR_H_ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>