proc button
	filen	button.icn
	local	0,001000,win
	local	1,001000,label
	local	2,001000,proc
	local	3,001000,arg
	local	4,001000,x
	local	5,001000,y
	local	6,001000,w
	local	7,001000,h
	local	8,000020,r
	local	9,000000,Button_Rec
	local	10,000000,buttonlabel
	local	11,000000,BevelRectangle
	local	12,000000,sensor
	local	13,000000,Exec_Button
	con	0,002000,1,2
	declend
	line	105
	colm	11
	mark	L1
	pnull
	var	8
	var	9
	var	0
	var	1
	var	2
	var	3
	var	4
	var	5
	var	6
	var	7
	line	108
	colm	19
	invoke	8
	line	108
	colm	6
	asgn
	unmark
lab L1
	mark	L2
	var	10
	var	8
	var	1
	line	109
	colm	15
	invoke	2
	unmark
lab L2
	mark	L3
	mark0
	pnull
	var	2
	line	110
	colm	7
	nonnull
	unmark
	mark	L4
	var	11
	var	0
	var	4
	var	5
	var	6
	var	7
	int	0
	line	111
	colm	21
	invoke	6
	unmark
lab L4
	var	12
	var	0
	line	112
	colm	19
	keywd	lpress
	var	13
	var	8
	var	4
	var	5
	var	6
	var	7
	line	112
	colm	13
	invoke	8
	unmark
lab L3
	mark	L5
	mark	L6
	var	8
	line	114
	colm	4
	pret
lab L6
	pfail
	unmark
lab L5
	pnull
	line	115
	colm	1
	pfail
	end
proc buttonrow
	local	0,001000,win
	local	1,001000,x
	local	2,001000,y
	local	3,001000,w
	local	4,001000,h
	local	5,001000,dx
	local	6,001000,dy
	local	7,001000,args
	local	8,000020,hlist
	local	9,000020,label
	local	10,000020,proc
	local	11,000020,arg
	local	12,000000,get
	local	13,000000,put
	local	14,000000,button
	con	0,002000,1,0
	con	1,002000,1,2
	declend
	line	117
	colm	11
	mark	L1
	mark0
	pnull
	var	5
	int	0
	line	120
	colm	10
	numlt
	unmark
	pnull
	var	1
	dup
	var	3
	line	120
	colm	21
	minus
	asgn
	unmark
lab L1
	mark	L2
	mark0
	pnull
	var	6
	int	0
	line	121
	colm	10
	numlt
	unmark
	pnull
	var	2
	dup
	var	4
	line	121
	colm	21
	minus
	asgn
	unmark
lab L2
	mark	L3
	pnull
	var	8
	pnull
	line	122
	colm	13
	llist	0
	line	122
	colm	10
	asgn
	unmark
lab L3
	mark	L4
lab L5
	mark	L5
	mark	L8
	pnull
	var	9
	mark	L9
	var	12
	var	7
	line	124
	colm	19
	invoke	1
	esusp
	goto	L10
lab L9
	unmark
	unmark
	pnull
	goto	L7
lab L10
	line	124
	colm	13
	asgn
	unmark
lab L8
	mark	L11
	pnull
	var	10
	mark	L12
	var	12
	var	7
	line	125
	colm	18
	invoke	1
	esusp
	goto	L13
lab L12
	unmark
	unmark
	pnull
	goto	L7
lab L13
	line	125
	colm	12
	asgn
	unmark
lab L11
	mark	L14
	pnull
	var	11
	mark	L15
	var	12
	var	7
	line	126
	colm	17
	invoke	1
	esusp
	goto	L16
lab L15
	unmark
	unmark
	pnull
	goto	L7
lab L16
	line	126
	colm	11
	asgn
	unmark
lab L14
	mark	L17
	pnull
	pnull
	pnull
	var	9
	var	10
	line	127
	colm	16
	eqv
	var	11
	line	127
	colm	25
	eqv
	line	127
	colm	37
	keywd	null
	line	127
	colm	33
	eqv
	unmark
	mark	L19
	pnull
	var	1
	dup
	pnull
	var	5
	int	1
	line	128
	colm	19
	div
	line	128
	colm	12
	plus
	asgn
	unmark
lab L19
	pnull
	var	2
	dup
	pnull
	var	6
	int	1
	line	129
	colm	19
	div
	line	129
	colm	12
	plus
	asgn
	goto	L18
lab L17
	mark	L20
	var	13
	var	8
	var	14
	var	0
	var	9
	var	10
	var	11
	var	1
	var	2
	var	3
	var	4
	line	132
	colm	27
	invoke	8
	line	132
	colm	13
	invoke	2
	unmark
lab L20
	mark	L21
	pnull
	var	1
	dup
	var	5
	line	133
	colm	12
	plus
	asgn
	unmark
lab L21
	pnull
	var	2
	dup
	var	6
	line	134
	colm	12
	plus
	asgn
lab L18
lab L6
	unmark
	goto	L5
lab L7
	unmark
lab L4
	mark	L22
	mark	L23
	var	8
	line	137
	colm	4
	pret
lab L23
	pfail
	unmark
lab L22
	pnull
	line	138
	colm	1
	pfail
	end
proc buttonlabel
	local	0,001000,r
	local	1,001000,s
	local	2,000000,EraseArea
	local	3,000000,CenterString
	con	0,002000,1,2
	declend
	line	140
	colm	11
	mark	L1
	pnull
	pnull
	var	0
	line	141
	colm	5
	field	label
	var	1
	line	141
	colm	12
	asgn
	unmark
lab L1
	mark	L2
	mark	L3
	pnull
	pnull
	var	0
	line	142
	colm	9
	field	proc
	line	142
	colm	7
	null
	unmark
	var	2
	pnull
	var	0
	line	143
	colm	18
	field	win
	pnull
	var	0
	line	143
	colm	25
	field	x
	pnull
	var	0
	line	143
	colm	30
	field	y
	pnull
	var	0
	line	143
	colm	35
	field	w
	pnull
	var	0
	line	143
	colm	40
	field	h
	line	143
	colm	16
	invoke	5
	goto	L4
lab L3
	var	2
	pnull
	var	0
	line	145
	colm	18
	field	win
	pnull
	pnull
	var	0
	line	145
	colm	25
	field	x
	int	0
	line	145
	colm	27
	plus
	pnull
	pnull
	var	0
	line	145
	colm	32
	field	y
	int	0
	line	145
	colm	34
	plus
	pnull
	pnull
	var	0
	line	145
	colm	39
	field	w
	pnull
	int	0
	int	0
	line	145
	colm	43
	mult
	line	145
	colm	41
	minus
	pnull
	pnull
	var	0
	line	145
	colm	48
	field	h
	pnull
	int	0
	int	0
	line	145
	colm	52
	mult
	line	145
	colm	50
	minus
	line	145
	colm	16
	invoke	5
lab L4
	unmark
lab L2
	mark	L5
	var	3
	pnull
	var	0
	line	146
	colm	18
	field	win
	pnull
	pnull
	var	0
	line	146
	colm	25
	field	x
	pnull
	pnull
	var	0
	line	146
	colm	31
	field	w
	int	0
	line	146
	colm	33
	div
	line	146
	colm	28
	plus
	pnull
	pnull
	var	0
	line	146
	colm	38
	field	y
	pnull
	pnull
	var	0
	line	146
	colm	44
	field	h
	int	0
	line	146
	colm	46
	div
	line	146
	colm	41
	plus
	pnull
	var	0
	line	146
	colm	51
	field	label
	line	146
	colm	16
	invoke	4
	unmark
lab L5
	mark	L6
	mark	L7
	pnull
	line	147
	colm	4
	pret
lab L7
	pfail
	unmark
lab L6
	pnull
	line	148
	colm	1
	pfail
	end
proc Exec_Button
	local	0,001000,win
	local	1,001000,r
	local	2,001000,x
	local	3,001000,y
	local	4,000020,e
	local	5,000020,b
	local	6,000020,t
	local	7,000000,WAttrib
	local	8,000000,FillRectangle
	local	9,000000,BevelRectangle
	local	10,000000,Event
	local	11,000000,ontarget
	con	0,010000,14,144,162,141,167,157,160,075,162,145,166,145,162,163,145
	con	1,002000,1,2
	con	2,002000,1,0
	con	3,010000,11,144,162,141,167,157,160,075,143,157,160,171
	declend
	line	150
	colm	11
	mark	L1
	var	7
	var	0
	str	0
	line	153
	colm	11
	invoke	2
	unmark
lab L1
	mark	L2
	var	8
	var	0
	pnull
	pnull
	var	1
	line	154
	colm	24
	field	x
	int	1
	line	154
	colm	27
	plus
	pnull
	pnull
	var	1
	line	154
	colm	33
	field	y
	int	1
	line	154
	colm	36
	plus
	pnull
	pnull
	var	1
	line	154
	colm	42
	field	w
	pnull
	int	1
	int	1
	line	154
	colm	48
	mult
	line	154
	colm	45
	minus
	pnull
	pnull
	var	1
	line	154
	colm	53
	field	h
	pnull
	int	1
	int	1
	line	154
	colm	58
	mult
	line	154
	colm	56
	minus
	line	154
	colm	17
	invoke	5
	unmark
lab L2
	mark	L3
	var	9
	var	0
	pnull
	var	1
	line	155
	colm	25
	field	x
	pnull
	var	1
	line	155
	colm	30
	field	y
	pnull
	var	1
	line	155
	colm	35
	field	w
	pnull
	var	1
	line	155
	colm	40
	field	h
	pnull
	var	5
	pnull
	int	1
	line	155
	colm	49
	neg
	line	155
	colm	46
	asgn
	line	155
	colm	18
	invoke	6
	unmark
lab L3
	mark	L4
lab L5
	mark0
	pnull
	var	4
	var	10
	var	0
	line	157
	colm	20
	invoke	1
	line	157
	colm	12
	asgn
	unmark
	mark	L5
	mark	L8
	pnull
	var	2
	line	158
	colm	12
	keywd	x
	line	158
	colm	9
	asgn
	unmark
lab L8
	mark	L9
	pnull
	var	3
	line	159
	colm	12
	keywd	y
	line	159
	colm	9
	asgn
	unmark
lab L9
	mark0
	var	4
	eret
	mark	L11
	ccase
	line	161
	colm	10
	keywd	ldrag
	line	161
	colm	16
	eqv
	unmark
	pop
	mark	L12
	pnull
	var	6
	mark	L13
	var	11
	var	1
	var	2
	var	3
	line	162
	colm	30
	invoke	3
	unmark
	pnull
	int	1
	line	162
	colm	45
	neg
	goto	L14
lab L13
	int	1
lab L14
	line	162
	colm	15
	asgn
	unmark
lab L12
	mark0
	pnull
	var	5
	dup
	var	6
	line	163
	colm	18
	neqv
	asgn
	unmark
	mark	L15
	var	9
	var	0
	pnull
	var	1
	line	164
	colm	37
	field	x
	pnull
	var	1
	line	164
	colm	42
	field	y
	pnull
	var	1
	line	164
	colm	47
	field	w
	pnull
	var	1
	line	164
	colm	52
	field	h
	var	5
	line	164
	colm	30
	invoke	6
	unmark
lab L15
	var	8
	var	0
	pnull
	pnull
	var	1
	line	166
	colm	20
	field	x
	int	1
	line	166
	colm	23
	plus
	pnull
	pnull
	var	1
	line	166
	colm	29
	field	y
	int	1
	line	166
	colm	32
	plus
	pnull
	pnull
	var	1
	line	166
	colm	38
	field	w
	pnull
	int	1
	int	1
	line	166
	colm	44
	mult
	line	166
	colm	41
	minus
	pnull
	pnull
	var	1
	line	166
	colm	49
	field	h
	pnull
	int	1
	int	1
	line	166
	colm	55
	mult
	line	166
	colm	52
	minus
	line	165
	colm	29
	invoke	5
	goto	L10
lab L11
	mark	L16
	ccase
	line	169
	colm	10
	keywd	lrelease
	line	169
	colm	19
	eqv
	unmark
	pop
	mark	L17
	mark	L18
	pnull
	var	5
	int	2
	line	170
	colm	18
	numlt
	unmark
	mark	L20
	var	9
	var	0
	pnull
	var	1
	line	171
	colm	37
	field	x
	pnull
	var	1
	line	171
	colm	42
	field	y
	pnull
	var	1
	line	171
	colm	47
	field	w
	pnull
	var	1
	line	171
	colm	52
	field	h
	int	1
	line	171
	colm	30
	invoke	6
	unmark
lab L20
	mark	L21
	var	8
	var	0
	pnull
	pnull
	var	1
	line	173
	colm	20
	field	x
	int	1
	line	173
	colm	23
	plus
	pnull
	pnull
	var	1
	line	173
	colm	29
	field	y
	int	1
	line	173
	colm	32
	plus
	pnull
	pnull
	var	1
	line	173
	colm	38
	field	w
	pnull
	int	1
	int	1
	line	173
	colm	44
	mult
	line	173
	colm	41
	minus
	pnull
	pnull
	var	1
	line	173
	colm	49
	field	h
	pnull
	int	1
	int	1
	line	173
	colm	55
	mult
	line	173
	colm	52
	minus
	line	172
	colm	29
	invoke	5
	unmark
lab L21
	mark	L22
	var	7
	var	0
	str	3
	line	174
	colm	23
	invoke	2
	unmark
lab L22
	pnull
	var	1
	line	175
	colm	17
	field	proc
	var	0
	pnull
	var	1
	line	175
	colm	29
	field	arg
	line	175
	colm	22
	invoke	2
	goto	L19
lab L18
	var	7
	var	0
	str	3
	line	178
	colm	23
	invoke	2
lab L19
	unmark
lab L17
	mark	L23
	pnull
	line	179
	colm	13
	pret
lab L23
	pfail
	goto	L10
lab L16
	efail
lab L10
lab L6
	unmark
	goto	L5
lab L7
	unmark
lab L4
	pnull
	line	183
	colm	1
	pfail
	end
