1 // Copyright 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 UI_BASE_COCOA_CONTROLS_HYPERLINK_BUTTON_CELL_H_ 6 #define UI_BASE_COCOA_CONTROLS_HYPERLINK_BUTTON_CELL_H_ 7 8 #import <Cocoa/Cocoa.h> 9 10 #include "base/mac/scoped_nsobject.h" 11 #include "ui/base/ui_base_export.h" 12 13 // A HyperlinkButtonCell is used to create an NSButton that looks and acts 14 // like a hyperlink. The default styling is to look like blue, underlined text 15 // and to have the pointingHand cursor on mouse over. 16 // 17 // To use in Interface Builder: 18 // 1. Drag out an NSButton. 19 // 2. Double click on the button so you have the cell component selected. 20 // 3. In the Identity panel of the inspector, set the custom class to this. 21 // 4. In the Attributes panel, change the Bezel to Square. 22 // 5. In the Size panel, set the Height to 16. 23 // 24 // Use this if all of your text is a link. If you need text that contains 25 // embedded links but also regular text, use HyperlinkTextView. 26 UI_BASE_EXPORT 27 @interface HyperlinkButtonCell : NSButtonCell { 28 base::scoped_nsobject<NSColor> textColor_; 29 BOOL shouldUnderline_; 30 BOOL underlineOnHover_; 31 BOOL mouseIsInside_; 32 } 33 @property(nonatomic, retain) NSColor* textColor; 34 @property(nonatomic, assign) BOOL underlineOnHover; 35 @property(nonatomic, assign) BOOL shouldUnderline; 36 37 + (NSColor*)defaultTextColor; 38 39 // Helper function to create a button with HyperLinkButtonCell as its cell. 40 + (NSButton*)buttonWithString:(NSString*)string; 41 42 @end 43 44 @interface HyperlinkButtonCell (ExposedForTesting) 45 - (NSDictionary*)linkAttributes; 46 @end 47 48 #endif // UI_BASE_COCOA_CONTROLS_HYPERLINK_BUTTON_CELL_H_ 49