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

Side by Side Diff: chrome/browser/autocomplete/autocomplete_edit_view_mac.mm

Issue 160378: Make TOOLKIT_VIEWS port use views-based Autocomplete popup.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 4 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/autocomplete/autocomplete_edit_view_mac.h" 5 #include "chrome/browser/autocomplete/autocomplete_edit_view_mac.h"
6 6
7 #include "base/clipboard.h" 7 #include "base/clipboard.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "base/sys_string_conversions.h" 9 #include "base/sys_string_conversions.h"
10 #include "chrome/browser/autocomplete/autocomplete_edit.h" 10 #include "chrome/browser/autocomplete/autocomplete_edit.h"
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 DCHECK(field); 154 DCHECK(field);
155 [field_ setDelegate:edit_helper_]; 155 [field_ setDelegate:edit_helper_];
156 156
157 // Needed so that editing doesn't lose the styling. 157 // Needed so that editing doesn't lose the styling.
158 [field_ setAllowsEditingTextAttributes:YES]; 158 [field_ setAllowsEditingTextAttributes:YES];
159 159
160 // Track the window's key status for signalling focus changes to 160 // Track the window's key status for signalling focus changes to
161 // |model_|. 161 // |model_|.
162 NSNotificationCenter* nc = [NSNotificationCenter defaultCenter]; 162 NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
163 [nc addObserver:edit_helper_ 163 [nc addObserver:edit_helper_
164 selector:@selector(windowDidResignKey:) 164 selector:@selector(windowDidResignKey:)
165 name:NSWindowDidResignKeyNotification 165 name:NSWindowDidResignKeyNotification
166 object:[field_ window]]; 166 object:[field_ window]];
167 } 167 }
168 168
169 AutocompleteEditViewMac::~AutocompleteEditViewMac() { 169 AutocompleteEditViewMac::~AutocompleteEditViewMac() {
170 // TODO(shess): Having to be aware of destructor ordering in this 170 // TODO(shess): Having to be aware of destructor ordering in this
171 // way seems brittle. There must be a better way. 171 // way seems brittle. There must be a better way.
172 172
173 // Destroy popup view before this object in case it tries to call us 173 // Destroy popup view before this object in case it tries to call us
174 // back in the destructor. Likewise for destroying the model before 174 // back in the destructor. Likewise for destroying the model before
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 // shouldn't need to be called at all. When coded that way, I find 209 // shouldn't need to be called at all. When coded that way, I find
210 // that the field isn't always updated correctly. Figure out why 210 // that the field isn't always updated correctly. Figure out why
211 // this is. Maybe this method should be refactored into more 211 // this is. Maybe this method should be refactored into more
212 // specific cases. 212 // specific cases.
213 const bool user_visible = 213 const bool user_visible =
214 model_->UpdatePermanentText(toolbar_model_->GetText()); 214 model_->UpdatePermanentText(toolbar_model_->GetText());
215 215
216 if (tab_for_state_restoring) { 216 if (tab_for_state_restoring) {
217 RevertAll(); 217 RevertAll();
218 218
219 const AutocompleteEditViewMacState* state = 219 const AutocompleteEditViewMacState* state =
220 GetStateFromTab(tab_for_state_restoring); 220 GetStateFromTab(tab_for_state_restoring);
221 if (state) { 221 if (state) {
222 // Should restore the user's text via SetUserText(). 222 // Should restore the user's text via SetUserText().
223 model_->RestoreState(state->model_state); 223 model_->RestoreState(state->model_state);
224 224
225 // Restore focus and selection if they were present when the tab 225 // Restore focus and selection if they were present when the tab
226 // was switched away. 226 // was switched away.
227 if (state->has_focus) { 227 if (state->has_focus) {
228 // TODO(shess): Unfortunately, there is no safe way to update 228 // TODO(shess): Unfortunately, there is no safe way to update
229 // this because TabStripController -selectTabWithContents:* is 229 // this because TabStripController -selectTabWithContents:* is
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 // Restyle in case the user changed something. 504 // Restyle in case the user changed something.
505 // TODO(shess): I believe there are multiple-redraw cases, here. 505 // TODO(shess): I believe there are multiple-redraw cases, here.
506 // Linux watches for something_changed && text_differs, but that 506 // Linux watches for something_changed && text_differs, but that
507 // fails for us in case you copy the URL and paste the identical URL 507 // fails for us in case you copy the URL and paste the identical URL
508 // back (we'll lose the styling). 508 // back (we'll lose the styling).
509 EmphasizeURLComponents(); 509 EmphasizeURLComponents();
510 510
511 return something_changed; 511 return something_changed;
512 } 512 }
513 513
514 gfx::NativeView AutocompleteEditViewMac::GetNativeView() const {
515 return field_;
516 }
517
514 void AutocompleteEditViewMac::OnUpOrDownKeyPressed(bool up, bool by_page) { 518 void AutocompleteEditViewMac::OnUpOrDownKeyPressed(bool up, bool by_page) {
515 // We should only arrive here when the field is focussed. 519 // We should only arrive here when the field is focussed.
516 DCHECK(IsFirstResponder()); 520 DCHECK(IsFirstResponder());
517 521
518 const int count = by_page ? model_->result().size() : 1; 522 const int count = by_page ? model_->result().size() : 1;
519 model_->OnUpOrDownKeyPressed(up ? -count : count); 523 model_->OnUpOrDownKeyPressed(up ? -count : count);
520 } 524 }
521 525
522 void AutocompleteEditViewMac::OnEscapeKeyPressed() { 526 void AutocompleteEditViewMac::OnEscapeKeyPressed() {
523 // We should only arrive here when the field is focussed. 527 // We should only arrive here when the field is focussed.
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
654 if (cmd == @selector(moveDown:)) { 658 if (cmd == @selector(moveDown:)) {
655 edit_view_->OnUpOrDownKeyPressed(false, false); 659 edit_view_->OnUpOrDownKeyPressed(false, false);
656 return YES; 660 return YES;
657 } 661 }
658 662
659 if (cmd == @selector(moveUp:)) { 663 if (cmd == @selector(moveUp:)) {
660 edit_view_->OnUpOrDownKeyPressed(true, false); 664 edit_view_->OnUpOrDownKeyPressed(true, false);
661 return YES; 665 return YES;
662 } 666 }
663 } 667 }
664 668
665 if (cmd == @selector(scrollPageDown:)) { 669 if (cmd == @selector(scrollPageDown:)) {
666 edit_view_->OnUpOrDownKeyPressed(false, true); 670 edit_view_->OnUpOrDownKeyPressed(false, true);
667 return YES; 671 return YES;
668 } 672 }
669 673
670 if (cmd == @selector(scrollPageUp:)) { 674 if (cmd == @selector(scrollPageUp:)) {
671 edit_view_->OnUpOrDownKeyPressed(true, true); 675 edit_view_->OnUpOrDownKeyPressed(true, true);
672 return YES; 676 return YES;
673 } 677 }
674 678
675 if (cmd == @selector(cancelOperation:)) { 679 if (cmd == @selector(cancelOperation:)) {
676 edit_view_->OnEscapeKeyPressed(); 680 edit_view_->OnEscapeKeyPressed();
677 return YES; 681 return YES;
678 } 682 }
679 683
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
741 // prepended and ".com" appended. This calls down to 745 // prepended and ".com" appended. This calls down to
742 // AutocompleteEditModel::OnControlKeyChanged() so that it can change 746 // AutocompleteEditModel::OnControlKeyChanged() so that it can change
743 // the popup to reflect this. See autocomplete_edit.cc 747 // the popup to reflect this. See autocomplete_edit.cc
744 // OnControlKeyChanged() and OnAfterPossibleChange(). 748 // OnControlKeyChanged() and OnAfterPossibleChange().
745 - (void)control:(NSControl*)control flagsChanged:(NSEvent*)theEvent { 749 - (void)control:(NSControl*)control flagsChanged:(NSEvent*)theEvent {
746 BOOL controlFlag = ([theEvent modifierFlags]&NSControlKeyMask) != 0; 750 BOOL controlFlag = ([theEvent modifierFlags]&NSControlKeyMask) != 0;
747 edit_view_->OnControlKeyChanged(controlFlag); 751 edit_view_->OnControlKeyChanged(controlFlag);
748 } 752 }
749 753
750 @end 754 @end
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_edit_view_mac.h ('k') | chrome/browser/autocomplete/autocomplete_edit_view_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698