chromium/ios/chrome/browser/ui/toolbar/buttons/toolbar_component_options.h

// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_CHROME_BROWSER_UI_TOOLBAR_BUTTONS_TOOLBAR_COMPONENT_OPTIONS_H_
#define IOS_CHROME_BROWSER_UI_TOOLBAR_BUTTONS_TOOLBAR_COMPONENT_OPTIONS_H_

// List of different SizeClass states. If a Visibility Mask bit is TRUE then the
// component could be visible for that SizeClass. In order for a component to be
// visible it needs to meet all current conditions.
typedef NS_OPTIONS(NSUInteger, ToolbarComponentVisibility) {
  // Default option, the component will never be visible.
  ToolbarComponentVisibilityNone = 0,
  // Use this option when the component should be visible in CompactWidth x
  // CompactHeight.
  ToolbarComponentVisibilityCompactWidthCompactHeight = 1 << 0,
  // Use this option when the component should be visible in CompactWidth x
  // CompactHeight.
  ToolbarComponentVisibilityRegularWidthCompactHeight = 1 << 1,
  // Use this option when the component should be visible in CompactWidth x
  // RegularHeight.
  ToolbarComponentVisibilityCompactWidthRegularHeight = 1 << 2,
  // Use this option when the component should be visible in
  // RegularWidth x RegularHeight.
  ToolbarComponentVisibilityRegularWidthRegularHeight = 1 << 3,
  // Use this option when the component should always be visible.
  ToolbarComponentVisibilityAlways =
      (ToolbarComponentVisibilityRegularWidthRegularHeight |
       ToolbarComponentVisibilityRegularWidthCompactHeight |
       ToolbarComponentVisibilityCompactWidthCompactHeight |
       ToolbarComponentVisibilityCompactWidthRegularHeight),
  // Use this option when the component should be visible when the toolbar is
  // split.
  ToolbarComponentVisibilitySplit =
      ToolbarComponentVisibilityCompactWidthRegularHeight,
};

#endif  // IOS_CHROME_BROWSER_UI_TOOLBAR_BUTTONS_TOOLBAR_COMPONENT_OPTIONS_H_