blob: f84cf7a8c38f311506a4c1eaf2dcfa7e3a666145 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "ios/chrome/browser/ui/UIView+SizeClassSupport.h"
#import "base/logging.h"
#import "base/ios/ios_util.h"
#import "ios/chrome/browser/ui/ui_util.h"
namespace {
// Returns the SizeClassIdiom corresponding with |size_class|.
SizeClassIdiom GetSizeClassIdiom(UIUserInterfaceSizeClass size_class) {
switch (size_class) {
case UIUserInterfaceSizeClassCompact:
return COMPACT;
case UIUserInterfaceSizeClassRegular:
return REGULAR;
case UIUserInterfaceSizeClassUnspecified:
return UNSPECIFIED;
}
}
// Returns YES if |size_class| is not UIUserInterfaceSizeClassUnspecified.
bool IsSizeClassSpecified(UIUserInterfaceSizeClass size_class) {
return size_class != UIUserInterfaceSizeClassUnspecified;
}
} // namespace
@implementation UIView (SizeClassSupport)
- (SizeClassIdiom)cr_widthSizeClass {
UIWindow* keyWindow = [UIApplication sharedApplication].keyWindow;
UIUserInterfaceSizeClass sizeClass = self.traitCollection.horizontalSizeClass;
if (!IsSizeClassSpecified(sizeClass))
sizeClass = keyWindow.traitCollection.horizontalSizeClass;
return GetSizeClassIdiom(sizeClass);
}
- (SizeClassIdiom)cr_heightSizeClass {
UIWindow* keyWindow = [UIApplication sharedApplication].keyWindow;
UIUserInterfaceSizeClass sizeClass = self.traitCollection.verticalSizeClass;
if (!IsSizeClassSpecified(sizeClass))
sizeClass = keyWindow.traitCollection.verticalSizeClass;
return GetSizeClassIdiom(sizeClass);
}
@end