blob: d883a129bc900c7b93e8d38042a051adeeeb8932 [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>
#import "JSQMessagesBubbleImage.h"
/**
* `JSQMessagesBubbleImageFactory` is a factory that provides a means for creating and styling
* `JSQMessagesBubbleImage` objects to be displayed in a `JSQMessagesCollectionViewCell` of a `JSQMessagesCollectionView`.
*/
@interface JSQMessagesBubbleImageFactory : NSObject
/**
* Creates and returns a new instance of `JSQMessagesBubbleImageFactory` that uses the
* default bubble image assets and cap insets.
*
* @return An initialized `JSQMessagesBubbleImageFactory` object if created successfully, `nil` otherwise.
*/
- (instancetype)init;
/**
* Creates and returns a new instance of `JSQMessagesBubbleImageFactory` having the specified
* bubbleImage and capInsets. These values are used internally in the factory to produce
* `JSQMessagesBubbleImage` objects.
*
* @param bubbleImage A template bubble image from which all images will be generated.
* The image should represent the *outgoing* message bubble image, which will be flipped
* horizontally for generating the corresponding *incoming* message bubble images. This value must not be `nil`.
*
* @param capInsets The values to use for the cap insets that define the unstretchable regions of the image.
* Specify `UIEdgeInsetsZero` to have the factory create insets that allow the image to stretch from its center point.
*
* @return An initialized `JSQMessagesBubbleImageFactory` object if created successfully, `nil` otherwise.
*/
- (instancetype)initWithBubbleImage:(UIImage *)bubbleImage capInsets:(UIEdgeInsets)capInsets;
/**
* Creates and returns a `JSQMessagesBubbleImage` object with the specified color for *outgoing* message image bubbles.
* The `messageBubbleImage` property of the `JSQMessagesBubbleImage` is configured with a flat bubble image, masked to the given color.
* The `messageBubbleHighlightedImage` property is configured similarly, but with a darkened version of the given color.
*
* @param color The color of the bubble image in the image view. This value must not be `nil`.
*
* @return An initialized `JSQMessagesBubbleImage` object if created successfully, `nil` otherwise.
*/
- (JSQMessagesBubbleImage *)outgoingMessagesBubbleImageWithColor:(UIColor *)color;
/**
* Creates and returns a `JSQMessagesBubbleImage` object with the specified color for *incoming* message image bubbles.
* The `messageBubbleImage` property of the `JSQMessagesBubbleImage` is configured with a flat bubble image, masked to the given color.
* The `messageBubbleHighlightedImage` property is configured similarly, but with a darkened version of the given color.
*
* @param color The color of the bubble image in the image view. This value must not be `nil`.
*
* @return An initialized `JSQMessagesBubbleImage` object if created successfully, `nil` otherwise.
*/
- (JSQMessagesBubbleImage *)incomingMessagesBubbleImageWithColor:(UIColor *)color;
@end