1 // Copyright (c) 2009 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_STYLED_TEXT_FIELD_CELL_H_ 6 #define CHROME_BROWSER_UI_COCOA_STYLED_TEXT_FIELD_CELL_H_ 7 #pragma once 8 9 #import <Cocoa/Cocoa.h> 10 11 typedef enum { 12 StyledTextFieldCellRoundedAll = 0, 13 StyledTextFieldCellRoundedLeft = 1 14 } StyledTextFieldCellRoundedFlags; 15 16 // StyledTextFieldCell customizes the look of the standard Cocoa text field. 17 // The border and focus ring are modified, as is the font baseline. Subclasses 18 // can override |drawInteriorWithFrame:inView:| to provide custom drawing for 19 // decorations, but they must make sure to call the superclass' implementation 20 // with a modified frame after performing any custom drawing. 21 22 @interface StyledTextFieldCell : NSTextFieldCell { 23 } 24 25 @end 26 27 // Methods intended to be overridden by subclasses, not part of the public API 28 // and should not be called outside of subclasses. 29 @interface StyledTextFieldCell (ProtectedMethods) 30 31 // Return the portion of the cell to show the text cursor over. The default 32 // implementation returns the full |cellFrame|. Subclasses should override this 33 // method if they add any decorations. 34 - (NSRect)textCursorFrameForFrame:(NSRect)cellFrame; 35 36 // Return the portion of the cell to use for text display. This corresponds to 37 // the frame with our added decorations sliced off. The default implementation 38 // returns the full |cellFrame|, as by default there are no decorations. 39 // Subclasses should override this method if they add any decorations. 40 - (NSRect)textFrameForFrame:(NSRect)cellFrame; 41 42 // Baseline adjust for the text in this cell. Defaults to 0. Subclasses should 43 // override as needed. 44 - (CGFloat)baselineAdjust; 45 46 // Radius of the corners of the field. Defaults to square corners (0.0). 47 - (CGFloat)cornerRadius; 48 49 // Which corners of the field to round. Defaults to RoundedAll. 50 - (StyledTextFieldCellRoundedFlags)roundedFlags; 51 52 // Returns YES if a light themed bezel should be drawn under the text field. 53 // Default implementation returns NO. 54 - (BOOL)shouldDrawBezel; 55 56 @end 57 58 #endif // CHROME_BROWSER_UI_COCOA_STYLED_TEXT_FIELD_CELL_H_ 59