// 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. #ifndef CHROME_BROWSER_UI_COCOA_STYLED_TEXT_FIELD_CELL_H_ #define CHROME_BROWSER_UI_COCOA_STYLED_TEXT_FIELD_CELL_H_ #import <Cocoa/Cocoa.h> #import "chrome/browser/ui/cocoa/rect_path_utils.h" // StyledTextFieldCell customizes the look of the standard Cocoa text field. // The border and focus ring are modified, as is the drawing rect. Subclasses // can override |drawInteriorWithFrame:inView:| to provide custom drawing for // decorations, but they must make sure to call the superclass' implementation // with a modified frame after performing any custom drawing. @interface StyledTextFieldCell : NSTextFieldCell { } @end // Methods intended to be overridden by subclasses, not part of the public API // and should not be called outside of subclasses. @interface StyledTextFieldCell (ProtectedMethods) // Return the portion of the cell to show the text cursor over. The default // implementation returns the full |cellFrame|. Subclasses should override this // method if they add any decorations. - (NSRect)textCursorFrameForFrame:(NSRect)cellFrame; // Return the portion of the cell to use for text display. This corresponds to // the frame with our added decorations sliced off. The default implementation // returns the full |cellFrame|, as by default there are no decorations. // Subclasses should override this method if they add any decorations. - (NSRect)textFrameForFrame:(NSRect)cellFrame; // Offset from the top of the cell frame to the text frame. Defaults to 0. // Subclasses should - (CGFloat)topTextFrameOffset; // Offset from the bottom of the cell frame to the text frame. Defaults to 0. // Subclasses should - (CGFloat)bottomTextFrameOffset; // Radius of the corners of the field. Defaults to square corners (0.0). - (CGFloat)cornerRadius; // Which corners of the field to round. Defaults to RoundedAll. - (rect_path_utils::RoundedCornerFlags)roundedFlags; // Returns YES if a light themed bezel should be drawn under the text field. // Default implementation returns NO. - (BOOL)shouldDrawBezel; @end #endif // CHROME_BROWSER_UI_COCOA_STYLED_TEXT_FIELD_CELL_H_