BookmarkManager: Fix 'new folder text field size changes on clicking it' issue.
[chromium-blink-merge.git] / chrome / browser / ui / cocoa / info_bubble_view.h
blobb3b918a0b406acf54d0245e18a0defdf60690b79
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_UI_COCOA_INFO_BUBBLE_VIEW_H_
6 #define CHROME_BROWSER_UI_COCOA_INFO_BUBBLE_VIEW_H_
8 #import <Cocoa/Cocoa.h>
10 #include "base/mac/scoped_nsobject.h"
12 namespace info_bubble {
14 // These values are in view coordinates.
15 const CGFloat kBubbleArrowHeight = 8.0;
16 const CGFloat kBubbleArrowWidth = 15.0;
17 const CGFloat kBubbleCornerRadius = 2.0;
18 const CGFloat kBubbleArrowXOffset = kBubbleArrowWidth + kBubbleCornerRadius;
20 // Constants that define where the bubble will have rounded corners.
21 enum CornerFlags {
22 kRoundedTopCorners = 1,
23 kRoundedBottomCorners = 1 << 1,
24 kRoundedAllCorners = kRoundedTopCorners | kRoundedBottomCorners,
27 enum BubbleArrowLocation {
28 kTopLeft,
29 kTopCenter,
30 kTopRight,
31 kNoArrow,
34 enum BubbleAlignment {
35 // The tip of the arrow points to the anchor point.
36 kAlignArrowToAnchor,
37 // The edge nearest to the arrow is lined up with the anchor point.
38 kAlignEdgeToAnchorEdge,
39 // Align the right edge to the anchor point.
40 kAlignRightEdgeToAnchorEdge,
41 // Align the left edge to the anchor point.
42 kAlignLeftEdgeToAnchorEdge,
45 } // namespace info_bubble
47 // Content view for a bubble with an arrow showing arbitrary content.
48 // This is where nonrectangular drawing happens.
49 @interface InfoBubbleView : NSView {
50 @private
51 info_bubble::BubbleArrowLocation arrowLocation_;
52 info_bubble::BubbleAlignment alignment_;
53 info_bubble::CornerFlags cornerFlags_;
54 base::scoped_nsobject<NSColor> backgroundColor_;
57 @property(assign, nonatomic) info_bubble::BubbleArrowLocation arrowLocation;
58 @property(assign, nonatomic) info_bubble::BubbleAlignment alignment;
59 @property(assign, nonatomic) info_bubble::CornerFlags cornerFlags;
61 // Returns the point location in view coordinates of the tip of the arrow.
62 - (NSPoint)arrowTip;
64 // Gets and sets the bubble's background color.
65 - (NSColor*)backgroundColor;
66 - (void)setBackgroundColor:(NSColor*)backgroundColor;
68 @end
70 #endif // CHROME_BROWSER_UI_COCOA_INFO_BUBBLE_VIEW_H_