

* This file is for the QueryReq that is required to be put up whenever
* a yes/no response is required.


* DoQueryReq(a6)
* a6 = ptr to main program variables

* pop up the QueryRequester & wait for a key press.

* Requires the variables irt_tlist(L), irt_itext(L) and
* irt_count(W) to be pre-set before calling. All of
* these are off A6.

* assume ALL registers corrupt!


DoQueryReq	bsr	LinkInfoText

		move.l	ThisReq(a6),a4

		move.l	mw_handle(a6),rhb_Window(a4)
		move.l	mw_userport(a6),rhb_UserPort(a4)
		move.l	mw_IDCMP(a6),rhb_IDCMP(a4)
		lea	QueryReq(pc),a0
		move.l	a0,rhb_Requester(a4)

		clr.l	rhb_PreCode(a4)

		bsr	HandleRequest

		rts


* DoDiscQuery(a6)
* a6 = ptr to main program variables

* pop up the QueryRequester for the Disc Access Panel.

* Requires the variables irt_tlist(L), irt_itext(L) and
* irt_count(W) to be pre-set before calling. All of
* these are off A6.

* Assume ALL registers corrupt!


DoDiscQuery	lea	DiscWindow4(pc),a0
		move.l	ms_handle(a6),d0
		move.l	d0,30(a0)
		CALLINT	OpenWindow
		move.l	d0,dp_window3(a6)		;got window?
		beq	DDQ_Done			;skip if not

		move.l	d0,a0
		move.l	UserPort(a0),di_userport(a6)
		move.l	RastPort(a0),a1
		move.l	a1,di_rastport(a6)	;now set green
		moveq	#4,d0			;background
		CALLGRAF	SetRast

		bsr	LinkInfoText		;pop in info text

		move.l	di_rastport(a6),a0
		lea	IFB(pc),a1
		moveq	#0,d0
		move.l	d0,d1

		CALLINT	DrawBorder		;draw the border

		move.l	irt_itext(a6),a1
		move.l	di_rastport(a6),a0
		moveq	#0,d0
		move.l	d0,d1

		CALLINT	PrintIText		;print the text

		lea	DQR_Select(pc),a1
		move.l	dp_window3(a6),a0
		sub.l	a2,a2
		moveq	#0,d0
		moveq	#2,d1
		CALLINT	AddGList

		lea	DQR_Select(pc),a0
		move.l	dp_window3(a6),a1
		sub.l	a2,a2
		moveq	#2,d0
		CALLINT	RefreshGList

		bset	#7,applic_flag2(a6)	;set req on flag

		addq.w	#1,ReqCount(a6)		;1 more req active

;		bset	#2,applic_flag2(a6)	;set holding flag

DDQ_L1		move.l	di_userport(a6),a0	;everything we do
		lea	ehb_dp(pc),a5		;is driven by you
		bsr	DoEvent			;(the event handler)

		tst.b	applic_flag2(a6)		;exited requester?
		bmi.s	DDQ_L1			;back if not

		bset	#7,applic_flag2(a6)	;set for nested call

		subq.w	#1,ReqCount(a6)		;1 fewer req's active
		bne.s	DDQ_B1		;skip if any still active

		bclr	#7,applic_flag2(a6)	;signal no more reqs

DDQ_B1		move.l	dp_window3(a6),a0		;get rid of the
		CALLINT	CloseWindow		;window

DDQ_Done		rts


* Query requester structure


QueryReq:
	dc.l	NULL
	dc.w	0,20
	dc.w	320,160
	dc.w	0,0
	dc.l	QR_Select	;gadget ptr
	dc.l	QRB		;Border ptr
	dc.l	QRT_1		;text ptr
	dc.w	NULL
	dc.b	4,1
	dc.l	NULL
	dcb.b	32,0
	dc.l	NULL
	dc.l	NULL
	dcb.b	36,0


* Gadgets used by QueryReq


QR_Image:
	dc.l	QR_Select
	dc.w	0,0
	dc.w	1,1
	dc.w	NULL
	dc.w	NULL
	dc.w	BOOLGADGET+REQGADGET
	dc.l	NULL
	dc.l	NULL
	dc.l	QRT_1
	dc.l	NULL
	dc.l	NULL
	dc.w	NULL		;18
	dc.l	DoneIG
	dc.l	DoneRG		;extra entry!



QR_Select:
	dc.l	QR_Cancel
	dc.w	10,130
	dc.w	60,20
	dc.w	GADGHIMAGE+GADGIMAGE
	dc.w	GADGIMMEDIATE+RELVERIFY+ENDGADGET
	dc.w	BOOLGADGET+REQGADGET
	dc.l	SR60x20
	dc.l	SS60x20
	dc.l	QT_1
	dc.l	NULL
	dc.l	NULL
	dc.w	NULL		;18
	dc.l	DoneIG
	dc.l	LeaveReq		;extra entry!

QT_1:
	dc.b	9,0,RP_JAM1,0
	dc.w	19,7
	dc.l	NULL
	dc.l	QTT_1	;text ptr
	dc.l	QT_2

QT_2:
	dc.b	1,0,RP_JAM1,0
	dc.w	18,6
	dc.l	NULL
	dc.l	QTT_1	;text ptr
	dc.l	NULL


QTT_1:
	dc.b	"Yes",0
	cnop	0,2

QR_Cancel:
	dc.l	NULL
	dc.w	250,130
	dc.w	60,20
	dc.w	GADGHIMAGE+GADGIMAGE
	dc.w	GADGIMMEDIATE+RELVERIFY+ENDGADGET
	dc.w	BOOLGADGET+REQGADGET
	dc.l	SR60x20
	dc.l	SS60x20
	dc.l	QT_3
	dc.l	NULL
	dc.l	NULL
	dc.w	NULL		;19
	dc.l	DoneIG
	dc.l	QuitReq		;extra entry!

QT_3:
	dc.b	9,0,RP_JAM1,0
	dc.w	23,7
	dc.l	NULL
	dc.l	QTT_2	;text ptr
	dc.l	QT_4

QT_4:
	dc.b	1,0,RP_JAM1,0
	dc.w	22,6
	dc.l	NULL
	dc.l	QTT_2	;text ptr
	dc.l	NULL

QTT_2:
	dc.b	"No",0
	cnop	0,2

* Border


QRB:
	dc.w	0,0
	dc.b	1,0,RP_JAM1
	dc.b	5
	dc.l	QRBList
	dc.l	NULL

QRBList:
	dc.w	0,0
	dc.w	319,0
	dc.w	319,159
	dc.w	0,159
	dc.w	0,0


* InfoTexts IntuiText structures used by LinkInfoText()


QRT_1:
	dc.b	8,0,RP_JAM1,0
	dc.w	1,1
	dc.l	NULL		;font ptr
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_ 16(An)

;QRT_2:
	dc.b	1,0,RP_JAM1,0
	dc.w	0,0
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_3:
	dc.b	8,0,RP_JAM1,0
	dc.w	1,1
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_4:
	dc.b	1,0,RP_JAM1,0
	dc.w	0,0
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_3:
	dc.b	8,0,RP_JAM1,0
	dc.w	1,1
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_4:
	dc.b	1,0,RP_JAM1,0
	dc.w	0,0
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_3:
	dc.b	8,0,RP_JAM1,0
	dc.w	1,1
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_4:
	dc.b	1,0,RP_JAM1,0
	dc.w	0,0
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_3:
	dc.b	8,0,RP_JAM1,0
	dc.w	1,1
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_4:
	dc.b	1,0,RP_JAM1,0
	dc.w	0,0
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_3:
	dc.b	8,0,RP_JAM1,0
	dc.w	1,1
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_4:
	dc.b	1,0,RP_JAM1,0
	dc.w	0,0
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_3:
	dc.b	8,0,RP_JAM1,0
	dc.w	1,1
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_4:
	dc.b	1,0,RP_JAM1,0
	dc.w	0,0
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_3:
	dc.b	8,0,RP_JAM1,0
	dc.w	1,1
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_4:
	dc.b	1,0,RP_JAM1,0
	dc.w	0,0
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_3:
	dc.b	8,0,RP_JAM1,0
	dc.w	1,1
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_4:
	dc.b	1,0,RP_JAM1,0
	dc.w	0,0
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_3:
	dc.b	8,0,RP_JAM1,0
	dc.w	1,1
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_

;QRT_4:
	dc.b	1,0,RP_JAM1,0
	dc.w	0,0
	dc.l	NULL
	dc.l	NULL		;text pointer 12(An)
	dc.l	NULL		;ptr to next QRT_



