| Index: chrome/browser/cocoa/bubble_view.h
|
| ===================================================================
|
| --- chrome/browser/cocoa/bubble_view.h (revision 0)
|
| +++ chrome/browser/cocoa/bubble_view.h (revision 0)
|
| @@ -0,0 +1,65 @@
|
| +// Copyright (c) 2009 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 <Cocoa/Cocoa.h>
|
| +
|
| +#include "base/scoped_nsobject.h"
|
| +
|
| +// A view class that looks like a "bubble" with rounded corners and displays
|
| +// text inside. Can be themed with a GTMTheme object. To put flush
|
| +// against the sides of a window, the corner flags can be adjusted.
|
| +
|
| +@protocol GTMThemeDelegate;
|
| +
|
| +// Constants that define where the bubble will have a rounded corner. If
|
| +// not set, the corner will be square.
|
| +enum {
|
| + kRoundedTopLeftCorner = 1,
|
| + kRoundedTopRightCorner = 1 << 1,
|
| + kRoundedBottomLeftCorner = 1 << 2,
|
| + kRoundedBottomRightCorner = 1 << 3,
|
| + kRoundedAllCorners = kRoundedTopLeftCorner & kRoundedTopRightCorner &
|
| + kRoundedBottomLeftCorner & kRoundedBottomRightCorner
|
| +};
|
| +
|
| +// Constants that affect where the text is positioned within the view. They
|
| +// are exposed in case anyone needs to use the padding to set the content string
|
| +// length appropriately based on available space (such as eliding a URL).
|
| +enum {
|
| + kBubbleViewTextPositionX = 4,
|
| + kBubbleViewTextPositionY = 2
|
| +};
|
| +
|
| +@interface BubbleView : NSView {
|
| + @private
|
| + scoped_nsobject<NSString> content_;
|
| + unsigned long cornerFlags_;
|
| + // The window from which we get the theme used to draw. In some cases,
|
| + // it might not be the window we're in. As a result, this may or may not
|
| + // directly own us, so it needs to be weak to prevent a cycle.
|
| + NSWindow* themeProvider_;
|
| +}
|
| +
|
| +// Designated initializer. |provider| is the window from which we get the
|
| +// current theme to draw text and backgrounds. If nil, the current window will
|
| +// be checked. Defaults to all corners being rounded. The caller needs to
|
| +// ensure |provider| can't go away as it will not be retained.
|
| +- (id)initWithFrame:(NSRect)frame themeProvider:(NSWindow*)provider;
|
| +
|
| +// Sets the string displayed in the bubble. A copy of the string is made.
|
| +- (void)setContent:(NSString*)content;
|
| +
|
| +// Sets which corners will be rounded.
|
| +- (void)setCornerFlags:(unsigned long)flags;
|
| +
|
| +// The font used to display the content string.
|
| +- (NSFont*)font;
|
| +
|
| +@end
|
| +
|
| +// APIs exposed only for testing.
|
| +@interface BubbleView(TestingOnly)
|
| +- (NSString*)content;
|
| +- (unsigned long)cornerFlags;
|
| +@end
|
|
|
| Property changes on: chrome/browser/cocoa/bubble_view.h
|
| ___________________________________________________________________
|
| Name: svn:eol-style
|
| + LF
|
|
|
|
|