#define LISTBOX_OPH

#ifndef WIN_OPH
#include <sdk\win>
#endif

#ifndef BWIN_OPH
#include <sdk\bwin>
#endif

#ifndef MATCHER_OPH
#include <sdk\matcher>
#endif

/* Constants for listbox */

#define IN_LISTBOX_MATCHER 0x0001
#define IN_LISTBOX_KEEP_ARRAY 0x0002
#define IN_LISTBOX_TEXT_OFFSET 0x0004
#define IN_LISTBOX_CUR_SET 0x0008
#define IN_LISTBOX_FIRST_SET 0x0010
#define IN_LISTBOX_LAST_SET 0x0020
#define IN_LISTBOX_POS_ALIGN_X 0x0040
#define IN_LISTBOX_POS_ALIGN_Y 0x0080
#define IN_LISTBOX_MIN_WIDTH 0x0100
#define IN_LISTBOX_AUTO_SIZE 0x0200
#define IN_LISTBOX_FORCE_WIDE 0x0400
#define IN_LISTBOX_WRAP_ROUND 0x0800
#define IN_LISTBOX_FIXED_WIDTH 0x8000
#define PR_LISTBOX_KEEP_ARRAY IN_LISTBOX_KEEP_ARRAY
#define PR_LISTBOX_FORCE_WIDE IN_LISTBOX_FORCE_WIDE
#define PR_LISTBOX_WRAP_ROUND IN_LISTBOX_WRAP_ROUND
#define PR_LISTBOX_UNSTABLE 0x1000
#define PR_LISTBOX_BOLD_CURSOR 0x2000
#define PR_LISTBOX_PLAQUE 0x4000
#define PR_LISTBOX_FIXED_WIDTH IN_LISTBOX_FIXED_WIDTH
#define PR_LISTBOX_SMALL_FONT PR_WIN_FORCE_RIGHT
#define LISTBOX_TOP_EDGE (BWIN_CUSHION_Y+2)
#define LISTBOX_BOTTOM_EDGE (LISTBOX_TOP_EDGE+BWIN_SHADOW_1_HEIGHT)
#define LISTBOX_LEFT_EDGE (BWIN_CUSHION_X+2)
#define LISTBOX_RIGHT_EDGE (LISTBOX_LEFT_EDGE+BWIN_SHADOW_1_WIDTH)
#define XLISTBOX_TOP_EDGE (LISTBOX_TOP_EDGE+6)
#define XLISTBOX_BOTTOM_EDGE (LISTBOX_BOTTOM_EDGE+5)
#define XLISTBOX_LEFT_EDGE (LISTBOX_LEFT_EDGE+6)
#define XLISTBOX_RIGHT_EDGE (LISTBOX_RIGHT_EDGE+5)
#define LISTBOX_OBLOID_INDENT 2
#define LISTBOX_TITLELINE_HEIGHT 3
#define LISTBOX_SCROLL_GUTTER 7
#define LISTBOX_SCROLL_OFFSET 1

/* Types for listbox */

STRUCT IN_LISTBOX
	flags%
	array%
	offset%
	current%
	top%
	first%
	last%
	pos#(SIZEOF(P_POINT))
	minwid%
ENDS

/* Property of listbox */

STRUCT PRS_LISTBOX
	match%
	va%
	flags%
	width%
	matchlen%
	curoff%
	offset%
	current%
	top%
	first%
	last%
	vastart%
	matchstart%
ENDS

STRUCT PR_LISTBOX
	root#(SIZEOF(PRS_ROOT))
	win#(SIZEOF(PRS_WIN))
	listbox#(SIZEOF(PRS_LISTBOX))
ENDS
