//
//  NvBeautyView.h
//  SDKDemo
//
//  Created by ms20180425 on 2018/6/4.
 //
//

#import <UIKit/UIKit.h>
#import "NvSwitchView.h"
#import "NvBeautyTypeCViewCell.h"

@class NvBeautyView;
@protocol NvBeautyViewDelegate <NSObject>
@optional

/**
 选择或调节一个美颜、美型特效回调

 @param beautyView 当前NvBeautyView对象，self
 @param model 当前美颜、美型数据model
 @param state 为true的时候要记录数据，所以false标识拖动滑杆中，true标识拖动结束，如果只是一个开关，美颜滑杆，传true
 */
- (void)nvBeautyView:(NvBeautyView *)beautyView withModel:(NvBeautyTypeModel *)model withState:(BOOL)state;

/**
 美型重置按钮点击的回调

 @param beautyView 当前NvBeautyView对象，self
 @param array 回调的美型数据，一个NvBeautyTypeModel的数组
 */
- (void)nvBeautyView:(NvBeautyView *)beautyView withModelArray:(NSMutableArray *)array;

@end

@interface NvBeautyView : UIView

//美颜点击按钮——切换当前显示视图为美颜
@property (nonatomic, strong) UIButton *beautyBtn;

//美型点击按钮——切换当前显示视图为美型
@property (nonatomic, strong) UIButton *beautyTypeBtn;

//美颜开关按钮
@property (nonatomic, strong) NvSwitchView *beautySwitch;

//美型开关按钮
@property (nonatomic, strong) NvSwitchView *beautyTypeSwitch;

@property (nonatomic, weak) id<NvBeautyViewDelegate> delegate;

//true显示美颜视图，false显示美型视图
@property (nonatomic, assign) BOOL hiddenBool;

/**
 用户美颜、美型的交互处理

 @param edit true标识该美颜、美型是打开，false标识该美颜、美型是关闭
 @param type true标识正在操作的是美颜，false标识正在操作的是美型
 */
- (void)editBool:(BOOL)edit withType:(BOOL)type;

/**
 配置美型数据

 @param array 一个NvBeautyTypeModel的数组
 */
- (void)configBeautyByteArray:(NSMutableArray*)array;

/**
 配置美颜数据

 @param array 一个NvBeautyTypeModel的数组
 */
- (void)configBeautyArray:(NSMutableArray*)array;

/**
 配置基础滤镜和锐化数据

 @param filter 基础滤镜数据，类型NvBeautyTypeModel
 @param sharpen 锐化数据，类型NvBeautyTypeModel
 */
- (void)configBeautyFilter:(NvBeautyTypeModel *)filter withSharpen:(NvBeautyTypeModel *)sharpen;

@end
