window:
	res:
		windowType	wstandard
	endres:
endwindow:
close:
	res:
		bitmapPath	$(bitmaps)
		bitmapFile	CLOSE::CBM
	endres:
endclose:
title:
	res:
		leftLabel	Restore
		leftKanjiFont	$(kanjiFont)
		leftFont	$(kanaFont)
		switch $(COLOR)
			case MONO:
				bitmapPath	$(bitmaps)
				backgroundFile	GRAY3
				transparent	false
				break
		endswitch
	endres:
endtitle:
dialog: dialogs
	res:
		defaultDistance		#(fWidth)
		dialogType		modeless
	endres:
	ditem: owner
		res:
			itemType	bitmap
			leftLabel	'Owner   :   user'
			leftKanjiFont	$(kanjiFont)
			leftFont	$(kanaFont)
			vertDistance	#(fWidth)
			horizDistance	#(fWidth)
			autoAdjust	true
		endres:
	endditem:
	ditem: date
		res:
			itemType	bitmap
			leftLabel	'Date    :   date'
			fromVert	owner
			leftKanjiFont	$(kanjiFont)
			leftFont	$(kanaFont)
			vertDistance	#(fWidth)
			horizDistance	#(fWidth)
			autoAdjust	true
		endres:
	endditem:
	ditem: list_label
		res:
			itemType	bitmap
			label		'    Backup File                 Volume(KB)'
			fromVert	date
			kanjiFont	$(kanjiFont)
			font		$(kanaFont)
			vertDistance	#(fWidth)*2
			horizDistance	#(fWidth)
		endres:
	endditem:
	ditem: list
		res:
			itemType	scrtext
			fromVert	list_label
			vertDistance	4
			horizDistance	#(fWidth)
			width		#(fWidth)+1*40
			height		#(lHeight)*6+8
			kanjiFont	$(kanjiFont)
			font		$(kanaFont)
			bind1		select1
			bind2		select2
			textOptions	1
			file		/dev/null
		endres:
		act:
			put $(line)
			put $(line)@0 $(line_no)
		endact:
	endditem:
	ditem: select
		res:
			itemType	button
			fromVert	list
			label		' Select '
			kanjiFont	$(kanjiFont)
			font		$(kanaFont)
			vertDistance	#(fWidth)
			horizDistance	#(fWidth)
		endres:
		act:
			job select
		endact:
	endditem:
	ditem: reslist_label
		res:
			itemType	bitmap
			fromVert	select
			label		'    Selected File              Volume(KB) Selection     Destination'
			kanjiFont	$(kanjiFont)
			font		$(kanaFont)
			vertDistance	#(fWidth)*2
			horizDistance	#(fWidth)
		endres:
	endditem:
	ditem: reslist
		res:
			itemType	scrtext
			fromVert	reslist_label
			vertDistance	4
			horizDistance	#(fWidth)
			width		#(fWidth)+1*70
			height		#(lHeight)*6+8
			kanjiFont	$(kanjiFont)
			font		$(kanaFont)
			bind1		delete1
			bind2		delete2
			textOptions	1
			file		/dev/null
		endres:
		act:
			put $(line)
			put $(line)@0 $(selline_no)
			put $(line)@3 $(file_sel)
		endact:
	endditem:
	ditem: delete
		res:
			itemType	button
			fromVert	reslist
			label		' Delete '
			kanjiFont	$(kanjiFont)
			font		$(kanaFont)
			vertDistance	#(fWidth)
			horizDistance	#(fWidth)
		endres:
		act:
			job delete
		endact:
	endditem:
	ditem: file_sel
		res:
			itemType	button
			fromVert	reslist
			fromHoriz	delete
			label		File Selection
			kanjiFont	$(kanjiFont)
			font		$(kanaFont)
			vertDistance	#(fWidth)
			horizDistance	#(fWidth)
		endres:
		act:
			put 1 $(menu_no)
			put $(selline_no) $(file_selno)
			$(sub) = sub $(menu)/file ++48++48
			trap $(sub) sub_end
		endact:
	endditem:
	ditem: file_all
		res:
			itemType	button
			fromVert	reslist
			fromHoriz	file_sel
			label		'All'
			kanjiFont	$(kanjiFont)
			font		$(kanaFont)
			vertDistance	#(fWidth)
			horizDistance	#(fWidth)
		endres:
		act:
			job allfile
		endact:
	endditem:
	ditem: dest
		res:
			itemType	button
			fromVert	reslist
			fromHoriz	file_all
			label		'Destination'
			kanjiFont	$(kanjiFont)
			font		$(kanaFont)
			vertDistance	#(fWidth)
			horizDistance	#(fWidth)
		endres:
		act:
			$(getdir) = getdir $(HOME)
			trap $(getdir) dest
		endact:
	endditem:
	ditem: exec
		res:
			itemType	button
			fromVert	reslist
			fromHoriz	dest
			label		' Execute '
			kanjiFont	$(kanjiFont)
			font		$(kanaFont)
			vertDistance	#(fWidth)
			horizDistance	#(fWidth)*12
		endres:
		act:
			put 2 $(menu_no)
			put 'Now start to restore.' $(confirm_msg1)
			$(confirm) = sub $(commonPath)/confirm1 ++48++48
			trap $(confirm) confirm
			buzzer
		endact:
	endditem:
enddialog:
proc: pre
	global $(rest_stat)
	global $(stop)
	global $(LIST_DISPSEL)
	global $(LIST_INFOSEL)
	global $(file_selno)
	put Restore $(cmdName)
	put $(menuPath)/Restore $(menu)
	put $(icons) $(okPath)
	put Restore $(okFile)
	$(TMP) = mktemp
	put /tmp/$(TMP) $(LIST_DISP)
	$(TMP) = mktemp
	put /tmp/$(TMP) $(LIST_INFO)
	$(TMP) = mktemp
	put /tmp/$(TMP) $(LIST_DISPSEL)
	$(TMP) = mktemp
	put /tmp/$(TMP) $(LIST_INFOSEL)
	put '' $(LOCKFILE)
	$(etc)/Restore/Srestorelist.sh make $(TMPDIR) $(LIST_DISP) $(LIST_INFO)
	$(etc)/Restore/Srestorelist.sh owner $(TMPDIR)
	put $(stdout) $(owner)
	$(etc)/Restore/Srestorelist.sh date $(TMPDIR)
	put $(stdout) $(date)
	test -s /etc/user_skel
	switch #(status)
		case 0:
			put $(line) < /etc/user_skel
			put $(line)@1 $(dir)
			break
		default:
			put /home $(dir)
			break
	endswitch
	job clear
endproc:
proc: clear
	echo -n > $(LIST_DISPSEL)
	echo -n > $(LIST_INFOSEL)
	put 0 $(rest_cnt)
	job clear_var
endproc:
proc: clear_var
	put 0 $(menu_no)
	put on $(mapped)
	put off $(opened)
	put 0 $(rest_stat)
	put off $(stop)
	put off $(onrest)
endproc:
proc: close
	switch $(ONRUN)
		case on:
			quit
	endswitch
	job off
	close
endproc:
proc: off
	switch #(menu_no)
		case 1:
			close $(sub)
			break
		case 2:
			close $(confirm)
			break
	endswitch
	$(etc)/Restore/Srestorelist.sh clear $(LIST_INFOSEL)
	$(etc)/Common/Sumount.sh $(MNTDIR)
	switch #(device)
		case 1:
		case 2:
			switch $(EJECT)
				case on:
					/bin/fe 1> /dev/null 2> /dev/null
					break
			endswitch
			break
	endswitch
	rm -f $(LIST_DISP) $(LIST_INFO) $(LIST_DISPSEL) $(LIST_INFOSEL)
	rm -fr $(MNTDIR) $(TMPDIR)
	local $(file_selno)
	local $(LIST_DISPSEL)
	local $(LIST_INFOSEL)
	local $(device)
	local $(odunit)
	local $(tuunit)
	local $(rest_stat)
	local $(stop)
	local $(sheet)
	local $(MNTDIR)
endproc:
proc: open
	echo -n > $(LIST_DISPSEL)
	setval list file $(LIST_DISP)
	setval select sensitive false
	setval owner leftLabel 'Owner   :   $(owner)'
	setval date leftLabel 'Date    :   $(date)'
	setval select sensitive false
	job open1
endproc:
proc: open1
	setval reslist file $(LIST_DISPSEL)
	setval delete sensitive false
	setval file_sel sensitive false
	setval file_all sensitive false
	setval dest sensitive false
	switch #(rest_cnt)
		case 0:
			setval exec sensitive false
			break
		default:
			setval exec sensitive true
			break
	endswitch
endproc:
proc: select1
	switch $(line_no)
		case '':
			quit
	endswitch
	setval select sensitive true
endproc:
proc: select2
	switch $(line_no)
		case '':
			quit
	endswitch
	setval select selected true
	job select
	setval select selected false
endproc:
proc: select
	$(etc)/Restore/Srestorelist.sh add $(TMPDIR) $(line_no) $(LIST_INFO) $(LIST_DISPSEL) $(LIST_INFOSEL) $(dir)
	switch #(status)
		case 0:
			put #(rest_cnt)+1 $(rest_cnt)
			job open1
			break
		default:
			put 2 $(menu_no)
			put 'already selected.' $(confirm_msg1)
			$(confirm) = sub $(commonPath)/error1 ++48++48
			trap $(confirm) err
			buzzer
			break
	endswitch
endproc:
proc: err
	put 0 $(menu_no)
endproc:
proc: sub_end
	put 0 $(menu_no)
	job open1
endproc:
proc: delete1
	switch $(selline_no)
		case '':
			quit
	endswitch
	setval delete sensitive true
	switch $(file_sel)
		case All:
			setval file_sel sensitive true
			setval file_all sensitive false
			break
		default:
			setval file_sel sensitive true
			setval file_all sensitive true
			break
	endswitch
	setval dest sensitive true
endproc:
proc: delete2
	switch $(selline_no)
		case '':
			quit
	endswitch
	setval delete selected true
	job delete
	setval delete selected false
endproc:
proc: delete
	$(etc)/Restore/Srestorelist.sh del $(TMPDIR) $(selline_no) $(LIST_INFO) $(LIST_DISPSEL) $(LIST_INFOSEL)
	put #(rest_cnt)-1 $(rest_cnt)
	job open1
endproc:
proc: dest
	switch #(pg_stat)
		case 0:
			$(etc)/Restore/Srestorelist.sh dest $(TMPDIR) $(selline_no) $(LIST_DISPSEL) $(LIST_INFOSEL) $(pg_path)
			job open1
			break
	endswitch
endproc:
proc: allfile
	$(etc)/Restore/Srestorelist.sh file $(TMPDIR) $(selline_no) $(LIST_DISPSEL) $(LIST_INFOSEL) '*'
	job open1
endproc:
proc: confirm
	switch $(answer)
		case cancel:
			put 0 $(menu_no)
			quit
	endswitch
	put on $(onrest)
	$(TMP) = mktemp
	put /tmp/$(TMP) $(LOCKFILE)
	put on $(ONRUN)
	put 101 $(menu_no)
	$(onrun) = sub $(menu)/on_restore ++48++48
	trap $(onrun) restore_stop
	alarm 1000 alarm
	switch $(device)
		case 1:
		case 2:
		case 5:
			$(pid) = bg $(etc)/Restore/Srestore.sh $(LIST_INFOSEL) $(TMPDIR) $(device) $(MNTDIR) $(LOCKFILE)
			break
		case 3:
			$(pid) = bg $(etc)/Restore/Srestore.sh $(LIST_INFOSEL) $(TMPDIR) $(device) $(tuunit)
			break
		case 4:
			$(pid) = bg $(etc)/Restore/Srestore.sh $(LIST_INFOSEL) $(TMPDIR) $(device) $(remote_host)
			break
	endswitch
	$(rest_stat) = trap $(pid) restore_end
endproc:
proc: restore_end
	switch #(device)
		case 1:
		case 2:
			switch $(EJECT)
				case on:
					/bin/fe 1> /dev/null 2> /dev/null
					break
			endswitch
			break
	endswitch
	put off $(onrest)
	switch $(stop)
		case on:
			put off $(ONRUN)
			job clear_var
			put 2 $(menu_no)
			put 'End restore utility.' $(confirm_msg1)
			$(confirm) = sub $(commonPath)/msg1 ++48++48
			trap $(confirm) exit
			buzzer
			quit
	endswitch
	close $(onrun)
	buzzer
	put 102 $(menu_no)
	switch $(mapped)
		case on:
			job bgdone
			break
		default:
			put on $(opened)
			break
	endswitch
endproc:
proc: bgdone
	switch #(rest_stat)
		case 0:
			put 'End restore utility.' $(confirm_msg1)
			$(n_end) = sub $(commonPath)/normalEnd1 ++48++48
			trap $(n_end) n_end
			break
		default:
			put 'Error happened in restore !!' $(confirm_msg1)
			put 'End restore utility.' $(confirm_msg2)
			$(n_end) = sub $(commonPath)/error2 ++48++48
			trap $(n_end) e_end
			break
	endswitch
endproc:
proc: restore_stop
	put on $(stop)
	put off $(onrest)
	kill 2 $(pid)
endproc:
proc: alarm
	switch $(onrest)
		case off:
			switch $(LOCKFILE)
				case '':
					break
				default:
					rm -f $(LOCKFILE)
					break
			endswitch
			quit
	endswitch
	put $(tarpid) < $(LOCKFILE)
	switch #(status)
		case 0:
			alarm 1000 getlock
			break
		default:
			alarm 1000 alarm
			break
	endswitch
endproc:
proc: getlock
	put $(tarpid) < $(LOCKFILE)
	rm -f $(LOCKFILE)
	sync
	sync
	sync
	$(etc)/Common/Sumount.sh $(MNTDIR)
	switch #(device)
		case 1:
		case 2:
			switch $(EJECT)
				case on:
					/bin/fe 1> /dev/null 2> /dev/null
					break
			endswitch
			break
	endswitch
	close $(onrun)
	put 2 $(menu_no)
	put #(sheet)+1 $(sheet)
	put 'Set next disk(No. $(sheet)) to drive.' $(confirm_msg1)
	$(confirm) = sub $(menu)/fdconfirm ++48++48
	trap $(confirm) next_conf
	buzzer
endproc:
proc: next_conf
	switch $(answer)
		case cancel:
			put 0 $(menu_no)
			put on $(stop)
			kill 2 $(pid)
			quit
	endswitch
	switch $(device)
		case 1:
		case 2:
			$(etc)/Restore/Schgfd.sh $(device) $(MNTDIR)
			break
		case 5:
			$(etc)/Restore/Schgfd.sh $(device) $(MNTDIR) $(odunit)
			break
	endswitch
	put 101 $(menu_no)
	$(onrun) = sub $(menu)/on_restore ++48++48
	trap $(onrun) restore_stop
	kill 19 $(tarpid)
	alarm 1000 alarm
endproc:
proc: unmap
	switch #(menu_no)
		case 1:
			unmap $(sub)
			break
		case 2:
			unmap $(confirm)
			break
		case 101:
			unmap $(onrun)
			break
		case 102:
			unmap $(n_end)
			break
	endswitch
	put off $(mapped)
endproc:
proc: map
	switch #(menu_no)
		case 1:
			raise $(sub)
			map $(sub)
			break
		case 2:
			move $(confirm)
			raise $(confirm)
			map $(confirm)
			break
		case 101:
			move $(onrun)
			raise $(onrun)
			map $(onrun)
			break
		case 102:
			switch $(opened)
				case on:
					job bgdone
					break
				case off:
					move $(n_end)
					raise $(n_end)
					map $(n_end)
					break
			endswitch
	endswitch
	put on $(mapped)
	put off $(opened)
endproc:
proc: title
	job move
	job up
endproc:
proc: raise
	job up
endproc:
proc: move
	switch #(menu_no)
		case 2:
			move $(confirm)
			break
		case 101:
			move $(onrun)
			break
		case 102:
			move $(n_end)
			break
	endswitch
endproc:
proc: up
	switch #(menu_no)
		case 2:
			raise $(confirm)
			break
		case 101:
			raise $(onrun)
			break
		case 102:
			raise $(n_end)
			break
	endswitch
endproc:
proc: n_end
	put off $(ONRUN)
	job clear_var
	job off
	close
endproc:
proc: e_end
	put off $(ONRUN)
	job clear_var
endproc:
proc: exit
	put 0 $(menu_no)
	job off
	close
endproc:
