// // MWPhotoBrowser_Private.h // MWPhotoBrowser // // Created by Michael Waterfall on 08/10/2013. // // #import #import #import #import #import "MWZoomingScrollView.h" // Declare private methods of browser @interface MWPhotoBrowser () { // Data NSUInteger _photoCount; NSMutableArray *_photos; NSMutableArray *_thumbPhotos; NSArray *_fixedPhotosArray; // Provided via init // Views UIScrollView *_pagingScrollView; // Paging & layout NSMutableSet *_visiblePages, *_recycledPages; NSUInteger _currentPageIndex; NSUInteger _previousPageIndex; CGRect _previousLayoutBounds; NSUInteger _pageIndexBeforeRotation; // Navigation & controls NSTimer *_controlVisibilityTimer; MBProgressHUD *_progressHUD; // Appearance BOOL _previousNavBarHidden; BOOL _previousNavBarTranslucent; UIBarStyle _previousNavBarStyle; UIColor *_previousNavBarTintColor; UIColor *_previousNavBarBarTintColor; UIBarButtonItem *_previousViewControllerBackButton; UIImage *_previousNavigationBarBackgroundImageDefault; UIImage *_previousNavigationBarBackgroundImageLandscapePhone; // Video AVPlayerViewController *_currentVideoPlayerViewController; AVPlayerItem *_currentVideoPlayerItem; NSUInteger _currentVideoIndex; UIActivityIndicatorView *_currentVideoLoadingIndicator; // Misc BOOL _hasBelongedToViewController; BOOL _isVCBasedStatusBarAppearance; BOOL _statusBarShouldBeHidden; BOOL _displayActionButton; BOOL _performingLayout; BOOL _rotating; BOOL _viewIsActive; // active as in it's in the view heirarchy BOOL _didSavePreviousStateOfNavBar; BOOL _skipNextPagingScrollViewPositioning; BOOL _viewHasAppearedInitially; } // Properties @property (nonatomic) UIActivityViewController *activityViewController; // Layout - (void)layoutVisiblePages; - (void)performLayout; - (BOOL)presentingViewControllerPrefersStatusBarHidden; // Paging - (void)tilePages; - (BOOL)isDisplayingPageForIndex:(NSUInteger)index; - (MWZoomingScrollView *)pageDisplayedAtIndex:(NSUInteger)index; - (MWZoomingScrollView *)pageDisplayingPhoto:(id)photo; - (MWZoomingScrollView *)dequeueRecycledPage; - (void)configurePage:(MWZoomingScrollView *)page forIndex:(NSUInteger)index; - (void)didStartViewingPageAtIndex:(NSUInteger)index; // Frames - (CGRect)frameForPagingScrollView; - (CGRect)frameForPageAtIndex:(NSUInteger)index; - (CGSize)contentSizeForPagingScrollView; - (CGPoint)contentOffsetForPageAtIndex:(NSUInteger)index; - (CGRect)frameForToolbarAtOrientation:(UIInterfaceOrientation)orientation; - (CGRect)frameForCaptionView:(MWCaptionView *)captionView atIndex:(NSUInteger)index; - (CGRect)frameForSelectedButton:(UIButton *)selectedButton atIndex:(NSUInteger)index; // Navigation - (void)updateNavigation; - (void)jumpToPageAtIndex:(NSUInteger)index animated:(BOOL)animated; - (void)gotoPreviousPage; - (void)gotoNextPage; // Controls - (void)cancelControlHiding; - (void)hideControlsAfterDelay; - (void)setControlsHidden:(BOOL)hidden animated:(BOOL)animated permanent:(BOOL)permanent; - (void)toggleControls; - (BOOL)areControlsHidden; // Data - (NSUInteger)numberOfPhotos; - (id)photoAtIndex:(NSUInteger)index; - (UIImage *)imageForPhoto:(id)photo; - (BOOL)photoIsSelectedAtIndex:(NSUInteger)index; - (void)setPhotoSelected:(BOOL)selected atIndex:(NSUInteger)index; - (void)loadAdjacentPhotosIfNecessary:(id)photo; - (void)releaseAllUnderlyingPhotos:(BOOL)preserveCurrent; @end