//
//  WYSegmentView.h
//  GengMei
//
//  Created by wangyang on 13-8-9.
//  Copyright (c) 2015 Gengmei. All rights reserved.
//

#import "GMView.h"

typedef NS_ENUM(NSUInteger, WYSegmentViewWidthStyle) {
    WYSegmentViewWidthStyleFixed, // Segment width is fixed
    WYSegmentViewWidthStyleDynamic, // Segment width will only be as big as the text width (including inset)
};

@interface WYSegmentView : GMView

/**
 *	数组的内容是要显示的 button title,设置该属性后,button 将会被自动添加,详见其 set 方法
 */
@property (nonatomic, strong) NSArray *sectionTitles;

@property (nonatomic, readonly) NSInteger selectedSegmentIndex;

@property (nonatomic, copy) void (^didSelectedBlock)(NSUInteger index);

- (void)layoutSegments;
- (void)setSelectedSegmentIndex:(NSInteger)selectedSegmentIndex animated:(BOOL)animated;
#pragma mark - 自定义UI

// 没有使用 GMScrollView是想把这个 segment view做得更独立一些
@property (nonatomic, readonly) UIScrollView *scrollView;
@property (nonatomic, readonly) UIView *bottomLine;

/**
 *  @author wangyang, 16-02-17 15:02:53
 *
 *  @brief 默认是Dynamic
 *  @since 1.0
 */
@property (nonatomic, assign) WYSegmentViewWidthStyle widthStyle;


/**
 *  @author wangyang, 16-02-15 18:02:32
 *
 *  @brief button之间的间距
 *  @since 1.0
 */
@property (nonatomic, assign) CGFloat innerSpace;

/**
 *  @author wangyang, 16-02-16 10:02:51
 *
 *  @brief button在计算宽度时会将这个这个padding算在内,左右各加一个 itemHorizonalPadding,即buttonWidth = buttonTitleWidth + 2 * itemHorizonalPadding
 *  @since 1.0
 */
@property (nonatomic, assign) CGFloat itemHorizonalPadding;

@property (nonatomic, strong) NSDictionary *titleTextAttributes;
@property (nonatomic, strong) NSDictionary *selectedTitleTextAttributes;

/**
 *  @author wangyang, 16-02-17 11:02:24
 *
 *  @brief 实现这个block,以便继续自定义button的UI。比如添加背景色,边框等
 *  @since 1.0
 */
@property (nonatomic, copy) void (^customButtonUI) (UIButton *button);

/**
 *  @author wangyang, 16-02-15 18:02:19
 *
 *  @brief 是否显示指示器。默认为NO
 *  @since 1.0
 */
@property (nonatomic, assign) BOOL showIndicator;
@property (nonatomic, strong) UIColor *indicatorColor;

/**
 *  @author wangyang, 16-02-17 16:02:38
 *
 *  @brief 默认为0,此时indicator.width与button的标题一样长。
 *  @since 1.0
 */
@property (nonatomic, assign) CGFloat indicatorHorizonalPadding;
/**
 *  @author wangyang, 16-02-17 15:02:17
 *
 *  @brief 自定义 indicator 的位置
 *  @param indicator 指示符
 *  @param button    待指示的button
 *  @since 1.0
 */
@property (nonatomic, copy) void (^customIndicatorConstraint) (UIView *indicator, UIButton *button);

@end