1
0
mirror of https://github.com/danog/Telegram.git synced 2024-12-12 09:29:55 +01:00
Telegram/Telegraph/TGMessageViewModel.h
2014-07-10 18:11:09 +04:00

90 lines
2.6 KiB
Objective-C

/*
* This is the source code of Telegram for iOS v. 1.1
* It is licensed under GNU GPL v. 2 or later.
* You should have received a copy of the license in this archive (see LICENSE).
*
* Copyright Peter Iakovlev, 2013.
*/
#import "TGModernViewModel.h"
@class TGUser;
@class TGMessage;
@class TGModernViewContext;
typedef struct {
CGFloat topInset;
CGFloat bottomInset;
CGFloat topInsetCollapsed;
CGFloat bottomInsetCollapsed;
CGFloat leftInset;
CGFloat rightInset;
CGFloat leftImageInset;
CGFloat rightImageInset;
CGFloat avatarInset;
CGFloat textFontSize;
CGFloat textBubblePaddingTop;
CGFloat textBubblePaddingBottom;
CGFloat textBubbleTextOffsetTop;
} TGMessageViewModelLayoutConstants;
#ifdef __cplusplus
extern "C" {
#endif
void TGMessageViewModelLayoutSetPreferredTextFontSize(CGFloat fontSize);
const TGMessageViewModelLayoutConstants *TGGetMessageViewModelLayoutConstants();
void TGUpdateMessageViewModelLayoutConstants();
#ifdef __cplusplus
}
#endif
@interface TGMessageViewModel : TGModernViewModel
{
TGModernViewContext *_context;
int32_t _mid;
int _collapseFlags;
bool _editing;
bool _needsEditingCheckButton;
}
@property (nonatomic) bool needsRelativeBoundsUpdates;
@property (nonatomic) bool needsAvatar;
@property (nonatomic) int collapseFlags;
- (instancetype)initWithAuthor:(TGUser *)author context:(TGModernViewContext *)context;
- (void)setAuthorAvatarUrl:(NSString *)authorAvatarUrl;
- (void)updateAssets;
- (void)refreshMetrics;
- (void)updateMessage:(TGMessage *)message viewStorage:(TGModernViewStorage *)viewStorage;
- (void)relativeBoundsUpdated:(CGRect)bounds;
- (void)imageDataInvalidated:(NSString *)imageUrl;
- (CGRect)effectiveContentFrame;
- (CGRect)effectiveContentImageFrame;
- (UIImage *)effectiveContentImage;
- (UIView *)referenceViewForImageTransition;
- (void)setTemporaryHighlighted:(bool)temporaryHighlighted viewStorage:(TGModernViewStorage *)viewStorage;
- (void)updateProgress:(bool)progressVisible progress:(float)progress viewStorage:(TGModernViewStorage *)viewStorage;
- (void)updateMediaAvailability:(bool)mediaIsAvailable viewStorage:(TGModernViewStorage *)viewStorage;
- (void)updateMediaVisibility;
- (void)updateMessageAttributes;
- (void)updateEditingState:(UIView *)container viewStorage:(TGModernViewStorage *)viewStorage animationDelay:(NSTimeInterval)animationDelay;
- (void)updateInlineMediaContext;
- (void)updateAnimationsEnabled;
- (void)stopInlineMedia;
- (void)bindSpecialViewsToContainer:(UIView *)container viewStorage:(TGModernViewStorage *)viewStorage atItemPosition:(CGPoint)itemPosition;
@end