// 画像ファイルの表示 / Graphic file display
// 全機種対応 / Compatuble for all device

width(48)
int bx=128,by=128
switch deviceType()
	case DEVICE_IPODTOUCH: // iPod touch
	case DEVICE_IPHONE: // iPhone
	case DEVICE_IPHONE_SIMURATOR
//		print "deviceType=";deviceType()
		width(32,30)
		bx=0:by=0
//		hitKey(YES)
endswitch
//
vpriority(TPAGE,GPAGE0,GPAGE1,GPAGE2,GPAGE3)
vpage(B_TPAGE+B_GPAGE0+B_GPAGE1+B_GPAGE2+B_GPAGE3)
apage(GPAGE0)
//
// 全ファイルリストを得る / get all file list
dim str fileList(256):// ()内は扱える最大ファイル数
int allcnt
int i,ret,outcnt
str ext
//
// 拡張子(大文字小文字を区別するので注意) / extension (case sensitive)
// 正規表現 / Regular expression
ext="^(PIC|pic|PNG|png|JPG|jpg|CUT|cut|Mag|mag)$":
/*ext="^(PIC|pic|jpg|CUT|cut|Mag|mag)$":
allcnt=files(fileList,"",ext,YES,FILES_FILE,YES,FILES_FAREA_ALL):// システム領域も検索対象

if NO then {
// 全ファイル名表示
outcnt=0
for i=0 to allcnt
	locate(0,0):print "allcnt=";allcnt
	for ret=0 to 20
		if (outcnt>=allcnt) then break
		locate(0,ret+1)
		print fileList(outcnt);chr$(DISP_CTRL_CLEARLINE);
		inc(outcnt)
	next
//	print
//	print "ret=";ret"
	hitKey(YES)
	if (outcnt>=allcnt) then break
	i=i+ret
next
} // if NO

cls()
setFuncKey()

//// テストのためシステム領域内にある画像を加えておく / Add system area image files for test 
//fileList(allcnt)="IMG1.JPG":allcnt=allcnt+1
//fileList(allcnt)="IMG2.PIC":allcnt=allcnt+1
//fileList(allcnt)="GAROU.CUT":allcnt=allcnt+1
//fileList(allcnt)="girl1.png":allcnt=allcnt+1
//fileList(allcnt)="girl2.jpg":allcnt=allcnt+1
//fileList(allcnt)="girl3.png":allcnt=allcnt+1
//fileList(allcnt)="girl4.jpg":allcnt=allcnt+1
//
if allcnt<=0 then {
	locate(0,0)
	print localizedString("画像ファイルがありません":"Graphic file not found.")
} else {
	outcnt=0
	for i=0 to allcnt-1
		locate(0,0):print fileList(i);chr$(DISP_CTRL_CLEARLINE)
		wipe()
		str pext=pathExtension(fileList(i))
		strupr(pext)
		switch pext
			case "MAG"
				ret=magLoader(0,0,fileList(i))
				if ret<>0 then {
					locate(0,1):print "Error=";ret
				}
				break
			case "PIC"
				ret=picLoader(bx,by,fileList(i))
				if ret<>0 then {
					locate(0,1):print "Error=";ret
				}
				break
			case "CUT"
				ret=cutLoader(bx,by,fileList(i))
				if ret<>0 then {
					locate(0,1):print "Error=";ret
				}
				break
			default:
				ret=imgLoad(0,0,0,0,fileList(i))
				break
		endswitch
		//
//		hitKey(YES)
		repeat
			str fname
			fname="screen"+str$(outcnt)+"."
			int ky=inkey()
			switch ky
				case 'f':// PDF
					locate(0,15):print fname+"pdf";
					hcopy(fname+"pdf")
					inc(outcnt)
					beep2(13)
					break
				case 'j':// JPEG
					locate(0,15):print fname+"jpg";
					hcopy(fname+"jpg",0.8)
//					jpegSave(fname+"jpg",0.8)
					inc(outcnt)
					beep2(13)
					break
				case 'p':// PNG
					locate(0,15):print fname+"png";
					hcopy(fname+"png")
//					pngSave(fname+"png")
					inc(outcnt)
					beep2(13)
					break
				case 'h':// AirPrint HardCopy
					hcopy()
					beep2(13)
					break
				case 'a':// Album
					hcopy(".album")
				case 'n':// next : 操作音のみ鳴らす / click sound only
					beep2(13)
					break
				default
					break
			endswitch
		until ky='n' or ky='!'
		if ky='!' then break
	next
}
end
//---------
func setFuncKey()
	// ファンクションキー / fuallcntion key
	str exit$,next$
	if isLocalizeJapan() then {
		exit$="終了"
		next$="次"
	} else {
		exit$="exit"
		next$="Next"
	}
	setFunctionKey(0,"PDF"	,'f')
	setFunctionKey(1,"JPEG"	,'j')
	setFunctionKey(2,"PNG"	,'p')
	setFunctionKey(3,"Hcpy"	,'h')
	setFunctionKey(4,"album",'a')
	setFunctionKey(5,next$ 	,'n')
	setFunctionKey(6,"    " ,'?')
	setFunctionKey(7,"    " ,'?')
	setFunctionKey(8,"    "	,'?')
	setFunctionKey(9,exit$ 	,'!')

	setFunctionKeyBackgroundImage("funcBack.png")
	displayFunctionKeyAll(YES,YES)
endfunc
//---------
