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 CHROME_BROWSER_UI_COCOA_NSVIEW_ADDITIONS_H_ 6 #define CHROME_BROWSER_UI_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 // Set the specified view to have a CoreAnimation layer if CoreAnimation is 36 // enabled at the command line. 37 - (void)cr_setWantsLayer:(BOOL)wantsLayer; 38 39 // Draw using ancestorView's drawRect function into this view's rect. Do any 40 // required translating or flipping to transform between the two coordinate 41 // systems. 42 - (void)cr_drawUsingAncestor:(NSView*)ancestorView inRect:(NSRect)rect; 43 44 // Used by ancestorView in the above draw call, to look up the child view that 45 // it is actually drawing to. 46 - (NSView*)cr_viewBeingDrawnTo; 47 48 @end 49 50 #endif // CHROME_BROWSER_UI_COCOA_NSVIEW_ADDITIONS_H_ 51