Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 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 "chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.h" | 5 #import "chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 | 9 |
| 10 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
| 11 #include "base/mac/scoped_nsobject.h" | 11 #include "base/mac/scoped_nsobject.h" |
| 12 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
| 13 #include "base/strings/string_util.h" | 13 #include "base/strings/string_util.h" |
| 14 #include "base/strings/sys_string_conversions.h" | 14 #include "base/strings/sys_string_conversions.h" |
| 15 #include "base/strings/utf_string_conversions.h" | 15 #include "base/strings/utf_string_conversions.h" |
| 16 #include "chrome/browser/ui/cocoa/omnibox/omnibox_popup_view_mac.h" | 16 #include "chrome/browser/ui/cocoa/omnibox/omnibox_popup_view_mac.h" |
| 17 #include "chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.h" | 17 #include "chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.h" |
| 18 #include "chrome/browser/ui/omnibox/omnibox_popup_model.h" | 18 #include "chrome/browser/ui/omnibox/omnibox_popup_model.h" |
| 19 #include "chrome/grit/generated_resources.h" | 19 #include "chrome/grit/generated_resources.h" |
| 20 #include "components/omnibox/suggestion_answer.h" | 20 #include "components/omnibox/suggestion_answer.h" |
| 21 #include "ui/base/l10n/l10n_util.h" | 21 #include "ui/base/l10n/l10n_util.h" |
| 22 #include "ui/gfx/font.h" | 22 #include "ui/gfx/font.h" |
| 23 | 23 |
| 24 namespace { | 24 namespace { |
| 25 | 25 |
| 26 // How much to adjust the cell sizing up from the default determined | |
| 27 // by the font. | |
| 28 const CGFloat kCellHeightAdjust = 6.0; | |
| 29 | |
| 26 // How far to offset image column from the left. | 30 // How far to offset image column from the left. |
| 27 const CGFloat kImageXOffset = 5.0; | 31 const CGFloat kImageXOffset = 5.0; |
| 28 | 32 |
| 29 // How far to offset the text column from the left. | 33 // How far to offset the text column from the left. |
| 30 const CGFloat kTextStartOffset = 28.0; | 34 const CGFloat kTextStartOffset = 28.0; |
| 31 | 35 |
| 32 // Rounding radius of selection and hover background on popup items. | 36 // Rounding radius of selection and hover background on popup items. |
| 33 const CGFloat kCellRoundingRadius = 2.0; | 37 const CGFloat kCellRoundingRadius = 2.0; |
| 34 | 38 |
| 35 // Flips the given |rect| in context of the given |frame|. | 39 // Flips the given |rect| in context of the given |frame|. |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 198 description_.reset([CreateClassifiedAttributedString( | 202 description_.reset([CreateClassifiedAttributedString( |
| 199 answerString, DimTextColor(), match_.description_class) retain]); | 203 answerString, DimTextColor(), match_.description_class) retain]); |
| 200 } else if (match_.description.empty()) { | 204 } else if (match_.description.empty()) { |
| 201 description_.reset(); | 205 description_.reset(); |
| 202 } else { | 206 } else { |
| 203 description_.reset([CreateClassifiedAttributedString( | 207 description_.reset([CreateClassifiedAttributedString( |
| 204 match_.description, DimTextColor(), match_.description_class) retain]); | 208 match_.description, DimTextColor(), match_.description_class) retain]); |
| 205 } | 209 } |
| 206 } | 210 } |
| 207 | 211 |
| 212 - (id)copyWithZone:(NSZone*)zone { | |
| 213 OmniboxPopupCell* copy = [super copyWithZone:zone]; | |
| 214 copy->match_ = match_; | |
| 215 copy->separator_.reset([separator_ copy]); | |
| 216 copy->description_.reset([description_ copy]); | |
| 217 copy->prefix_.reset([prefix_ copy]); | |
| 218 copy->maxMatchContentsWidth_ = maxMatchContentsWidth_; | |
| 219 copy->contentsOffset_ = contentsOffset_; | |
| 220 return copy; | |
| 221 } | |
| 222 | |
| 223 - (NSRect)drawingRectForBounds:(NSRect)theRect { | |
| 224 // Enlarge the cell size. | |
|
shrike
2015/04/27 18:30:10
Do you mean decrease the cell size?
dschuyler
2015/05/01 21:50:53
Done.
| |
| 225 theRect.size.height -= kCellHeightAdjust; | |
| 226 return theRect; | |
| 227 } | |
| 228 | |
| 208 - (void)setMaxMatchContentsWidth:(CGFloat)maxMatchContentsWidth { | 229 - (void)setMaxMatchContentsWidth:(CGFloat)maxMatchContentsWidth { |
| 209 maxMatchContentsWidth_ = maxMatchContentsWidth; | 230 maxMatchContentsWidth_ = maxMatchContentsWidth; |
| 210 } | 231 } |
| 211 | 232 |
| 212 - (void)setContentsOffset:(CGFloat)contentsOffset { | 233 - (void)setContentsOffset:(CGFloat)contentsOffset { |
| 213 contentsOffset_ = contentsOffset; | 234 contentsOffset_ = contentsOffset; |
| 214 } | 235 } |
| 215 | 236 |
| 216 // The default NSButtonCell drawing leaves the image flush left and | 237 // The default NSButtonCell drawing leaves the image flush left and |
| 217 // the title next to the image. This spaces things out to line up | 238 // the title next to the image. This spaces things out to line up |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 427 } | 448 } |
| 428 glyphOffset -= minOffset; | 449 glyphOffset -= minOffset; |
| 429 if (glyphWidth == 0) | 450 if (glyphWidth == 0) |
| 430 glyphWidth = inputWidth - glyphOffset; | 451 glyphWidth = inputWidth - glyphOffset; |
| 431 if (isContentsRTL) | 452 if (isContentsRTL) |
| 432 glyphOffset += glyphWidth; | 453 glyphOffset += glyphWidth; |
| 433 return isRTL ? (inputWidth - glyphOffset) : glyphOffset; | 454 return isRTL ? (inputWidth - glyphOffset) : glyphOffset; |
| 434 } | 455 } |
| 435 | 456 |
| 436 @end | 457 @end |
| OLD | NEW |