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

Side by Side Diff: chrome/browser/ui/cocoa/omnibox/omnibox_popup_view_mac.mm

Issue 1154063003: removing ShouldHideTopMatch (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: changed deprecated var name Created 5 years, 6 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "chrome/browser/ui/cocoa/omnibox/omnibox_popup_view_mac.h" 5 #include "chrome/browser/ui/cocoa/omnibox/omnibox_popup_view_mac.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/strings/sys_string_conversions.h" 10 #include "base/strings/sys_string_conversions.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 [matrix_ setObserver:NULL]; 68 [matrix_ setObserver:NULL];
69 } 69 }
70 70
71 bool OmniboxPopupViewMac::IsOpen() const { 71 bool OmniboxPopupViewMac::IsOpen() const {
72 return popup_ != nil; 72 return popup_ != nil;
73 } 73 }
74 74
75 void OmniboxPopupViewMac::UpdatePopupAppearance() { 75 void OmniboxPopupViewMac::UpdatePopupAppearance() {
76 DCHECK([NSThread isMainThread]); 76 DCHECK([NSThread isMainThread]);
77 const AutocompleteResult& result = GetResult(); 77 const AutocompleteResult& result = GetResult();
78 const size_t start_match = result.ShouldHideTopMatch() ? 1 : 0; 78 const size_t rows = result.size();
79 const size_t rows = result.size() - start_match;
80 if (rows == 0) { 79 if (rows == 0) {
81 [[popup_ parentWindow] removeChildWindow:popup_]; 80 [[popup_ parentWindow] removeChildWindow:popup_];
82 [popup_ orderOut:nil]; 81 [popup_ orderOut:nil];
83 82
84 // Break references to |this| because the popup may not be 83 // Break references to |this| because the popup may not be
85 // deallocated immediately. 84 // deallocated immediately.
86 [matrix_ setDelegate:nil]; 85 [matrix_ setDelegate:nil];
87 matrix_.reset(); 86 matrix_.reset();
88 87
89 popup_.reset(nil); 88 popup_.reset(nil);
(...skipping 10 matching lines...) Expand all
100 const CGFloat matrix_width = NSWidth([field_ bounds]); 99 const CGFloat matrix_width = NSWidth([field_ bounds]);
101 DCHECK_GT(matrix_width, 0.0); 100 DCHECK_GT(matrix_width, 0.0);
102 101
103 // Load the results into the popup's matrix. 102 // Load the results into the popup's matrix.
104 DCHECK_GT(rows, 0U); 103 DCHECK_GT(rows, 0U);
105 [matrix_ renewRows:rows columns:1]; 104 [matrix_ renewRows:rows columns:1];
106 CGFloat max_match_contents_width = 0.0f; 105 CGFloat max_match_contents_width = 0.0f;
107 CGFloat contents_offset = -1.0f; 106 CGFloat contents_offset = -1.0f;
108 for (size_t ii = 0; ii < rows; ++ii) { 107 for (size_t ii = 0; ii < rows; ++ii) {
109 OmniboxPopupCell* cell = [matrix_ cellAtRow:ii column:0]; 108 OmniboxPopupCell* cell = [matrix_ cellAtRow:ii column:0];
110 const AutocompleteMatch& match = GetResult().match_at(ii + start_match); 109 const AutocompleteMatch& match = GetResult().match_at(ii);
111 [cell setImage:ImageForMatch(match)]; 110 [cell setImage:ImageForMatch(match)];
112 [cell setMatch:match]; 111 [cell setMatch:match];
113 // Only set the image on the one cell with match.answer. 112 // Only set the image on the one cell with match.answer.
114 if (match.answer && !model_->answer_bitmap().isNull()) { 113 if (match.answer && !model_->answer_bitmap().isNull()) {
115 NSImage* image = 114 NSImage* image =
116 gfx::Image::CreateFrom1xBitmap(model_->answer_bitmap()).CopyNSImage(); 115 gfx::Image::CreateFrom1xBitmap(model_->answer_bitmap()).CopyNSImage();
117 [cell setAnswerImage:image]; 116 [cell setAnswerImage:image];
118 } 117 }
119 if (match.type == AutocompleteMatchType::SEARCH_SUGGEST_TAIL) { 118 if (match.type == AutocompleteMatchType::SEARCH_SUGGEST_TAIL) {
120 max_match_contents_width = std::max(max_match_contents_width, 119 max_match_contents_width = std::max(max_match_contents_width,
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 NSScreen* screen = [[NSScreen screens] objectAtIndex:0]; 153 NSScreen* screen = [[NSScreen screens] objectAtIndex:0];
155 NSRect monitor_frame = [screen frame]; 154 NSRect monitor_frame = [screen frame];
156 gfx::Rect bounds(NSRectToCGRect(target_popup_frame_)); 155 gfx::Rect bounds(NSRectToCGRect(target_popup_frame_));
157 bounds.set_y(monitor_frame.size.height - bounds.y() - bounds.height()); 156 bounds.set_y(monitor_frame.size.height - bounds.y() - bounds.height());
158 return bounds; 157 return bounds;
159 } 158 }
160 159
161 // This is only called by model in SetSelectedLine() after updating 160 // This is only called by model in SetSelectedLine() after updating
162 // everything. Popup should already be visible. 161 // everything. Popup should already be visible.
163 void OmniboxPopupViewMac::PaintUpdatesNow() { 162 void OmniboxPopupViewMac::PaintUpdatesNow() {
164 size_t start_match = model_->result().ShouldHideTopMatch() ? 1 : 0; 163 [matrix_ selectCellAtRow:model_->selected_line() column:0];
165 if (start_match > model_->selected_line()) {
166 [matrix_ deselectAllCells];
167 } else {
168 [matrix_ selectCellAtRow:model_->selected_line() - start_match column:0];
169 }
170
171 } 164 }
172 165
173 void OmniboxPopupViewMac::OnMatrixRowSelected(OmniboxPopupMatrix* matrix, 166 void OmniboxPopupViewMac::OnMatrixRowSelected(OmniboxPopupMatrix* matrix,
174 size_t row) { 167 size_t row) {
175 size_t start_match = model_->result().ShouldHideTopMatch() ? 1 : 0; 168 model_->SetSelectedLine(row, false, false);
176 model_->SetSelectedLine(row + start_match, false, false);
177 } 169 }
178 170
179 void OmniboxPopupViewMac::OnMatrixRowClicked(OmniboxPopupMatrix* matrix, 171 void OmniboxPopupViewMac::OnMatrixRowClicked(OmniboxPopupMatrix* matrix,
180 size_t row) { 172 size_t row) {
181 OpenURLForRow(row, 173 OpenURLForRow(row,
182 ui::WindowOpenDispositionFromNSEvent([NSApp currentEvent])); 174 ui::WindowOpenDispositionFromNSEvent([NSApp currentEvent]));
183 } 175 }
184 176
185 void OmniboxPopupViewMac::OnMatrixRowMiddleClicked(OmniboxPopupMatrix* matrix, 177 void OmniboxPopupViewMac::OnMatrixRowMiddleClicked(OmniboxPopupMatrix* matrix,
186 size_t row) { 178 size_t row) {
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 if (!image.IsEmpty()) 321 if (!image.IsEmpty())
330 return image.AsNSImage(); 322 return image.AsNSImage();
331 323
332 const int resource_id = model_->IsStarredMatch(match) ? 324 const int resource_id = model_->IsStarredMatch(match) ?
333 IDR_OMNIBOX_STAR : AutocompleteMatch::TypeToIcon(match.type); 325 IDR_OMNIBOX_STAR : AutocompleteMatch::TypeToIcon(match.type);
334 return OmniboxViewMac::ImageForResource(resource_id); 326 return OmniboxViewMac::ImageForResource(resource_id);
335 } 327 }
336 328
337 void OmniboxPopupViewMac::OpenURLForRow(size_t row, 329 void OmniboxPopupViewMac::OpenURLForRow(size_t row,
338 WindowOpenDisposition disposition) { 330 WindowOpenDisposition disposition) {
339 size_t start_match = model_->result().ShouldHideTopMatch() ? 1 : 0;
340 row += start_match;
341 DCHECK_LT(row, GetResult().size()); 331 DCHECK_LT(row, GetResult().size());
342 omnibox_view_->OpenMatch(GetResult().match_at(row), disposition, GURL(), 332 omnibox_view_->OpenMatch(GetResult().match_at(row), disposition, GURL(),
343 base::string16(), row); 333 base::string16(), row);
344 } 334 }
OLDNEW
« no previous file with comments | « chrome/browser/metrics/omnibox_metrics_provider.cc ('k') | chrome/browser/ui/omnibox/omnibox_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698