//
//  PenWidthView.m
//  tegakiMail
//
//  Created by 今井 彰彦 on 2011/11/08.
//  Copyright (c) 2011 AIG-Soft. All rights reserved.
//

#import "PenWidthView.h"
#import "libs.h"
#import <math.h>	// M_PI
#import <QuartzCore/CoreAnimation.h>	// QuartzCore.frameworkが必要

@implementation PenWidthView

//-------------------------------------------------------------------
// 描画処理
//-------------------------------------------------------------------

// 幅表示を禁止する
-(void)stop
{
	fdispWidth=NO;
	[self setNeedsDisplay];
}

// 幅表示を許可する
-(void)start
{
	fdispWidth=YES;
	[self setNeedsDisplay];
}

-(id)init
{
	self=[super init];
	if (self) {
		[self stop];
	}
	return self;
}

//-------------------------------------------------------------------

// 実描画
- (void)drawRect:(CGRect)rect
{
	printSelf();

	if (fdispWidth==YES) {
		// 太さ表示
		// 消しゴムの時は描画色は黒にして塗りつぶしをしない
		BOOL ffill=YES;
		NSUInteger col=_penColor;
		if (col==PENCIL_COLOR_WHITE) {
			col=PENCIL_COLOR_BLACK;
			ffill=NO;
		}
		// UIGraphicsGetCurrentContext()はdrawRect:中でのみ値を返す
		CGContextRef c = UIGraphicsGetCurrentContext();
		CGSize size=self.frame.size;

		CGContextSetLineWidth(c,1.0);
//		nslog(@"x,y,r=%f,%f,%f/col=%d",self.center.x,self.center.y,_penWidth,_penColor);
		//
		UIColor *uicol=colorByNo(col);
		CGContextSetStrokeColorWithColor(c,uicol.CGColor);	// 線色指定
		CGContextSetFillColorWithColor(  c,uicol.CGColor);	// 塗りつぶし色指定;線とは別指定しないといけない
		CGContextAddArc(c,size.width/2,size.height/2,_penWidth/2,0,2*M_PI,1); // 0〜2*M_PI=全周,1=時計方向描画,円が描かれるので、半径は幅の半分
		if (ffill) { // 塗りつぶし
			CGContextFillPath(c);
		}
		if (_penWidthMin>0) {
			// 最小幅表示指定があるとき
//			CGFloat red,green,blue,alpha;
//			[uicol getRed:&red green:&green blue:&blue alpha:&alpha]; // 色成分を得る
//			nslog(@"色成分:r=%f/g=%f/b=%f/α=%f",red,green,blue,alpha);
			CGContextSetFillColorWithColor(c,[UIColor whiteColor].CGColor);	// 線色指定
			CGContextAddArc(c,size.width/2,size.height/2,_penWidthMin/2,0,2*M_PI,1);
			CGContextFillPath(c);
		}
		CGContextStrokePath(c); // 描画指定
	}
}

//-------------------------------------------------------------------

@end
