BBALightViewController.h 3.87 KB
//
//  BBALightViewController.h
//  BBAPods
//
//  Created by Deng,Yuguang on 05/06/2017.
//  Copyright © 2017 Baidu. All rights reserved.
//

#import "BBAUIViewController.h"
#import "BBASimpleBrowserToolBarModel.h"

/**
 *  目前仅支持这几种类型, TODO:这个应该是内部实现
 *
 */
typedef NS_ENUM(NSUInteger, BBASimpleBrowserToolBarStyle) {
    BBASimpleBrowserToolBarStyleNormal = 0,
    BBASimpleBrowserToolBarStyleFeed = 1,
    BBASimpleBrowserToolBarStyleCommentInput = 2,
    BBASimpleBrowserToolBarStyleCustom = 3
};

/**
 *  目前仅支持这几种菜单类型
 *
 */
typedef NS_ENUM(NSUInteger, BBASimpleBrowserMenuBarMode) {
    BBASimpleBrowserMenuBarModeMin,
    BBASimpleBrowserMenuBarModeH5, //h5页面-9.0废弃
    BBASimpleBrowserMenuBarModeFeed, // 9.0仅保留Feed菜单
    BBASimpleBrowserMenuBarModeNA, // 9.0废弃
    BBASimpleBrowserMenuBarModeFavor, //10.6 临时添加,处理收藏
    BBASimpleBrowserMenuBarModeMax
};

typedef void (^BBASimpleBrowserViewWillAppear)(void);
typedef void (^BBASimpleBrowserViewWillDisappear)(void);
typedef void (^BBASimpleBrowserViewDidDisappear)(void);
typedef void (^BBASimpleBrowserDismissBlock)(BOOL isExit);
typedef void (^BBASimpleBrowserMenuItemClickedHander)(NSUInteger buttonIndex);

@class BBALightViewController;
@class BBAToolBarItem;

@protocol BBALightViewControllerToolBarDataSource <NSObject>

/**
 *  通过toolBar 类型获取对应的mode数组
 *
 */
- (NSArray<BBAToolBarItem *> *)toolBarItemsInLightViewController:(BBALightViewController *)lightViewController
                                                          models:(NSArray<BBASimpleBrowserToolBarModel *> *)models
                                                           style:(BBASimpleBrowserToolBarStyle)aToolBarStyle;

@end

@class BBAPannelAction;
@protocol BBALightViewControllerMenuDataSource <NSObject>

/**
 *  通过toolBar 类型获取对应的mode数组
 *
 */
- (NSArray<BBAPannelAction *> *)menuItemsInLightViewController:(BBALightViewController *)lightViewController
                                                          mode:(BBASimpleBrowserMenuBarMode)menuMode;


@end


/**
 *  分离之前的轻流量框架中,和H5 无关的逻辑。支持顶、底部bar以及菜单
 *
 */
@class BBAPannelAction;

__attribute__ ((deprecated("该类已被废弃,请勿再使用")))
@interface BBALightViewController : BBAUIViewController
{
    BBASimpleBrowserMenuBarMode _menuBarMode;
    BBASimpleBrowserToolBarStyle _toolBarStyle;
    NSMutableArray<BBASimpleBrowserToolBarModel *> *_toolIdModels;
}

@property (nonatomic, copy) BBASimpleBrowserViewWillAppear viewWillAppearBlock;
@property (nonatomic, copy) BBASimpleBrowserViewWillDisappear viewWillDisappearBlock;
@property (nonatomic, copy) BBASimpleBrowserViewDidDisappear viewDidDisappearBlock;
@property (nonatomic, copy) BBASimpleBrowserDismissBlock dismissBlock;
@property (nonatomic, weak) id <BBALightViewControllerToolBarDataSource> toolBarDataSource;
@property (nonatomic, weak) id <BBALightViewControllerMenuDataSource> menuItemsDataSource;

/**
 *  更新底部toolbar样式
 *
 *  @param toolBarStyle BBASimpleBrowserToolBarStyle style
 *
 */
- (void)updateToolBarStyles:(BBASimpleBrowserToolBarStyle)toolBarStyle;

/**
 *  更新底部按钮id
 *
 *  @param toolIdModels NSMutableArray toolIdModels
 *
 */
- (void)updateToolBarIdModels:(NSMutableArray<BBASimpleBrowserToolBarModel *> *)toolIdModels;

/**
 *  刷新菜单类型
 *
 *  @param animated BOOL 是否开启动画
 */
- (void)updateToolBarMenu:(BOOL)animated;

/**
 *  刷新菜单
 *
 *  @param animated BOOL 是否开启动画
 */
- (void)updateMenu:(BOOL)animated;

/**
 *  根据toolbar icon类型,返回数据模型
 *
 */
- (BBASimpleBrowserToolBarModel *)_modelForIDType:(BBASimpleBrowserToolBarIDType)type;

/**
 *  返回当前是否收藏
 *  @discussion 虽然没有实现,但是BBABrowser仓库还在使用
 */
- (BOOL)isFavored;

@end