<commit_before>//
//  SCStackLayouterProtocol.h
//  SCStackViewController
//
//  Created by <NAME> on 16/08/2013.
//  Copyright (c) 2013 <NAME>. All rights reserved.
//

#import "SCStackViewController.h"

/** An object adopting the SCStackLayouter protocol is responsible for returning
 * the itermediate and final frames for the Stack's children when called. They 
 * have access the the actual children so that they can customize the navigation
 * effects at each point of the transition.
 */

@protocol SCStackLayouterProtocol <NSObject>

/** Returns the final frame for the given view controller
 *
 * @param viewController The view controller for which to calculate the frame
 * @param index The index of the view controller in the Stack's children array
 * @param position The position in the stack
 * @param viewController The full children array for the given position
 * @param stackController The calling StackViewController
 *
 * @return The frame for the viewController's view
 *
 */
- (CGRect)finalFrameForViewController:(UIViewController *)viewController
                            withIndex:(NSUInteger)index
                           atPosition:(SCStackViewControllerPosition)position
                          withinGroup:(NSArray *)viewControllers
                    inStackController:(SCStackViewController *)stackController;

/** Returns the intermediate frame for the given view controller and current
 * offset
 *
 * @param viewController The view controller for which to calculate the frame
 * @param index The index of the view controller in the Stack's children array
 * @param position The position in the stack
 * @param finalFrame previously calculate final frame for this view controller
 * @param contentOffset current offset in the Stack's scrollView
 * @param stackController The calling StackViewController
 *
 * @return The frame for the viewController's view
 *
 */
- (CGRect)currentFrameForViewController:(UIViewController *)viewController
                              withIndex:(NSUInteger)index
                             atPosition:(SCStackViewControllerPosition)position
                             finalFrame:(CGRect)finalFrame
                          contentOffset:(CGPoint)contentOffset
                      inStackController:(SCStackViewController *)stackController;

@optional

/**
 * @return BOOL value that controls whether this layouter reverses the
 * arrangement the children (from the bounds of the screen towards the rootView
 * and not the other way around)
 */
@property (nonatomic, assign) BOOL isReversed;


@property (nonatomic, assign) BOOL shouldStackControllersAboveRoot;

- (CGRect)currentFrameForRootViewController:(UIViewController *)rootViewController
                              contentOffset:(CGPoint)contentOffset
                          inStackController:(SCStackViewController *)stackController;

@end
<commit_msg>Added descriptions for the new properties and methods<commit_after>//
//  SCStackLayouterProtocol.h
//  SCStackViewController
//
//  Created by <NAME> on 16/08/2013.
//  Copyright (c) 2013 <NAME>. All rights reserved.
//

#import "SCStackViewController.h"

/** An object adopting the SCStackLayouter protocol is responsible for returning
 * the itermediate and final frames for the Stack's children when called. They 
 * have access the the actual children so that they can customize the navigation
 * effects at each point of the transition.
 */

@protocol SCStackLayouterProtocol <NSObject>

/** Returns the final frame for the given view controller
 *
 * @param viewController The view controller for which to calculate the frame
 * @param index The index of the view controller in the Stack's children array
 * @param position The position in the stack
 * @param viewController The full children array for the given position
 * @param stackController The calling StackViewController
 *
 * @return The frame for the viewController's view
 *
 */
- (CGRect)finalFrameForViewController:(UIViewController *)viewController
                            withIndex:(NSUInteger)index
                           atPosition:(SCStackViewControllerPosition)position
                          withinGroup:(NSArray *)viewControllers
                    inStackController:(SCStackViewController *)stackController;

/** Returns the intermediate frame for the given view controller and current
 * offset
 *
 * @param viewController The view controller for which to calculate the frame
 * @param index The index of the view controller in the Stack's children array
 * @param position The position in the stack
 * @param finalFrame previously calculate final frame for this view controller
 * @param contentOffset current offset in the Stack's scrollView
 * @param stackController The calling StackViewController
 *
 * @return The frame for the viewController's view
 *
 */
- (CGRect)currentFrameForViewController:(UIViewController *)viewController
                              withIndex:(NSUInteger)index
                             atPosition:(SCStackViewControllerPosition)position
                             finalFrame:(CGRect)finalFrame
                          contentOffset:(CGPoint)contentOffset
                      inStackController:(SCStackViewController *)stackController;


@optional



/** Returns the rootViewController's intermediate frame for
 * the given offset
 *
 * @param rootViewController the stack's root view controller
 * @param contentOffset current offset in the Stack's scrollView
 * @param stackController The calling StackViewController
 *
 * @return The frame for the rootViewController's view
 *
 */
- (CGRect)currentFrameForRootViewController:(UIViewController *)rootViewController
                              contentOffset:(CGPoint)contentOffset
                          inStackController:(SCStackViewController *)stackController;


/**
 * @return BOOL value that controls whether this layouter reverses the
 * arrangement the children (from the bounds of the screen towards the rootView
 * and not the other way around)
 */
@property (nonatomic, assign) BOOL isReversed;


/**
 * @return BOOL value that controls whether this layouter requires the
 * controllers to be stacked on top of the root view controller
 */
@property (nonatomic, assign) BOOL shouldStackControllersAboveRoot;


@end

{'fraction_non_alphanumeric': 0.061282660332541566, 'fraction_numerical': 0.003800475059382423, 'mean_word_length': 3.361878453038674, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5448375', 'n_tokens_mistral': 1502, 'n_tokens_neox': 1369, 'n_words': 580}