| // Copyright 2023 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_BUBBLE_UI_BUNDLED_BUBBLE_CONSTANTS_H_ |
| #define IOS_CHROME_BROWSER_BUBBLE_UI_BUNDLED_BUBBLE_CONSTANTS_H_ |
| |
| #import <Foundation/Foundation.h> |
| |
| // Accessibility identifier for the close button. |
| extern NSString* const kBubbleViewCloseButtonIdentifier; |
| // Accessibility identifier for the title label. |
| extern NSString* const kBubbleViewTitleLabelIdentifier; |
| // Accessibility identifier for the label. |
| extern NSString* const kBubbleViewLabelIdentifier; |
| // Accessibility identifier for the image view. |
| extern NSString* const kBubbleViewImageViewIdentifier; |
| // Accessibility identifier for the snooze button. |
| extern NSString* const kBubbleViewSnoozeButtonIdentifier; |
| // Accessibility identifier for the arrow view. |
| extern NSString* const kBubbleViewArrowViewIdentifier; |
| // How long, in seconds, the bubble is visible on the screen. |
| extern NSTimeInterval const kBubbleVisibilityDuration; |
| // How long, in seconds, the default "long duration" bubbles are visible. |
| extern NSTimeInterval const kDefaultLongDurationBubbleVisibility; |
| |
| // Metric name for bubble dismissal tracking. |
| extern const char kUMAIPHDismissalReason[]; |
| |
| // Metric name for gestural bubble dismissal tracking. |
| extern const char kUMAGesturalIPHDismissalReason[]; |
| |
| // Direction for the bubble to point. |
| typedef NS_ENUM(NSInteger, BubbleArrowDirection) { |
| // Bubble is below the target UI element and the arrow is pointing up. |
| BubbleArrowDirectionUp, |
| // Bubble is above the target UI element and the arrow is pointing down. |
| BubbleArrowDirectionDown, |
| // Bubble is on the trailing side of the target UI element and the arrow is |
| // pointing to the leadng edge. |
| BubbleArrowDirectionLeading, |
| // Bubble is on the leading side of the target UI element and the arrow is |
| // pointing to the trailing edge. |
| BubbleArrowDirectionTrailing, |
| }; |
| |
| // Alignment of the bubble's arrow relative to the rest of the bubble. |
| typedef NS_ENUM(NSInteger, BubbleAlignment) { |
| // When bubble arrow direction is up or down, arrow is aligned to the leading |
| // edge of the bubble; if arrow direction is leading or trailing, arrow is |
| // aligned to the top edge of the bubble. |
| BubbleAlignmentTopOrLeading, |
| // Arrow is center aligned on the bubble. |
| BubbleAlignmentCenter, |
| // When bubble arrow direction is up or down, arrow is aligned to the trailing |
| // edge of the bubble; if arrow direction is leading or trailing, arrow is |
| // aligned to the bottom edge of the bubble. |
| BubbleAlignmentBottomOrTrailing, |
| }; |
| |
| // Type of bubble views. BubbleViewTypeDefault uses sizeThatFits for its size, |
| // the other types use the full screen width with a maximum limit size. |
| typedef NS_ENUM(NSInteger, BubbleViewType) { |
| // Bubble view with text. |
| BubbleViewTypeDefault, |
| // Bubble view with text and close button. |
| BubbleViewTypeWithClose, |
| // Bubble view with title, text and image. |
| BubbleViewTypeRich, |
| // Bubble view with title, text, image and snooze button. |
| BubbleViewTypeRichWithSnooze, |
| }; |
| |
| // Possible types of dismissal reasons. |
| // These enums are persisted as histogram entries, so this enum should be |
| // treated as append-only and kept in sync with InProductHelpDismissalReason in |
| // enums.xml. |
| enum class IPHDismissalReasonType { |
| kUnknown = 0, |
| kTimedOut = 1, |
| kOnKeyboardHide = 2, |
| kTappedIPH = 3, |
| // kTappedOutside = 4 // Removed, split into kTappedOutsideIPHAndAnchorView |
| // and kTappedAnchorView. |
| kTappedClose = 5, |
| kTappedSnooze = 6, |
| kTappedOutsideIPHAndAnchorView = 7, |
| kTappedAnchorView = 8, |
| kVoiceOverAnnouncementEnded = 9, |
| kSwipedAsInstructedByGestureIPH = 10, |
| kMaxValue = kSwipedAsInstructedByGestureIPH, |
| }; |
| |
| |
| #endif // IOS_CHROME_BROWSER_BUBBLE_UI_BUNDLED_BUBBLE_CONSTANTS_H_ |