//
//  PenButton.h
//  tegakiMail
//
//	PenButtonという名称になっているが、現在は汎用的に長押し対応のボタン処理に使っている
//
//  Created by 今井 彰彦 on 2011/11/13.
//  Copyright (c) 2011 AIG-Soft. All rights reserved.
//

#import <UIKit/UIKit.h>

//#define USE_BACKGROUND_COLOR	// 背景色の変更も使う

enum { // fcancelの値
	CANCEL_NONE=0,
	CANCEL_EXECUTE,
	CANCEL_EXECUTE_ENDED,	// touchesEndedでの実行をキャンセル
};

@interface PenButton : UIButton	// UIButton以外にすると表示がでない
{
	// limitを変更させるとsliderのmaxやpenWidthViewも変更する必要があるので、現在はシステム固定
	//
	NSUInteger		fcancel;			// 実行キャンセル指示
	BOOL			flongOnly;			// 長押しのみ実行指定
	id				target;
	SEL				shortPressSelector;	// 普通押し時呼び出しメソッド
	SEL				longPressSelector;	// 長押し時呼び出しメソッド
	NSTimer			*timer;				// 遅延動作timer
	//
#ifdef USE_BACKGROUND_COLOR
	UIColor			*backColor;	// 背景色
#endif
#ifdef DEBUG
	NSTimeInterval	startTime;	// 押下開始時間
	NSTimeInterval	dTime;		// 押下時間
#endif
}
@property (nonatomic) NSUInteger	penColor;	// 描画色(UIColorで記録したいが、構造体中にクラスを入れると面倒なので)
@property (nonatomic) CGFloat		penWidth;	// 線の太さ(現在値)
@property (nonatomic) CGFloat		penWidthMax;	// ペン幅最大値;penSliderにより設定
@property (nonatomic) CGFloat		penWidthMin;	// ペン幅初期値;penSliderMinにより設定
@property (nonatomic,assign) NSTimeInterval	minimumPressDuration;	// 長押し判定時間

-(void)setPenButton:(id)target_ shortPressSelector:(SEL)shortPressSelector_ longPressSelector:(SEL)longPressSelector_ penColor:(NSUInteger)penColor_ penWidth:(CGFloat)penWidth_;
-(void)setPenButton:(id)target_ shortPressSelector:(SEL)shortPressSelector_ longPressSelector:(SEL)longPressSelector_ duration:(NSTimeInterval)duration_ flongOnly:(BOOL)flongOnly_;
-(void)setPenButton:(id)target_ shortPressSelector:(SEL)shortPressSelector_ longPressSelector:(SEL)longPressSelector_ penColor:(NSUInteger)penColor_ penWidth:(CGFloat)penWidth_
		penWidthMax:(CGFloat)penWidthMax_
		penWidthMin:(CGFloat)penWidthMin_;
-(void)executePress:(NSTimeInterval)tm flong:(BOOL)flong;

@end
