//
// BackPattern.imw3
//
//  背景パターン作成ソフト
//
//  ホームページの背景パターンつくるソフトです。
//  指定した値を元に、適当な演算で不規則なパターンを作成します。
//
//  保存した64×64ピクセルのパターンは、<body BACKGROUND="ファイル名">で
//  ホームページの背景に設定できます。
//

// 64×64パターンを作成
DrawSample
{
	n = 255 ;
	s = d1 ;
	y = 0 ; x = 0 ;
	loop(32){
		loop(32){
			n = (n + s) % 56 + 200 ; // でたらめ演算でパレット色をセット
			SetPal(10,n-rc,n-gc,n-bc) ;
			Point(1,x,y,10) ;
			x = x + 1 ;
		}
		y = y + 1 ; x = 0 ; s = s * d2 ;
	}
	x = 0 ; y = 0 ; t = 1 ;
	loop(2){
		loop(2){
			CopyBMP(1,0,0,32,32, 1,x,y,32,32*t,0) ;
			x = x + 32 ; t = t * (-1) ;
		}
		y = y + 32 ; x = 0 ; t = t * (-1) ;
	}
	CopyBMP(1,0,0,64,64, 0,10,40,64,64,0) ; // 表画面にコピー

	x = 270 ; y = 20 ;
	Box(0,x,y,x+30,y+18,0,7) ; PrintData(0,x+6,y+3,0,6,12,0,0,GetScrollPos("ID_type")) ;
	Box(0,x,y+30,x+30,y+48,0,7) ; PrintData(0,x+6,y+33,0,6,12,0,0,GetScrollPos("ID_rc")) ;
	Box(0,x,y+50,x+30,y+68,0,7) ; PrintData(0,x+6,y+53,0,6,12,0,0,GetScrollPos("ID_gc")) ;
	Box(0,x,y+70,x+30,y+88,0,7) ; PrintData(0,x+6,y+73,0,6,12,0,0,GetScrollPos("ID_bc")) ;

	call("DrawBig") ; // 拡大して描画
}
// 拡大して描画
DrawBig
{
	x = 0 ; y = 0 ;
	t = 1 ;
	loop(10){
		loop(10){
			CopyBMP(1,0,0,64,64, 2,x,y,64,64,0) ;
			x = x + 64 ;
		}
		y = y + 64 ; x = 0 ;
	}
	CopyBMP(2,0,0,640,640, 0,0,120,640,640,0) ; // 表画面にコピー
}
// 保存ボタン
ID_save
{
	SaveBMPDlg(1,0,0,64,64) ;
}
// スクロールボックスの操作
ID_type
{
	n = GetScrollPos("ID_type") ;
	d1 = n % 10 ;
	d2 = fix(n / 10) ;
	call("DrawSample") ;
}
ID_rc { rc = 100-GetScrollPos("ID_rc") ; call("DrawSample") ; }
ID_gc { gc = 100-GetScrollPos("ID_gc") ; call("DrawSample") ; }
ID_bc { bc = 100-GetScrollPos("ID_bc") ; call("DrawSample") ; }

PAINT
{
	Print(0,100,25,0,6,12,0,"パターン") ;
	Print(0,100,55,0,6,12,0,"赤レベル") ;
	Print(0,100,75,0,6,12,0,"緑レベル") ;
	Print(0,100,95,0,6,12,0,"青レベル") ;

	Box(0,0,120,WIN_W,WIN_H,7,7) ;
	Line(0,0,119,WIN_W,119,0) ;

	call("DrawSample") ; // 64×64パターンを作成
}
INIT
{
	d1 = 6 ; d2 = 6 ; // でたらめ演算の元になる数値
	SetScrollPos("ID_type",66) ;
	rc = 100 ; SetScrollPos("ID_rc",100-rc) ;
	gc =  50 ; SetScrollPos("ID_gc",100-gc) ;
	bc =  50 ; SetScrollPos("ID_bc",100-bc) ;
}
CREATE
{
	SetWinSize(346,500) ;
	SetWinColor(15) ;
	SetCaption("背景編集") ;

	SubScreen(1,64,64) ;
	SubScreen(2,SCR_W,SCR_H) ;

	CreateControl( 0,"保 存","ID_save",10,12,64,20) ;

	CreateControl(70,"","ID_type",160,20,99,18) ;

	CreateControl(70,"","ID_rc",160,50,99,18) ;
	CreateControl(70,"","ID_gc",160,70,99,18) ;
	CreateControl(70,"","ID_bc",160,90,99,18) ;
}