blob: fc4f816d89b77ffd159a931b4afaf52ac0444de0 [file] [log] [blame]
//
// Created by Jesse Squires
// http://www.jessesquires.com
//
//
// Documentation
// http://cocoadocs.org/docsets/JSQMessagesViewController
//
//
// GitHub
// https://github.com/jessesquires/JSQMessagesViewController
//
//
// License
// Copyright (c) 2014 Jesse Squires
// Released under an MIT license: http://opensource.org/licenses/MIT
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@class JSQMessagesCollectionViewFlowLayout;
@protocol JSQMessageData;
/**
* The `JSQMessagesBubbleSizeCalculating` protocol defines the common interface through which
* an object provides layout information to an instance of `JSQMessagesCollectionViewFlowLayout`.
*
* A concrete class that conforms to this protocol is provided in the library.
* See `JSQMessagesBubbleSizeCalculator`.
*/
@protocol JSQMessagesBubbleSizeCalculating <NSObject>
/**
* Computes and returns the size of the `messageBubbleImageView` property
* of a `JSQMessagesCollectionViewCell` for the specified messageData at indexPath.
*
* @param messageData A message data object.
* @param indexPath The index path at which messageData is located.
* @param layout The layout object asking for this information.
*
* @return A sizes that specifies the required dimensions to display the entire message contents.
* Note, this is *not* the entire cell, but only its message bubble.
*/
- (CGSize)messageBubbleSizeForMessageData:(id<JSQMessageData>)messageData
atIndexPath:(NSIndexPath *)indexPath
withLayout:(JSQMessagesCollectionViewFlowLayout *)layout;
/**
* Notifies the receiver that the layout will be reset.
* Use this method to clear any cached layout information, if necessary.
*
* @param layout The layout object notifying the receiver.
*/
- (void)prepareForResettingLayout:(JSQMessagesCollectionViewFlowLayout *)layout;
@end