//
//  MVMCoreUIViewConstrainingProtocol.h
//  MVMCoreUI
//
//  Created by Scott Pfeil on 6/3/19.
//  Copyright © 2019 Verizon Wireless. All rights reserved.
//

#import <UIKit/UIKit.h>

@protocol MVMCoreUIViewConstrainingProtocol <NSObject>

@optional

/// Notifies the creator that the view may not be suitable to be shown on its own and it needs to be added to a view to help with layout.
- (BOOL)needsToBeConstrained;

/// The alignment if constrained.
- (UIStackViewAlignment)alignment;

/// Can be used to override any standard constraints that may be added.
- (BOOL)useStandardConstraints;

/// Determines if the constraining view will copy the background color of the delegate.
- (BOOL)copyBackgroundColor;

/// Will align if it can.
- (void)alignHorizontal:(UIStackViewAlignment)alignment;
- (void)alignVertical:(UIStackViewAlignment)alignment;

/// Containing Views can tell the contained if they should use horizontal margins.
- (void)shouldSetHorizontalMargins:(BOOL)shouldSet;

/// Containing Views can tell the contained if they should use vertical margins.
- (void)shouldSetVerticalMargins:(BOOL)shouldSet;

@end
