| // |
| // 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 JSQMessagesBubbleImageFactory; |
| |
| /** |
| * An instance of `JSQMessagesMediaViewBubbleImageMasker` is an object that masks |
| * media views for a `JSQMessageMediaData` object. Given a view, it will mask the view |
| * with a bubble image for an outgoing or incoming media view. |
| * |
| * @see JSQMessageMediaData. |
| * @see JSQMessagesBubbleImageFactory. |
| * @see JSQMessagesBubbleImage. |
| */ |
| @interface JSQMessagesMediaViewBubbleImageMasker : NSObject |
| |
| /** |
| * Returns the bubble image factory that the masker uses to mask media views. |
| */ |
| @property (strong, nonatomic, readonly) JSQMessagesBubbleImageFactory *bubbleImageFactory; |
| |
| /** |
| * Creates and returns a new instance of `JSQMessagesMediaViewBubbleImageMasker` |
| * that uses a default instance of `JSQMessagesBubbleImageFactory`. The masker uses the `JSQMessagesBubbleImage` |
| * objects returned by the factory to mask media views. |
| * |
| * @return An initialized `JSQMessagesMediaViewBubbleImageMasker` object if created successfully, `nil` otherwise. |
| * |
| * @see JSQMessagesBubbleImageFactory. |
| * @see JSQMessagesBubbleImage. |
| */ |
| - (instancetype)init; |
| |
| /** |
| * Creates and returns a new instance of `JSQMessagesMediaViewBubbleImageMasker` |
| * having the specified bubbleImageFactory. The masker uses the `JSQMessagesBubbleImage` |
| * objects returned by the factory to mask media views. |
| * |
| * @param bubbleImageFactory An initialized `JSQMessagesBubbleImageFactory` object to use for masking media views. This value must not be `nil`. |
| * |
| * @return An initialized `JSQMessagesMediaViewBubbleImageMasker` object if created successfully, `nil` otherwise. |
| * |
| * @see JSQMessagesBubbleImageFactory. |
| * @see JSQMessagesBubbleImage. |
| */ |
| - (instancetype)initWithBubbleImageFactory:(JSQMessagesBubbleImageFactory *)bubbleImageFactory NS_DESIGNATED_INITIALIZER; |
| |
| /** |
| * Applies an outgoing bubble image mask to the specified mediaView. |
| * |
| * @param mediaView The media view to mask. |
| */ |
| - (void)applyOutgoingBubbleImageMaskToMediaView:(UIView *)mediaView; |
| |
| /** |
| * Applies an incoming bubble image mask to the specified mediaView. |
| * |
| * @param mediaView The media view to mask. |
| */ |
| - (void)applyIncomingBubbleImageMaskToMediaView:(UIView *)mediaView; |
| |
| /** |
| * A convenience method for applying a bubble image mask to the specified mediaView. |
| * This method uses the default instance of `JSQMessagesBubbleImageFactory`. |
| * |
| * @param mediaView The media view to mask. |
| * @param isOutgoing A boolean value specifiying whether or not the mask should be for an outgoing or incoming view. |
| * Specify `YES` for outgoing and `NO` for incoming. |
| */ |
| + (void)applyBubbleImageMaskToMediaView:(UIView *)mediaView isOutgoing:(BOOL)isOutgoing; |
| |
| @end |