//
//  ColorSelect.m
//  ZeroRec
//
//  Created by AIG-Soft on 11/03/25.
//  Copyright 2011 AIG-Soft. All rights reserved.
//

#import "ColorSelect.h"
#import	"Setup.h"
#import "main.h"
#import "AppDelegate.h"
#import "click.h"

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

@implementation ColorSelect

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

// 列数を返す
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
	// 位置：色
	return MAX_COLUMN;
}

// 指定行の項目数を返す
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
	switch (component) {
		case COLUMN_POSITION: // 位置
			return MAX_ATRB_POSITION;
	}
	// case COLUMN_COLOR: // 色
	return COLORS;
}

#if 0
// 指定行項目の文字列を返す
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
	return [NSString stringWithFormat:@"%02d.%03d",component,row];
}
#else
// 指定行項目のUIViewオブジェクトを返す
// こちらのほうが優先される
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
	// iOS7上ではここでオブジェクトを生成しないと選択中項目の表示が抜けてしまう
	// iOS7上でSDK6までアプリを動かす場合も同様になる
	switch (component) {
		case COLUMN_POSITION: // 位置
		{
			UILabel *lbl=[[UILabel alloc]init]; // UIViewのサブクラスでないといけないので、NSStringではなくUILabelを使う
			lbl.text=positionArray[row];
			lbl.frame=CGRectMake(0,0,110,40);
			lbl.adjustsFontSizeToFitWidth=YES; // フォントサイズ調整可
			lbl.textAlignment=NSTextAlignmentCenter; // 中央寄せ
			[lbl sizeToFit];
			return lbl;
		}
	}
//	case COLUMN_COLOR: // 色
	UIView *vw=[[UIView alloc]init];
	vw.backgroundColor=getColor(row);
	vw.frame=CGRectMake(0,0,50,30);
	CALayer *layer=vw.layer;
	layer.cornerRadius  = 5; // ちょっと角を丸める
	layer.borderColor   = [UIColor blackColor].CGColor;
	layer.borderWidth   = 1;
	layer.masksToBounds = NO;
	layer.shadowOffset  = CGSizeMake(1, 2);
	layer.shadowRadius  = 4;
	layer.shadowOpacity = 0.3;
	return vw;
}
#endif

// 選択時に呼び出される
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
	nslog(@"選択:(%d,%d)",(int)row,(int)component);
	switch (component) {
		case COLUMN_POSITION: // 位置
			_position=row;	// 位置保存
			break;
		case COLUMN_COLOR: // 色
			_color=row;		// 色番号保存
			break;
	}
#if 0
	// ここにこれを入れると、選択直後に表示が変わる
	[pickerView reloadAllComponents]; // 項目の全読み込み直し
#endif
}

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

- (void)initColorSelect:(NSUInteger)pos color:(NSUInteger)col
{
	printSelf();
	nslog(@"position=%d,color=%d",(int)pos,(int)col);
	app		 =getAppDelegate();
	setup	 =app.setup;
	_position=pos;
	_color	 =col;
	
	// ボタン設定
	self.title=NSLocalizedString(@"ATRB",@"日時写し込み"); // titleプロパティへの代入
	self.navigationItem.leftBarButtonItem=	[[UIBarButtonItem alloc]initWithTitle:NSLocalStr(@"SAVE")
																		  style:UIBarButtonItemStyleDone
																		 target:self
																 action:@selector(closeColorSelect:)];
	// 位置要素作成
	positionArray=[setup setAtrbPositionArray];
}

-(void)closeColorSelect:(id)sender
{
	if ([self.delegate respondsToSelector:@selector(AtColorSelectClose:)]) {
		[self.delegate performSelector:@selector(AtColorSelectClose:) withObject:self];
	}
	// pickerを閉じる
	clickSound(); // クリック音
	[self.navigationController popViewControllerAnimated:YES];
}

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

-(void)viewWillAppear:(BOOL)animated
{
	printSelf();
	[super viewWillAppear:animated];
	
	// カーソル位置設定;ここでしないとうまくいかない
	[_pickerView selectRow:_position inComponent:COLUMN_POSITION animated:NO];
	[_pickerView selectRow:_color	 inComponent:COLUMN_COLOR	 animated:NO];
}

-(void)viewDidLoad
{
	printSelf();
    [super viewDidLoad];
	// デリゲートとソース設定;nib部なのでここに置く
	_pickerView.delegate  =self;
	_pickerView.dataSource=self;
	// 影
	CALayer *layer=_pickerView.layer;
	layer.masksToBounds = NO;
	layer.shadowOffset  = CGSizeMake(1, 2);
	layer.shadowRadius  = 5;
	layer.shadowOpacity = 0.5;
}

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

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

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

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

#ifdef DEBUG
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}
#endif


@end
