autofill_textfield.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
1// Copyright (c) 2013 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_AUTOFILL_AUTOFILL_TEXTFIELD_H_ 6#define CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_TEXTFIELD_H_ 7 8#import <Cocoa/Cocoa.h> 9 10#include "base/mac/scoped_nsobject.h" 11#include "chrome/browser/ui/cocoa/autofill/autofill_input_field.h" 12 13// Text field used for text inputs inside Autofill. 14// Provides a red outline when the contents are marked invalid. 15@interface AutofillTextField : NSTextField<AutofillInputField, 16 NSTextFieldDelegate> { 17 @private 18 id<AutofillInputDelegate> inputDelegate_; 19 base::scoped_nsobject<NSString> validityMessage_; 20 21 // |shouldFilterFirstClick_| ensures only the very first click after 22 // -becomeFirstResponder: is treated specially. 23 BOOL shouldFilterClick_; 24 25 // YES if the field is currently handling a click that caused the field to 26 // become first responder. 27 BOOL handlingFirstClick_; 28} 29 30// Can be invoked by field editor to forward mouseDown messages from the field 31// editor to the AutofillTextField. 32- (void)onEditorMouseDown:(id)sender; 33 34// Returns the frame reserved for the decoration set on the cell. 35- (NSRect)decorationFrame; 36 37@end 38 39@interface AutofillTextFieldCell : NSTextFieldCell<AutofillInputCell> { 40 @private 41 BOOL invalid_; 42 NSString* defaultValue_; 43 base::scoped_nsobject<NSImage> icon_; 44 45 // The size of the decoration for the field. This is most commonly the 46 // |icon_|'s size, but can also be used to reserve space for a decoration that 47 // is not drawn by this cell. 48 NSSize decorationSize_; 49} 50 51@property(nonatomic, retain) NSImage* icon; 52@property(nonatomic, assign) NSSize decorationSize; 53 54// Returns the frame reserved for a decoration of size |decorationSize|. 55- (NSRect)decorationFrameForFrame:(NSRect)frame; 56 57@end 58 59#endif // CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_TEXTFIELD_H_ 60