//
//  RotationViewController.h
//
//  Created by AIG-Soft 2011/06/22
//  Copyright 2011 AIG-Soft. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "S7GraphView.h"
#import "HelpViewController.h"
#import "LimitedSymbol.h"
#import	"RotationControl.h"

@class RotationViewController;

@protocol RotationViewControllerDelegate <NSObject>
@optional
-(void)AtRotationViewControllerClose:(RotationViewController *)rotationVC;
@end

#define TM_ALARM_DISPLAY	(3.0)	// アラームシンボル表示秒

enum { // 表示するグラフの軸種類:gno=btn.tag値
	BTN_SET		=-3,
	BTN_RESET	=-2,
	BTN_HELP	=-1,
	// 此処から先にGRAPH_*が入る
};

enum { // fmoveThresholdに与える値
	MOVE_THRESHOLD_NONE=0,	// 処理しない
	MOVE_THRESHOLD1,		// (1)を移動
	MOVE_THRESHOLD2,		// (2)を移動
	MOVE_THRESHOLD_SET,		// 設定開始
};


@interface RotationViewController : UIViewController
<
S7GraphViewDataSource,
UIActionSheetDelegate,
RotationControlStoreData
>
{
	// グラフ制御
	S7GraphView		*graphViewAxisGrid;	// 軸表示用
	S7GraphView		*graphView;			// グラフ表示用
										// 同じにもできるが、その場合グラフと軸を同時に描画しないと軸が消えてしまう
	// グラフのｘ軸
	NSMutableArray	*gxArray;	
	// グラフ表示制御
	BOOL		fGraph[MAX_GRAPH];		// グラフの一時的な表示on/off
	IBOutlet	__weak	UIView		*forGraph;	// グラフ表示用View（グラフ表示範囲）
	IBOutlet	__weak	UIImageView	*imgAxis;	// 軸画像
	// データ即値を表示するラベル
	IBOutlet	__weak	UILabel		*lblName;	// データ名
	IBOutlet	__weak	UILabel		*xData;		// 即値表示ラベル（グラフ上は全てy軸）
	IBOutlet	__weak	UILabel		*yData;
	IBOutlet	__weak	UILabel		*zData;
	IBOutlet	__weak	UILabel		*xLabel;	// データ種表示ラベル
	IBOutlet	__weak	UILabel		*yLabel;
	IBOutlet	__weak	UILabel		*zLabel;
	
	// 上下限なしPeak(生Peak)/設定済みしきい値（切り替え表示）
	IBOutlet	__weak	UIView		*forPeakThres;			// 表示用View
	IBOutlet	__weak	UILabel		*LblPeakThresName;		// 名称
	IBOutlet	__weak	UILabel		*LblPeakThresX;
	IBOutlet	__weak	UILabel		*LblPeakThresY;
	IBOutlet	__weak	UILabel		*LblPeakThresZ;
	IBOutlet	__weak	UILabel		*LblPeakThresX1;
	IBOutlet	__weak	UILabel		*LblPeakThresY1;
	IBOutlet	__weak	UILabel		*LblPeakThresZ1;
	IBOutlet	__weak	UILabel		*LblPeakThresX2;
	IBOutlet	__weak	UILabel		*LblPeakThresY2;
	IBOutlet	__weak	UILabel		*LblPeakThresZ2;
	NSUInteger	fdispLblPeakThres;	// 現在の表示内容
	//
	NSUInteger	fmoveThreshold;
	
	// 動作制御
	IBOutlet	__weak	UISegmentedControl	*SegSelectData;
	IBOutlet	__weak	UILabel		*LblSelectData;
	IBOutlet	__weak	UILabel		*LblSwPause;
	IBOutlet	__weak	UISwitch	*swPause;
	IBOutlet	__weak	UIButton	*btnALL;		// "全"
	IBOutlet	__weak	UIButton	*btnX;			// 色のコピーのため
	IBOutlet	__weak	UIButton	*btnY;			// 　同上
	IBOutlet	__weak	UIButton	*btnZ;			// 　同上
	IBOutlet	__weak	UIButton	*btnSet;		// 設定
	IBOutlet	__weak	UIButton	*btnInit;		// 初期化
	IBOutlet	__weak	UIImageView	*imgAlarm;		// アラームシンボル
	LimitedSymbol	*alarmSymbol;			// その制御用
	
	UIActionSheet	*asheet;				// アクションシート

	// タッチ動作制御
	CGPoint				startPoint;		// タッチ開始位置
}
@property (nonatomic,weak) id <RotationViewControllerDelegate> delegate;
@property (nonatomic,weak) RotationControl *rotationControl;	// データ制御

-(id)initWithSampling:(NSUInteger)sampling selectData:(NSUInteger)selectData rotationControl:(RotationControl *)rotationControl;
//
//-(IBAction)updateSegment:(id)sender;
//-(IBAction)updateSwitch:(id)sender;
//-(IBAction)updateButton:(id)sender;

-(void)resetThreshold;
-(void)reDispThresholdLine;

enum { // fdispLblPeakThresの値
	DISP_LblPeakThres_None=0,
	DISP_LblPeakThres_Axis,
	DISP_LblPeakThres_Threshold,
	DISP_LblPeakThres_Peak
};
-(void)dispLblPeakThres:(NSString *)numstr gno:(NSUInteger)no result:(NSUInteger)result;
-(void)setDispLblPeakThres;
-(void)setDispLblPeakThres:(NSUInteger)fdispLblPeakThres_;

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

@end

