//
//  Gensho.m
//  traceWrite
//
//  Created by 今井 彰彦 on 2011/12/16.
//  Copyright (c) 2011 AIG-Soft. All rights reserved.
//

#import "Gensho.h"
#import "main.h"
#import "Yoko2Yoko.h"
#import "ScrollView.h"
#import "AppDelegate.h"
#import "FileControl2.h"

@interface Gensho()
{
	AppDelegate *app;
	Setup *setup;
}
@end

@implementation Gensho

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

-(void)viewDidLoad
{
	printSelf();
    [super viewDidLoad];

	// iOS7で、viewの下にあるUIScrollViewを内包するUI要素(UITableView/UIScrollView/UIWebViewなど)のスクロール開始位置が勝手にずらされるのを禁止する
	self.automaticallyAdjustsScrollViewInsets=NO;
	//
	self.navigationItem.leftBarButtonItem=[[UIBarButtonItem alloc] initWithTitle:NSLocalStr(@"CLOSE") style:UIControlStateNormal target:target action:selector];
	self.title=bunName;	//NSLocalStr(@"GENSHOTITLE");

	// ズーム無し、フォントサイズで表示
	CGFloat fntSize=BASE_FONT;
	_ttext=[[Yoko2Yoko alloc]init];
	if (_bunsho.ftategaki) {
		// 縦書き
		[_ttext yoko2Tate:_bunsho.text tcharMax:_bunsho.maxKetas];
	} else {
		// 横書き
		[_ttext yoko2Yoko:_bunsho.text  charMax:_bunsho.maxKetas];
	}

#if 0
	// １倍で画像を作るとズーム時にギザギザが目立つ
	_tehonImageView.image=[_ttext text2Image:fntSize fontName:setup.currentFontName fscrollArea:NO color:[UIColor blackColor]];
	[_tehonScrollView initWithArea:_tehonImageView.image.size delegate:self ftategaki:_bunsho.ftategaki]; // スクロールエリアの設定
	_tehonScrollView.minimumZoomScale=1.0;
	_tehonScrollView.maximumZoomScale=3.0; // ズームはデジタル拡大なので文字はがたがたになる
#else
#define BAI	2	// 最大倍率；これをzoom=1として画像を作成し、1/BAIで表示する
	// 倍の画像で画像を作り、それを倍まで縮小拡大する（1/2以下にすると線が欠けてしまう）
	_tehonImageView.image=[_ttext text2Image:fntSize*BAI fontName:setup.currentFontName fscrollArea:NO color:[UIColor blackColor]];
	[_tehonScrollView initWithArea:_tehonImageView.image.size delegate:self ftategaki:_bunsho.ftategaki]; // スクロールエリアの設定
	_tehonScrollView.minimumZoomScale=1.0/BAI;
	_tehonScrollView.maximumZoomScale=2.0;
#endif
	_tehonImageView.alpha=1.0; // 薄くしない
	_tehonScrollView.bouncesZoom=_tehonScrollView.bounces=YES; // 原文表示時のスクロール/ズームはバウンス可能とする
	[_tehonScrollView contentSizeRecalcWithZoom:_tehonScrollView.minimumZoomScale];
	[_tehonScrollView homeScrollPoint:_ttext.areaSize];	// 初期スクロール位置を(最終桁,0行)に合わせる

	if (getSystemVersion()<8.0) {
		if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
			// iOS7のiPadでは何故か上部に空白ができるので対策
			CGRect frame=_tehonScrollView.frame;
			printFrame(@"scView.frame", frame);
			frame.size.height+=frame.origin.y;
			frame.origin.y=0;
			_tehonScrollView.frame=frame;
		}
	}
//
#ifdef DEBUG	//!!test!!
	{
		NSData *imgdata=UIImageJPEGRepresentation(_tehonImageView.image,1.0);
		[imgdata writeToFile:makeFullPathForSaveData(@"tehonG.jpg") atomically:YES];
	}
#endif
}

-(void)viewWillAppear:(BOOL)animated
{
	printSelf();
	[super viewWillAppear:animated];
}

-(void)viewDidDisappear:(BOOL)animated
// ビューが消えた
{
	printSelf();
	[super viewDidDisappear:animated];
	_fclosePopover=YES; // もう画面は閉じたの印
}

-(void)viewDidAppear:(BOOL)animated
// ビューが表示された
{
	printSelf();
	[super viewDidAppear:animated];
	_fclosePopover=NO; // 画面を表示したの印
}

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

// target:selector=閉じるときの処理
-(void)open:(id)target_ selector:(SEL)selector_ bunsho:(Bunsho *)bunsho_ bunName:(NSString *)bunName_
{
	printSelf();

	app=getAppDelegate();
	setup=app.setup;
	
	target	=target_;
	selector=selector_;
	_bunsho	=bunsho_;
	bunName	=bunName_;
	// ここでnaviItemに設定しても無効
}

//----------------------------------------------
// ズームとスクロール
//----------------------------------------------

#if 0
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
	printSelf();
//	スクロール
}
#endif

- (void)scrollViewDidZoom:(ScrollView *)scrollView
{
	printSelfs(@"%f",scrollView.zoomScale);
	[scrollView contentSizeRecalc]; // スクロールエリア再設定(重要)
}

// UIScrollViewのデリゲート:ズーム対象のUIViewを返す
// これがないとズームしない
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView_
{
	printSelf();
	//	nslog(@"viewForZoomingInScrollView:scrollView=%@",scrollView_);
	if (scrollView_==_tehonScrollView) {
		// この中でzoom関連値をいじると再帰呼び出しになって無限ループに入ってしまう
		return _tehonImageView;
	}
	return nil;
}

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

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
    
    // Release any cached data, images, etc that aren't in use.
}

//----------------------------------------------
// 画面を回転して良いかどうか
// iOS6.0

-(BOOL)shouldAutorotate
{
	printSelf();
	return shouldAutorotateByMain();
}

- (NSUInteger)supportedInterfaceOrientations
{
	printSelf();
	return (supportedInterfaceOrientationsByMain());
}

@end
