//
//  RootViewController.h
//  traceWrite
//
//  Created by 今井 彰彦 on 2011/12/05
//  Copyright 2011 AIG-Soft. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "TegakiScroll.h"
#import "PenWidthView.h"
#import "PenButton.h"
#import "ScrollView.h"
#import "Bunsho.h"
#import "AirPrint.h"
// 以下MessageUI.frameworkが必要
#import <MessageUI/MessageUI.h>
#import	<MessageUI/MFMailComposeViewController.h>

@class Help;
@class ListupView;
@class SetupViewController;
@class Setup;
@class PlaySound;
@class AlertViewSub;
@class Yoko2Yoko;
@class Gensho;

enum {
	HUDEOKI_NONE=0,
	HUDEOKI_TEHON,
	HUDEOKI_TEGAKI
};

@interface RootViewController : UIViewController
<
TegakiDelegate,
UIImagePickerControllerDelegate,
UINavigationControllerDelegate,	// imagePickerのため
UIPopoverControllerDelegate,
UIScrollViewDelegate,
TegakiScrollDelegate,
UIActionSheetDelegate,
MFMailComposeViewControllerDelegate,
UIPrintInteractionControllerDelegate
>
{
	// 実体
	UIColor				*winColor;	// windowの背景色
	//
	AlertViewSub		*alertView;
	UIActionSheet		*asheet;
	AirPrint			*airPrint;
	//
	// iPad表示制御用
	UIPopoverController	*popoverController;
	NSUInteger			fpopover;	// 開いているpopoverの種類;POPOVER_*
	//
	IBOutlet	UILabel		*lblScroll;
	//
	IBOutlet	UIView		*editView;	// 編集領域ビュー
				NSUInteger	pencilCol;	// ボタン色
	IBOutlet	PenButton	*pencilBlack;
	IBOutlet	PenButton	*pencilRed;
	IBOutlet	PenButton	*pencilUndo;
	IBOutlet	UIImageView	*imgSelectPencilBlack;
	IBOutlet	UIImageView	*imgSelectPencilRed;
	IBOutlet	UIImageView	*imgSelectHudeoki,*imgSelectHudeoki3;
	// ペン幅設定領域
	IBOutlet	PenWidthView	*penWidthView;
	IBOutlet	UISlider		*penWidthSlider;
	//
	// 縦書き/横書き文字制御
	Yoko2Yoko	*ttext;
	//
	// 手書き領域とアニメーション制御
	IBOutlet	UIImageView		*tegakiImageView;
	//
	IBOutlet	ScrollView		*tehonScrollView;
	IBOutlet	UIImageView		*tehonImageView;
	CGPoint		tehonContentOffset;
	// 表示制御
	BOOL		fviewDidLoad;		// viewDidLoadを通った直後かどうか
	NSInteger	hudeokiMode;		// HUDEOKI_*
	BOOL		fscrollSyncDisable;	// YES=スクロール同期を禁止する
	BOOL		fzoomSyncDisable;	// YES=ズーム同期を禁止する
	BOOL		fzoomDisable;		// YES=ズームを禁止する
	//
	// メイル送信用
	MFMailComposeViewController *mail;
}
@property (nonatomic,strong) Help					*help;
@property (nonatomic,strong) SetupViewController	*setupViewController;
@property (nonatomic,strong) Gensho					*gensho;
@property (nonatomic,strong) Bunsho					*bunsho;			// 文書情報
@property (nonatomic,strong) IBOutlet	UIBarButtonItem		*btnHelp,*btnSetup,*btnGensho,*btnAction;
@property (nonatomic,strong) IBOutlet	TegakiScrollView	*tegakiView;
@property (nonatomic,strong) IBOutlet	ScrollView			*tegakiScrollView;
@property (nonatomic,strong) UIPopoverController	*popover; // popoverはルートの管理下に置く

enum { // toolButtonActionのTAG番号
	BUTTON_HELP=0,
	BUTTON_SETTING,
	BUTTON_HELP_CLOSE,	// これはHELP上のボタン
	BUTTON_HELP_NEXT,	// 同上
	BUTTON_CLEAR,
	BUTTON_BOOK,		// 原文表示
	BUTTON_SELECT		// 書選択
	// アクション分は直接処理へ接続しているのでここは不要
};

enum { // editButtonActionのTAG番号
	BUTTON_PREV_=0,
	BUTTON_NEXT_,
	// ↑現在未使用だけど変更しない
	BUTTON_PENCIL_BLACK,
	BUTTON_PENCIL_RED,
	BUTTON_ERASE,	// 未使用だけど変更しない
	BUTTON_UNDO,
	BUTTON_HUDEOKI,
	// 7
	BUTTON_UP,
	BUTTON_DOWN,
	BUTTON_LEFT,
	BUTTON_RIGHT,
};

-(void)nonHudeokiMode;
-(IBAction)toolButtonAction:(id)sender;
-(IBAction)editButtonAction:(id)sender;
-(IBAction)penSlider:(id)sender;
-(void)setupSaveButton:(id)sender;
-(void)helpCloseButton:(id)sender;
-(void)genshoCloseButton:(id)sender;
-(void)setPencilWidth:(id)sender;
-(void)setPencilPen:(NSInteger)pen;
-(void)setPencil:(id)sender;
-(void)disappearPenWidth;
-(void)undo:(id)sender;
-(void)printClose;

enum { // fpopoverの値
	POPOVER_NONE=0,
	POPOVER_HELP,
	POPOVER_SETUP,
	POPOVER_GENSHO,
	POPOVER_PRINTER,
};

// 手本と手書きを重ねるときの手本の透過率
#define TEHON_ALPHA	0.8

@end
