1// Copyright (c) 2011 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.
4
5#ifndef UI_BASE_COCOA_NSVIEW_ADDITIONS_H_
6#define UI_BASE_COCOA_NSVIEW_ADDITIONS_H_
7
8#import <Cocoa/Cocoa.h>
9
10@interface NSView (ChromeAdditions)
11
12// Returns the line width that will generate a 1 pixel wide line.
13- (CGFloat)cr_lineWidth;
14
15// Checks if the mouse is currently in this view.
16- (BOOL)cr_isMouseInView;
17
18// Returns YES if this view is below |otherView|.
19- (BOOL)cr_isBelowView:(NSView*)otherView;
20
21// Returns YES if this view is aobve |otherView|.
22- (BOOL)cr_isAboveView:(NSView*)otherView;
23
24// Ensures that the z-order of |subview| is correct relative to |otherView|.
25- (void)cr_ensureSubview:(NSView*)subview
26            isPositioned:(NSWindowOrderingMode)place
27              relativeTo:(NSView *)otherView;
28
29// Return best color for keyboard focus ring.
30- (NSColor*)cr_keyboardFocusIndicatorColor;
31
32// Set needsDisplay for this view and all descendants.
33- (void)cr_recursivelySetNeedsDisplay:(BOOL)flag;
34
35// Draw using ancestorView's drawRect function into this view's rect. Do any
36// required translating or flipping to transform between the two coordinate
37// systems.
38- (void)cr_drawUsingAncestor:(NSView*)ancestorView inRect:(NSRect)rect;
39
40// Used by ancestorView in the above draw call, to look up the child view that
41// it is actually drawing to.
42- (NSView*)cr_viewBeingDrawnTo;
43
44@end
45
46#endif  // UI_BASE_COCOA_NSVIEW_ADDITIONS_H_
47