Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(505)

Side by Side Diff: chrome/browser/cocoa/autocomplete_text_field_cell.h

Issue 600133: Mac: Content blocked icons. (Closed)
Patch Set: comments andybons Created 10 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import <Cocoa/Cocoa.h> 5 #import <Cocoa/Cocoa.h>
6 6
7 #import "chrome/browser/cocoa/styled_text_field_cell.h" 7 #import "chrome/browser/cocoa/styled_text_field_cell.h"
8 8
9 #include "base/scoped_nsobject.h" 9 #include "base/scoped_nsobject.h"
10 #include "chrome/browser/cocoa/location_bar_view_mac.h" 10 #include "chrome/browser/cocoa/location_bar_view_mac.h"
11 11
12 class ExtensionAction; 12 class ExtensionAction;
13 13
14 // Holds a |LocationBarImageView| and its current rect. Do not keep references
15 // to this object, only use it directly after calling |-layedOutIcons:|.
16 @interface AutocompleteTextFieldIcon : NSObject {
17 // The frame rect of |view_|.
18 NSRect rect_;
19
20 // weak, owned by LocationBarViewMac.
21 LocationBarViewMac::LocationBarImageView* view_;
22 }
23
24 // Returns a new AutocompleteTextFieldIcon object.
25 + (AutocompleteTextFieldIcon*)
26 iconWithRect:(NSRect)rect
27 view:(LocationBarViewMac::LocationBarImageView*)view;
28 @property(assign, nonatomic) NSRect rect;
29 @property(assign, nonatomic) LocationBarViewMac::LocationBarImageView* view;
30 @end
31
14 // AutocompleteTextFieldCell extends StyledTextFieldCell to provide support for 32 // AutocompleteTextFieldCell extends StyledTextFieldCell to provide support for
15 // certain decorations to be applied to the field. These are the search hint 33 // certain decorations to be applied to the field. These are the search hint
16 // ("Type to search" on the right-hand side), the keyword hint ("Press [Tab] to 34 // ("Type to search" on the right-hand side), the keyword hint ("Press [Tab] to
17 // search Engine" on the right-hand side), and keyword mode ("Search Engine:" in 35 // search Engine" on the right-hand side), and keyword mode ("Search Engine:" in
18 // a button-like token on the left-hand side). 36 // a button-like token on the left-hand side).
19 @interface AutocompleteTextFieldCell : StyledTextFieldCell { 37 @interface AutocompleteTextFieldCell : StyledTextFieldCell {
20 @private 38 @private
21 // Set if there is a string to display in a rounded rect on the 39 // Set if there is a string to display in a rounded rect on the
22 // left-hand side of the field. Exclusive WRT |hintString_|. 40 // left-hand side of the field. Exclusive WRT |hintString_|.
23 scoped_nsobject<NSAttributedString> keywordString_; 41 scoped_nsobject<NSAttributedString> keywordString_;
24 42
25 // Set if there is a string to display as a hint on the right-hand 43 // Set if there is a string to display as a hint on the right-hand
26 // side of the field. Exclusive WRT |keywordString_|; 44 // side of the field. Exclusive WRT |keywordString_|;
27 scoped_nsobject<NSAttributedString> hintString_; 45 scoped_nsobject<NSAttributedString> hintString_;
28 46
29 // View showing the state of the SSL connection. Owned by the location bar. 47 // View showing the state of the SSL connection. Owned by the location bar.
30 // Display is exclusive WRT the |hintString_| and |keywordString_|. 48 // Display is exclusive WRT the |hintString_| and |keywordString_|.
31 // This may be NULL during testing. 49 // This may be NULL during testing.
32 LocationBarViewMac::SecurityImageView* security_image_view_; 50 LocationBarViewMac::SecurityImageView* security_image_view_;
33 51
34 // List of views showing visible Page Actions. Owned by the location bar. 52 // List of views showing visible Page Actions. Owned by the location bar.
35 // Display is exclusive WRT the |hintString_| and |keywordString_|. 53 // Display is exclusive WRT the |hintString_| and |keywordString_|.
36 // This may be NULL during testing. 54 // This may be NULL during testing.
37 LocationBarViewMac::PageActionViewList* page_action_views_; 55 LocationBarViewMac::PageActionViewList* page_action_views_;
56
57 // List of content blocked icons. This may be NULL during testing.
58 LocationBarViewMac::ContentBlockedViews* content_blocked_views_;
38 } 59 }
39 60
40 // Chooses |partialString| if |width| won't fit |fullString|. Strings 61 // Chooses |partialString| if |width| won't fit |fullString|. Strings
41 // must be non-nil. 62 // must be non-nil.
42 - (void)setKeywordString:(NSString*)fullString 63 - (void)setKeywordString:(NSString*)fullString
43 partialString:(NSString*)partialString 64 partialString:(NSString*)partialString
44 availableWidth:(CGFloat)width; 65 availableWidth:(CGFloat)width;
45 66
46 // Chooses |anImage| only if all pieces won't fit w/in |width|. 67 // Chooses |anImage| only if all pieces won't fit w/in |width|.
47 // Inputs must be non-nil. 68 // Inputs must be non-nil.
48 - (void)setKeywordHintPrefix:(NSString*)prefixString 69 - (void)setKeywordHintPrefix:(NSString*)prefixString
49 image:(NSImage*)anImage 70 image:(NSImage*)anImage
50 suffix:(NSString*)suffixString 71 suffix:(NSString*)suffixString
51 availableWidth:(CGFloat)width; 72 availableWidth:(CGFloat)width;
52 73
53 // Suppresses hint entirely if |aString| won't fit w/in |width|. 74 // Suppresses hint entirely if |aString| won't fit w/in |width|.
54 // String must be non-nil. 75 // String must be non-nil.
55 - (void)setSearchHintString:(NSString*)aString 76 - (void)setSearchHintString:(NSString*)aString
56 availableWidth:(CGFloat)width; 77 availableWidth:(CGFloat)width;
57 - (void)clearKeywordAndHint; 78 - (void)clearKeywordAndHint;
58 79
59 - (void)setSecurityImageView:(LocationBarViewMac::SecurityImageView*)view; 80 - (void)setSecurityImageView:(LocationBarViewMac::SecurityImageView*)view;
60 - (void)setPageActionViewList:(LocationBarViewMac::PageActionViewList*)list; 81 - (void)setPageActionViewList:(LocationBarViewMac::PageActionViewList*)list;
82 - (void)setContentBlockedViewList:
83 (LocationBarViewMac::ContentBlockedViews*)views;
61 84
62 // Returns the total number of installed Page Actions, visible or not. 85 // Returns an array of the visible AutocompleteTextFieldIcon objects. Returns
63 - (size_t)pageActionCount; 86 // only visible icons.
87 - (NSArray*)layedOutIcons:(NSRect)cellFrame;
64 88
65 // Called when the security icon is visible and clicked. Passed through to the
66 // security_image_view_ to handle the click (i.e., show the page info dialog).
67 - (void)onSecurityIconMousePressed;
68
69 // Returns the portion of the cell to use for displaying the security (SSL lock)
70 // icon, leaving space for its label if any.
71 - (NSRect)securityImageFrameForFrame:(NSRect)cellFrame;
72 89
73 // Returns the portion of the cell to use for displaying the Page Action icon 90 // Returns the portion of the cell to use for displaying the Page Action icon
74 // at the given index. May be NSZeroRect if the index's action is not visible. 91 // at the given index. May be NSZeroRect if the index's action is not visible.
92 // This does a linear walk over all page actions, so do not call this in a loop
93 // to get the position of all page actions. Use |-layedOutIcons:| instead in tha t
94 // case.
75 - (NSRect)pageActionFrameForIndex:(size_t)index inFrame:(NSRect)cellFrame; 95 - (NSRect)pageActionFrameForIndex:(size_t)index inFrame:(NSRect)cellFrame;
76 96
77 // Returns the string to be shown on hover for the Page Action icon at the
78 // given index.
79 - (NSString*)pageActionToolTipForIndex:(size_t)index;
80
81 // Returns a pointer to the ExtensionAction object that the view at the
82 // specified index represents.
83 - (ExtensionAction*)pageActionForIndex:(size_t)index;
84
85 // Called when the Page Action at the given index, whose icon is drawn in the
86 // iconFrame, is visible and clicked. Passed through to the list of views to
87 // handle the click.
88 - (void)onPageActionMousePressedIn:(NSRect)iconFrame forIndex:(size_t)index;
89 97
90 @end 98 @end
91 99
92 // Internal methods here exposed for unit testing. 100 // Internal methods here exposed for unit testing.
93 @interface AutocompleteTextFieldCell (UnitTesting) 101 @interface AutocompleteTextFieldCell (UnitTesting)
94 102
95 @property(readonly) NSAttributedString* keywordString; 103 @property(readonly) NSAttributedString* keywordString;
96 @property(readonly) NSAttributedString* hintString; 104 @property(readonly) NSAttributedString* hintString;
97 @property(readonly) NSAttributedString* hintIconLabel; 105 @property(readonly) NSAttributedString* hintIconLabel;
98 106
107 // Returns the total number of installed Page Actions, visible or not.
108 - (size_t)pageActionCount;
109
110 // Returns the portion of the cell to use for displaying the security (SSL lock)
111 // icon, leaving space for its label if any.
112 - (NSRect)securityImageFrameForFrame:(NSRect)cellFrame;
113
99 @end 114 @end
OLDNEW
« no previous file with comments | « chrome/browser/cocoa/autocomplete_text_field.mm ('k') | chrome/browser/cocoa/autocomplete_text_field_cell.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698