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

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

Issue 149717: [Mac] Refactor location-bar autocomplete cell classes. (Closed)
Patch Set: jrg comment Created 11 years, 5 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) 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/sys_string_conversions.h" 7 #include "base/sys_string_conversions.h"
8 #include "chrome/browser/autocomplete/autocomplete_edit.h" 8 #include "chrome/browser/autocomplete/autocomplete_edit.h"
9 #include "chrome/browser/autocomplete/autocomplete_popup_model.h" 9 #include "chrome/browser/autocomplete/autocomplete_popup_model.h"
10 #include "chrome/browser/autocomplete/autocomplete_popup_view_mac.h" 10 #include "chrome/browser/autocomplete/autocomplete_popup_view_mac.h"
11 #include "chrome/browser/cocoa/autocomplete_text_field.h"
11 #include "chrome/browser/tab_contents/tab_contents.h" 12 #include "chrome/browser/tab_contents/tab_contents.h"
12 13
13 // Focus-handling between |field_| and |model_| is a bit subtle. 14 // Focus-handling between |field_| and |model_| is a bit subtle.
14 // Other platforms detect change of focus, which is inconvenient 15 // Other platforms detect change of focus, which is inconvenient
15 // without subclassing NSTextField (even with a subclass, the use of a 16 // without subclassing NSTextField (even with a subclass, the use of a
16 // field editor may complicate things). 17 // field editor may complicate things).
17 // 18 //
18 // |model_| doesn't actually do anything when it gains focus, it just 19 // |model_| doesn't actually do anything when it gains focus, it just
19 // initializes. Visible activity happens only after the user edits. 20 // initializes. Visible activity happens only after the user edits.
20 // NSTextField delegate receives messages around starting and ending 21 // NSTextField delegate receives messages around starting and ending
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 // the edit view. 119 // the edit view.
119 120
120 @interface AutocompleteFieldDelegate : NSObject { 121 @interface AutocompleteFieldDelegate : NSObject {
121 @private 122 @private
122 AutocompleteEditViewMac* edit_view_; // weak, owns us. 123 AutocompleteEditViewMac* edit_view_; // weak, owns us.
123 } 124 }
124 - initWithEditView:(AutocompleteEditViewMac*)view; 125 - initWithEditView:(AutocompleteEditViewMac*)view;
125 - (void)windowDidResignKey:(NSNotification*)notification; 126 - (void)windowDidResignKey:(NSNotification*)notification;
126 @end 127 @end
127 128
129 // TODO(shess): AutocompletePopupViewMac doesn't really need an
130 // NSTextField. It wants to know where the position the popup, what
131 // font to use, and it also needs to be able to attach the popup to
132 // the window |field_| is in.
128 AutocompleteEditViewMac::AutocompleteEditViewMac( 133 AutocompleteEditViewMac::AutocompleteEditViewMac(
129 AutocompleteEditController* controller, 134 AutocompleteEditController* controller,
130 ToolbarModel* toolbar_model, 135 ToolbarModel* toolbar_model,
131 Profile* profile, 136 Profile* profile,
132 CommandUpdater* command_updater, 137 CommandUpdater* command_updater,
133 NSTextField* field) 138 AutocompleteTextField* field)
134 : model_(new AutocompleteEditModel(this, controller, profile)), 139 : model_(new AutocompleteEditModel(this, controller, profile)),
135 popup_view_(new AutocompletePopupViewMac(this, model_.get(), profile, 140 popup_view_(new AutocompletePopupViewMac(this, model_.get(), profile,
136 field)), 141 field)),
137 controller_(controller), 142 controller_(controller),
138 toolbar_model_(toolbar_model), 143 toolbar_model_(toolbar_model),
139 command_updater_(command_updater), 144 command_updater_(command_updater),
140 field_(field), 145 field_(field),
141 edit_helper_([[AutocompleteFieldDelegate alloc] initWithEditView:this]) { 146 edit_helper_([[AutocompleteFieldDelegate alloc] initWithEditView:this]) {
142 DCHECK(controller); 147 DCHECK(controller);
143 DCHECK(toolbar_model); 148 DCHECK(toolbar_model);
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 // We should only arrive here when the field is focussed. 520 // We should only arrive here when the field is focussed.
516 DCHECK(IsFirstResponder()); 521 DCHECK(IsFirstResponder());
517 522
518 model_->OnEscapeKeyPressed(); 523 model_->OnEscapeKeyPressed();
519 } 524 }
520 525
521 void AutocompleteEditViewMac::OnWillBeginEditing() { 526 void AutocompleteEditViewMac::OnWillBeginEditing() {
522 // We should only arrive here when the field is focussed. 527 // We should only arrive here when the field is focussed.
523 DCHECK([field_ currentEditor]); 528 DCHECK([field_ currentEditor]);
524 529
525 // TODO(shess): Having the control key depressed changes the desired 530 // TODO(shess): Detect control-key situation. Since this code is
526 // TLD for autocomplete, which changes the results. Not sure if we 531 // called on first edit, not on receipt of focus, it may be that we
527 // can detect that without subclassing NSTextField. 532 // cannot correctly handle this without refactoring.
528 const bool controlDown = false; 533 const bool controlDown = false;
529 model_->OnSetFocus(controlDown); 534 model_->OnSetFocus(controlDown);
530 535
531 // Capture the current state. 536 // Capture the current state.
532 OnBeforePossibleChange(); 537 OnBeforePossibleChange();
533 } 538 }
534 539
535 void AutocompleteEditViewMac::OnDidEndEditing() { 540 void AutocompleteEditViewMac::OnDidEndEditing() {
536 ClosePopup(); 541 ClosePopup();
537 542
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
622 // TODO(shess): Figure out where the selection belongs. On GTK, 627 // TODO(shess): Figure out where the selection belongs. On GTK,
623 // it's set to the start of the text. 628 // it's set to the start of the text.
624 } 629 }
625 630
626 // Signal that we've lost focus when the window resigns key. 631 // Signal that we've lost focus when the window resigns key.
627 - (void)windowDidResignKey:(NSNotification*)notification { 632 - (void)windowDidResignKey:(NSNotification*)notification {
628 edit_view_->OnDidResignKey(); 633 edit_view_->OnDidResignKey();
629 } 634 }
630 635
631 @end 636 @end
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_edit_view_mac.h ('k') | chrome/browser/cocoa/autocomplete_text_field.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698