/************************************************************
|
* * Hyphenate CONFIDENTIAL
|
* __________________
|
* Copyright (C) 2016 Hyphenate Inc. All rights reserved.
|
*
|
* NOTICE: All information contained herein is, and remains
|
* the property of Hyphenate Inc.
|
* Dissemination of this information or reproduction of this material
|
* is strictly forbidden unless prior written permission is obtained
|
* from Hyphenate Inc.
|
*/
|
|
|
#import <UIKit/UIKit.h>
|
|
#import "EaseFaceView.h"
|
#import "EaseTextView.h"
|
#import "EaseRecordView.h"
|
#import "EaseChatBarMoreView.h"
|
#import "EaseChatToolbarItem.h"
|
|
#define kTouchToRecord NSEaseLocalizedString(@"message.toolBar.record.touch", @"hold down to talk")
|
#define kTouchToFinish NSEaseLocalizedString(@"message.toolBar.record.send", @"loosen to send")
|
|
|
|
@protocol EMChatToolbarDelegate;
|
@interface EaseChatToolbar : UIView
|
|
@property (weak, nonatomic) id<EMChatToolbarDelegate> delegate;
|
|
@property (nonatomic) UIImage *backgroundImage;
|
|
@property (nonatomic, readonly) EMChatToolbarType chatBarType;
|
|
@property (nonatomic, readonly) CGFloat inputViewMaxHeight;
|
|
@property (nonatomic, readonly) CGFloat inputViewMinHeight;
|
|
@property (nonatomic, readonly) CGFloat horizontalPadding;
|
|
@property (nonatomic, readonly) CGFloat verticalPadding;
|
|
@property (strong, nonatomic) NSArray *inputViewLeftItems;
|
|
@property (strong, nonatomic) NSArray *inputViewRightItems;
|
|
@property (strong, nonatomic) EaseTextView *inputTextView;
|
|
@property (strong, nonatomic) UIView *moreView;
|
|
@property (strong, nonatomic) UIView *faceView;
|
|
@property (strong, nonatomic) UIView *recordView;
|
|
- (instancetype)initWithFrame:(CGRect)frame
|
type:(EMChatToolbarType)type;
|
|
/**
|
* Initializa chat bar
|
* @param horizontalPadding default 8
|
* @param verticalPadding default 5
|
* @param inputViewMinHeight default 36
|
* @param inputViewMaxHeight default 150
|
* @param type default EMChatToolbarTypeGroup
|
*/
|
- (instancetype)initWithFrame:(CGRect)frame
|
horizontalPadding:(CGFloat)horizontalPadding
|
verticalPadding:(CGFloat)verticalPadding
|
inputViewMinHeight:(CGFloat)inputViewMinHeight
|
inputViewMaxHeight:(CGFloat)inputViewMaxHeight
|
type:(EMChatToolbarType)type;
|
|
/*!
|
@method
|
@brief 获取chatToolBar默认的高度
|
@discussion
|
@result 返回chatToolBar默认的高度
|
*/
|
+ (CGFloat)defaultHeight;
|
|
|
- (void)cancelTouchRecord;
|
|
/*!
|
@method
|
@brief 切换底部的菜单视图
|
@discussion
|
@param bottomView 待切换的菜单
|
@result
|
*/
|
- (void)willShowBottomView:(UIView *)bottomView;
|
|
@end
|
|
@protocol EMChatToolbarDelegate <NSObject>
|
|
@optional
|
|
/*
|
* 文字输入框开始编辑
|
*
|
* @param inputTextView 输入框对象
|
*/
|
- (void)inputTextViewDidBeginEditing:(EaseTextView *)inputTextView;
|
|
/*
|
* 文字输入框将要开始编辑
|
*
|
* @param inputTextView 输入框对象
|
*/
|
- (void)inputTextViewWillBeginEditing:(EaseTextView *)inputTextView;
|
|
/*
|
* 发送文字消息,可能包含系统自带表情
|
*
|
* @param text 文字消息
|
*/
|
- (void)didSendText:(NSString *)text;
|
|
/*
|
* 发送文字消息,可能包含系统自带表情
|
*
|
* @param text 文字消息
|
* @param ext 扩展消息
|
*/
|
- (void)didSendText:(NSString *)text withExt:(NSDictionary*)ext;
|
|
/*
|
* 在光标location位置处是否插入字符@
|
*
|
* @param location 光标位置
|
*/
|
- (BOOL)didInputAtInLocation:(NSUInteger)location;
|
|
/*
|
* 在光标location位置处是否删除字符@
|
*
|
* @param location 光标位置
|
*/
|
- (BOOL)didDeleteCharacterFromLocation:(NSUInteger)location;
|
|
/*
|
* 发送第三方表情,不会添加到文字输入框中
|
*
|
* @param faceLocalPath 选中的表情的本地路径
|
*/
|
- (void)didSendFace:(NSString *)faceLocalPath;
|
|
/*
|
* 按下录音按钮开始录音
|
*/
|
- (void)didStartRecordingVoiceAction:(UIView *)recordView;
|
|
/*
|
* 手指向上滑动取消录音
|
*/
|
- (void)didCancelRecordingVoiceAction:(UIView *)recordView;
|
|
/*
|
* 松开手指完成录音
|
*/
|
- (void)didFinishRecoingVoiceAction:(UIView *)recordView;
|
|
/*
|
* 当手指离开按钮的范围内时,主要为了通知外部的HUD
|
*/
|
- (void)didDragOutsideAction:(UIView *)recordView;
|
|
/*
|
* 当手指再次进入按钮的范围内时,主要也是为了通知外部的HUD
|
*/
|
- (void)didDragInsideAction:(UIView *)recordView;
|
|
@required
|
|
/*
|
* 高度变到toHeight
|
*/
|
- (void)chatToolbarDidChangeFrameToHeight:(CGFloat)toHeight;
|
|
@end
|