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

Unified Diff: chrome/browser/cocoa/autocomplete_text_field_cell.h

Issue 1566004: [Mac] Rearrange SSL status icon/label in omnibox. (Closed)
Patch Set: Rohit's points. Created 10 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/cocoa/autocomplete_text_field_cell.h
diff --git a/chrome/browser/cocoa/autocomplete_text_field_cell.h b/chrome/browser/cocoa/autocomplete_text_field_cell.h
index 6b2f156a901a9855419687ce74c9d0c97595e5cb..a57a2ad1533745bb7bcb7aebddbb13e02aae4b70 100644
--- a/chrome/browser/cocoa/autocomplete_text_field_cell.h
+++ b/chrome/browser/cocoa/autocomplete_text_field_cell.h
@@ -13,7 +13,15 @@ class ExtensionAction;
// Holds a |LocationBarImageView| and its current rect. Do not keep references
// to this object, only use it directly after calling |-layedOutIcons:|.
+// TODO(shess): This class is basically a helper for laying out the
+// icons. Try to refactor it away. If that is not reasonable, at
+// least split the image and label cases into subclasses once the
+// Omnibox stuff is settled.
@interface AutocompleteTextFieldIcon : NSObject {
+ // YES to draw the label part of |view_|, otherwise draw the image
+ // part.
+ BOOL isLabel_;
+
// The frame rect of |view_|.
NSRect rect_;
@@ -21,12 +29,20 @@ class ExtensionAction;
LocationBarViewMac::LocationBarImageView* view_;
}
-// Returns a new AutocompleteTextFieldIcon object.
-+ (AutocompleteTextFieldIcon*)
- iconWithRect:(NSRect)rect
- view:(LocationBarViewMac::LocationBarImageView*)view;
@property(assign, nonatomic) NSRect rect;
@property(assign, nonatomic) LocationBarViewMac::LocationBarImageView* view;
+
+- (id)initImageWithView:(LocationBarViewMac::LocationBarImageView*)view;
+- (id)initLabelWithView:(LocationBarViewMac::LocationBarImageView*)view;
+
+// Position |view_| right-justified in |frame|.
+- (void)positionInFrame:(NSRect)frame;
+
+// Draw image or label of |view_| in |rect_| within |controlView|.
+// Only call after |-positionInFrame:| has set |rect_| (or after an
+// explicit |-setRect:|).
+- (void)drawInView:(NSView*)controlView;
+
@end
// AutocompleteTextFieldCell extends StyledTextFieldCell to provide support for
@@ -44,9 +60,13 @@ class ExtensionAction;
// side of the field. Exclusive WRT |keywordString_|;
scoped_nsobject<NSAttributedString> hintString_;
- // View showing an icon matching the current text. Owned by the location bar.
- // Exclusive WRT |keywordString_|. This may be NULL during testing.
- LocationBarViewMac::LocationIconView* location_icon_view_;
+ // The location icon sits at the left-hand side of the field.
+ // |keywordString_| overrides.
+ LocationBarViewMac::LocationIconView* locationIconView_;
+
+ // The security label floats to the left of page actions at the
+ // right-hand side.
+ LocationBarViewMac::LocationBarImageView* securityLabelView_;
// List of views showing visible Page Actions. Owned by the location bar.
// Display is exclusive WRT the |hintString_| and |keywordString_|.
@@ -77,6 +97,7 @@ class ExtensionAction;
- (void)clearKeywordAndHint;
- (void)setLocationIconView:(LocationBarViewMac::LocationIconView*)view;
+- (void)setSecurityLabelView:(LocationBarViewMac::LocationBarImageView*)view;
- (void)setPageActionViewList:(LocationBarViewMac::PageActionViewList*)list;
- (void)setContentSettingViewsList:
(LocationBarViewMac::ContentSettingViews*)views;
@@ -85,20 +106,31 @@ class ExtensionAction;
// only visible icons.
- (NSArray*)layedOutIcons:(NSRect)cellFrame;
-
-// Returns the portion of the cell to use for displaying the Page Action icon
-// at the given index. May be NSZeroRect if the index's action is not visible.
-// This does a linear walk over all page actions, so do not call this in a loop
-// to get the position of all page actions. Use |-layedOutIcons:| instead in that
-// case.
+// Returns the portion of the cell to use for displaying the Page
+// Action icon at the given index. May be NSZeroRect if the index's
+// action is not visible. This does a linear walk over all page
+// actions, so do not call this in a loop to get the position of all
+// page actions. Use |-layedOutIcons:| instead in that case.
- (NSRect)pageActionFrameForIndex:(size_t)index inFrame:(NSRect)cellFrame;
+// Find the icon under the event. |nil| if |theEvent| is not over
+// anything.
+- (AutocompleteTextFieldIcon*)iconForEvent:(NSEvent*)theEvent
+ inRect:(NSRect)cellFrame
+ ofView:(AutocompleteTextField*)controlView;
+
// Return the appropriate menu for any page actions under event.
// Returns nil if no menu is present for the action, or if the event
// is not over an action.
-- (NSMenu*)actionMenuForEvent:(NSEvent*)event
+- (NSMenu*)actionMenuForEvent:(NSEvent*)theEvent
inRect:(NSRect)cellFrame
- ofView:(NSView*)aView;
+ ofView:(AutocompleteTextField*)controlView;
+
+// Called by |AutocompleteTextField| to let page actions intercept
+// clicks. Returns |YES| if the click has been intercepted.
+- (BOOL)mouseDown:(NSEvent*)theEvent
+ inRect:(NSRect)cellFrame
+ ofView:(AutocompleteTextField*)controlView;
@end
@@ -112,8 +144,8 @@ class ExtensionAction;
// Returns the total number of installed Page Actions, visible or not.
- (size_t)pageActionCount;
-// Returns the portion of the cell to use for displaying the location icon,
-// leaving space for its label if any.
+// Returns the portion of the cell to use for displaying the location
+// icon.
- (NSRect)locationIconFrameForFrame:(NSRect)cellFrame;
@end
« 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