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



// 64×64パターンを作成
DrawSample
{
	px = 10 ; py = 40 ;
	n = 255 ;
	s = d1 ;
	y = py ; x = px ;
	loop(16){
		loop(16){
			n = (n+s)%56+200 ; // ランダムな値を算出しパレットをセット
			SetPal(10,n-rc,n-gc,n-bc) ;
			Point(x,y,10) ;
			x = x + 1 ;
		}
		y = y + 1 ; x = px ; s = s * d2 ;
	}
	// 上下反転させながらコピー
	x = px ; y = py ; t = 1 ;
	loop(4){
		loop(4){
			CopyBMP(1,px,py,16,16, 1,x,y,16,16*t,0) ;
			x = x + 16 ; t = t * (-1) ;
		}
		y = y + 16 ; x = px ; t = t * (-1) ;
	}

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

// 拡大して描画
ID_big
{
	px = 10 ; py = 150 ;
	Box(0,py-10,WIN_X,WIN_Y,7,7) ;
	x = px ; y = py ;
	t = 1 ;
	loop(5){
		loop(5){
			CopyBMP(1,10,40,16*4,16*4, 1,x,y,16*4,16*4*t,0) ;
			x = x + 16*4 ;
		}
		y = y + 16*4 ; x = px ;
	}
}

ID_save
{
	// ダイアログボックス自身の絵を保存してしまうので、
	// 裏画面にコピーし、裏画面を保存する

	CopyBMP(1,px,py,64,64,0,0,0,64,64,0) ;
	SelectScreen(0) ;
	SaveBMPDlg(0,0,64,64) ;
	SelectScreen(1) ;
}

// スクロールボックスの操作
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
{
	SetFont("MS ゴシック",0) ;

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

	Box(0,140,WIN_X,WIN_Y,7,7) ;
	call("DrawSample") ;
	call("ID_big") ;
}

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) ;
	SubScreen(64,64) ;

	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) ;

	CreateControl( 0,"↓拡大↓","ID_big",10,112,64,20) ;
}