summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorshess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-27 20:06:29 +0000
committershess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-27 20:06:29 +0000
commite8c4e753d0a2bcdac816d472d9afa50fdafae7ba (patch)
treebe6849c27a59ee63667fdde7228544b8c80a603d /chrome/browser
parentd3b2e75994860048bf89ccbfc55c5b9c8d53532d (diff)
downloadchromium_src-e8c4e753d0a2bcdac816d472d9afa50fdafae7ba.zip
chromium_src-e8c4e753d0a2bcdac816d472d9afa50fdafae7ba.tar.gz
chromium_src-e8c4e753d0a2bcdac816d472d9afa50fdafae7ba.tar.bz2
Clean up construction of LocationBarViewMac objects.
This removes the need for SetField() accessors on AutocompleteEditViewMac and AutocompletePopupViewMac, and also removes the Init() wart on LocationBarViewMac. Now everything is wired up in the constructor. Review URL: http://codereview.chromium.org/92136 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14641 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/autocomplete/autocomplete_edit_view_mac.h7
-rw-r--r--chrome/browser/autocomplete/autocomplete_edit_view_mac.mm17
-rw-r--r--chrome/browser/autocomplete/autocomplete_popup_view_mac.h9
-rw-r--r--chrome/browser/autocomplete/autocomplete_popup_view_mac.mm5
-rw-r--r--chrome/browser/cocoa/location_bar_view_mac.h10
-rw-r--r--chrome/browser/cocoa/location_bar_view_mac.mm16
-rw-r--r--chrome/browser/cocoa/toolbar_controller.mm1
7 files changed, 16 insertions, 49 deletions
diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_mac.h b/chrome/browser/autocomplete/autocomplete_edit_view_mac.h
index d6b0928..19f4b31 100644
--- a/chrome/browser/autocomplete/autocomplete_edit_view_mac.h
+++ b/chrome/browser/autocomplete/autocomplete_edit_view_mac.h
@@ -32,7 +32,8 @@ class AutocompleteEditViewMac : public AutocompleteEditView {
AutocompleteEditViewMac(AutocompleteEditController* controller,
ToolbarModel* toolbar_model,
Profile* profile,
- CommandUpdater* command_updater);
+ CommandUpdater* command_updater,
+ NSTextField* field);
virtual ~AutocompleteEditViewMac();
// Implement the AutocompleteEditView interface.
@@ -88,10 +89,6 @@ class AutocompleteEditViewMac : public AutocompleteEditView {
void OnKillFocus();
void AcceptInput(WindowOpenDisposition disposition, bool for_drop);
- // TODO(shess): Get rid of this. Right now it's needed because of
- // the ordering of initialization in tab_contents_controller.mm.
- void SetField(NSTextField* field);
-
// Helper for LocationBarBridge.
void FocusLocation();
diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
index 71b6d24..854f3dc 100644
--- a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
+++ b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
@@ -23,18 +23,22 @@ AutocompleteEditViewMac::AutocompleteEditViewMac(
AutocompleteEditController* controller,
ToolbarModel* toolbar_model,
Profile* profile,
- CommandUpdater* command_updater)
+ CommandUpdater* command_updater,
+ NSTextField* field)
: model_(new AutocompleteEditModel(this, controller, profile)),
- popup_view_(new AutocompletePopupViewMac(this, model_.get(), profile)),
+ popup_view_(new AutocompletePopupViewMac(this, model_.get(), profile,
+ field)),
controller_(controller),
toolbar_model_(toolbar_model),
command_updater_(command_updater),
- field_(nil),
+ field_(field),
edit_helper_([[AutocompleteFieldDelegate alloc] initWithEditView:this]) {
DCHECK(controller);
DCHECK(toolbar_model);
DCHECK(profile);
DCHECK(command_updater);
+ DCHECK(field);
+ [field_ setDelegate:edit_helper_];
}
AutocompleteEditViewMac::~AutocompleteEditViewMac() {
@@ -273,13 +277,6 @@ void AutocompleteEditViewMac::AcceptInput(
WindowOpenDisposition disposition, bool for_drop) {
model_->AcceptInput(disposition, for_drop);
}
-void AutocompleteEditViewMac::SetField(NSTextField* field) {
- field_ = field;
- [field_ setDelegate:edit_helper_];
-
- // The popup code needs the field for sizing and placement.
- popup_view_->SetField(field_);
-}
void AutocompleteEditViewMac::FocusLocation() {
[[field_ window] makeFirstResponder:field_];
diff --git a/chrome/browser/autocomplete/autocomplete_popup_view_mac.h b/chrome/browser/autocomplete/autocomplete_popup_view_mac.h
index 376260a..9cb2af7 100644
--- a/chrome/browser/autocomplete/autocomplete_popup_view_mac.h
+++ b/chrome/browser/autocomplete/autocomplete_popup_view_mac.h
@@ -29,7 +29,8 @@ class AutocompletePopupViewMac : public AutocompletePopupView {
public:
AutocompletePopupViewMac(AutocompleteEditViewMac* edit_view,
AutocompleteEditModel* edit_model,
- Profile* profile);
+ Profile* profile,
+ NSTextField* field);
virtual ~AutocompletePopupViewMac();
// Implement the AutocompletePopupView interface.
@@ -73,12 +74,6 @@ class AutocompletePopupViewMac : public AutocompletePopupView {
const std::wstring& ResultDescriptionAt(size_t i);
void AcceptInput(WindowOpenDisposition disposition, bool for_drop);
- // TODO(shess): Get rid of this. Right now it's needed because of
- // the ordering of initialization in tab_contents_controller.mm.
- void SetField(NSTextField* field) {
- field_ = field;
- }
-
private:
// Create the popup_ instance if needed.
void CreatePopupIfNeeded();
diff --git a/chrome/browser/autocomplete/autocomplete_popup_view_mac.mm b/chrome/browser/autocomplete/autocomplete_popup_view_mac.mm
index bdf7372..f1dbc8e 100644
--- a/chrome/browser/autocomplete/autocomplete_popup_view_mac.mm
+++ b/chrome/browser/autocomplete/autocomplete_popup_view_mac.mm
@@ -36,10 +36,11 @@ objectValueForTableColumn:(NSTableColumn*)aTableColumn
AutocompletePopupViewMac::AutocompletePopupViewMac(
AutocompleteEditViewMac* edit_view,
AutocompleteEditModel* edit_model,
- Profile* profile)
+ Profile* profile,
+ NSTextField* field)
: model_(new AutocompletePopupModel(this, edit_model, profile)),
edit_view_(edit_view),
- field_(nil),
+ field_(field),
table_target_([[AutocompleteTableTarget alloc] initWithPopupView:this]),
popup_(nil) {
DCHECK(edit_view);
diff --git a/chrome/browser/cocoa/location_bar_view_mac.h b/chrome/browser/cocoa/location_bar_view_mac.h
index d8188ee..90cb2a6 100644
--- a/chrome/browser/cocoa/location_bar_view_mac.h
+++ b/chrome/browser/cocoa/location_bar_view_mac.h
@@ -28,13 +28,6 @@ class LocationBarViewMac : public AutocompleteEditController,
Profile* profile);
virtual ~LocationBarViewMac();
- // TODO(shess): This is a placeholder for the Omnibox code. The
- // problem it will paper over is that Profile availability does not
- // match object creation in TabContentsController. Circle back and
- // resolve this after the Profile-handling and tab logic changes are
- // complete.
- void Init();
-
// Overridden from LocationBar
virtual void ShowFirstRunBubble() { NOTIMPLEMENTED(); }
virtual std::wstring GetInputString() const;
@@ -60,10 +53,7 @@ class LocationBarViewMac : public AutocompleteEditController,
private:
scoped_ptr<AutocompleteEditViewMac> edit_view_;
- NSTextField* field_; // weak, owned by ToolbarController nib
CommandUpdater* command_updater_; // weak, owned by Browser
- ToolbarModel* toolbar_model_; // weak, owned by Browser
- Profile* profile_; // weak, outlives the Browser
// When we get an OnAutocompleteAccept notification from the autocomplete
// edit, we save the input string so we can give it back to the browser on
diff --git a/chrome/browser/cocoa/location_bar_view_mac.mm b/chrome/browser/cocoa/location_bar_view_mac.mm
index d653201..d9217ec 100644
--- a/chrome/browser/cocoa/location_bar_view_mac.mm
+++ b/chrome/browser/cocoa/location_bar_view_mac.mm
@@ -19,10 +19,9 @@ LocationBarViewMac::LocationBarViewMac(NSTextField* field,
CommandUpdater* command_updater,
ToolbarModel* toolbar_model,
Profile* profile)
- : field_(field),
+ : edit_view_(new AutocompleteEditViewMac(this, toolbar_model, profile,
+ command_updater, field)),
command_updater_(command_updater),
- toolbar_model_(toolbar_model),
- profile_(profile),
disposition_(CURRENT_TAB),
transition_(PageTransition::TYPED) {
}
@@ -31,17 +30,6 @@ LocationBarViewMac::~LocationBarViewMac() {
// TODO(shess): Placeholder for omnibox changes.
}
-void LocationBarViewMac::Init() {
- // TODO(shess): Get rid of Init() so we don't have to cache all these members
- // as we don't use them beyond this method.
- edit_view_.reset(new AutocompleteEditViewMac(this,
- toolbar_model_,
- profile_,
- command_updater_));
- // TODO(shess): Include in constructor.
- edit_view_->SetField(field_);
-}
-
std::wstring LocationBarViewMac::GetInputString() const {
return location_input_;
}
diff --git a/chrome/browser/cocoa/toolbar_controller.mm b/chrome/browser/cocoa/toolbar_controller.mm
index 9cd7739..d2a986e 100644
--- a/chrome/browser/cocoa/toolbar_controller.mm
+++ b/chrome/browser/cocoa/toolbar_controller.mm
@@ -48,7 +48,6 @@ static NSString* const kStarredImageName = @"starred";
[self initCommandStatus:commands_];
locationBarView_.reset(new LocationBarViewMac(locationBar_, commands_,
toolbarModel_, profile_));
- locationBarView_->Init();
[locationBar_ setStringValue:@"http://dev.chromium.org"];
}