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