diff options
author | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-06 20:32:34 +0000 |
---|---|---|
committer | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-06 20:32:34 +0000 |
commit | da90ffdff909ac442444c6d7b8ec9a2a15d8f01a (patch) | |
tree | af443280d67276ae0fe4e8cf007e23c7d2db6894 /chrome | |
parent | ceac4d2624abac6f223f99e4a3a6147723b3b1e3 (diff) | |
download | chromium_src-da90ffdff909ac442444c6d7b8ec9a2a15d8f01a.zip chromium_src-da90ffdff909ac442444c6d7b8ec9a2a15d8f01a.tar.gz chromium_src-da90ffdff909ac442444c6d7b8ec9a2a15d8f01a.tar.bz2 |
Create a stub LocationBar object on Mac to communicate between the bar and the Browser.
Review URL: http://codereview.chromium.org/20136
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9334 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/browser_window_cocoa.mm | 24 | ||||
-rw-r--r-- | chrome/browser/browser_window_controller.h | 4 | ||||
-rw-r--r-- | chrome/browser/browser_window_controller.mm | 5 | ||||
-rw-r--r-- | chrome/browser/cocoa/tab_contents_controller.h | 5 | ||||
-rw-r--r-- | chrome/browser/cocoa/tab_contents_controller.mm | 44 | ||||
-rw-r--r-- | chrome/browser/cocoa/tab_strip_controller.h | 4 | ||||
-rw-r--r-- | chrome/browser/cocoa/tab_strip_controller.mm | 8 | ||||
-rw-r--r-- | chrome/browser/location_bar.h | 3 |
8 files changed, 93 insertions, 4 deletions
diff --git a/chrome/browser/browser_window_cocoa.mm b/chrome/browser/browser_window_cocoa.mm index d178f02..b78b913 100644 --- a/chrome/browser/browser_window_cocoa.mm +++ b/chrome/browser/browser_window_cocoa.mm @@ -3,6 +3,7 @@ // found in the LICENSE file. #include "base/gfx/rect.h" +#include "base/logging.h" #include "chrome/browser/browser_window_cocoa.h" #include "chrome/browser/browser_window_controller.h" @@ -56,15 +57,19 @@ StatusBubble* BrowserWindowCocoa::GetStatusBubble() { } void BrowserWindowCocoa::SelectedTabToolbarSizeChanged(bool is_animating) { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::UpdateTitleBar() { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::UpdateLoadingAnimations(bool should_animate) { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::SetStarredState(bool is_starred) { + NOTIMPLEMENTED(); } gfx::Rect BrowserWindowCocoa::GetNormalBounds() const { @@ -82,63 +87,80 @@ bool BrowserWindowCocoa::IsMaximized() { } LocationBar* BrowserWindowCocoa::GetLocationBar() const { - return NULL; + return [controller_ locationBar]; } void BrowserWindowCocoa::UpdateStopGoState(bool is_loading) { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::UpdateToolbar(TabContents* contents, bool should_restore_state) { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::FocusToolbar() { + NOTIMPLEMENTED(); } bool BrowserWindowCocoa::IsBookmarkBarVisible() const { + NOTIMPLEMENTED(); return true; } void BrowserWindowCocoa::ToggleBookmarkBar() { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::ShowAboutChromeDialog() { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::ShowBookmarkManager() { + NOTIMPLEMENTED(); } bool BrowserWindowCocoa::IsBookmarkBubbleVisible() const { + NOTIMPLEMENTED(); return false; } void BrowserWindowCocoa::ShowBookmarkBubble(const GURL& url, bool already_bookmarked) { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::ShowReportBugDialog() { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::ShowClearBrowsingDataDialog() { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::ShowImportDialog() { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::ShowSearchEnginesDialog() { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::ShowPasswordManager() { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::ShowSelectProfileDialog() { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::ShowNewProfileDialog() { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::ShowHTMLDialog(HtmlDialogContentsDelegate* delegate, void* parent_window) { + NOTIMPLEMENTED(); } void BrowserWindowCocoa::DestroyBrowser() { diff --git a/chrome/browser/browser_window_controller.h b/chrome/browser/browser_window_controller.h index 7db33db..290b1b4 100644 --- a/chrome/browser/browser_window_controller.h +++ b/chrome/browser/browser_window_controller.h @@ -22,7 +22,6 @@ class BrowserWindow; Browser* browser_; BrowserWindow* windowShim_; TabStripController* tabStripController_; - TabContentsController* contentsController_; IBOutlet NSBox* contentBox_; IBOutlet TabStripView* tabStripView_; @@ -43,6 +42,9 @@ class BrowserWindow; // Access the C++ bridge between the NSWindow and the rest of Chromium - (BrowserWindow*)browserWindow; +// Get the C++ bridge object representing the location bar for the current tab. +- (LocationBar*)locationBar; + @end #endif // CHROME_BROWSER_BROWSER_WINDOW_CONTROLLER_H_ diff --git a/chrome/browser/browser_window_controller.mm b/chrome/browser/browser_window_controller.mm index dce4c3b..e5b2d2c 100644 --- a/chrome/browser/browser_window_controller.mm +++ b/chrome/browser/browser_window_controller.mm @@ -27,7 +27,6 @@ delete browser_; delete windowShim_; [tabStripController_ release]; - [contentsController_ release]; [super dealloc]; } @@ -108,4 +107,8 @@ browser_->ExecuteCommand(tag); } +- (LocationBar*)locationBar { + return [tabStripController_ locationBar]; +} + @end diff --git a/chrome/browser/cocoa/tab_contents_controller.h b/chrome/browser/cocoa/tab_contents_controller.h index d2cee1f..51878a1 100644 --- a/chrome/browser/cocoa/tab_contents_controller.h +++ b/chrome/browser/cocoa/tab_contents_controller.h @@ -8,6 +8,7 @@ #include <Cocoa/Cocoa.h> class CommandUpdater; +class LocationBar; class TabContents; class TabContentsCommandObserver; class TabStripModel; @@ -27,6 +28,7 @@ class TabStripModel; @private CommandUpdater* commands_; // weak, may be nil TabContentsCommandObserver* observer_; // nil if |commands_| is nil + LocationBar* locationBarBrige_; IBOutlet NSButton* backButton_; IBOutlet NSButton* forwardButton_; IBOutlet NSButton* reloadStopButton_; @@ -45,6 +47,9 @@ class TabStripModel; // Take this view (toolbar and web contents) full screen - (IBAction)fullScreen:(id)sender; +// Get the C++ bridge object representing the location bar for this tab. +- (LocationBar*)locationBar; + @end #endif // CHROME_BROWSER_COCOA_TAB_COTNENTS_CONTROLLER_H_ diff --git a/chrome/browser/cocoa/tab_contents_controller.mm b/chrome/browser/cocoa/tab_contents_controller.mm index f31047a..bd1407a 100644 --- a/chrome/browser/cocoa/tab_contents_controller.mm +++ b/chrome/browser/cocoa/tab_contents_controller.mm @@ -6,6 +6,7 @@ #import "chrome/app/chrome_dll_resource.h" #import "chrome/browser/command_updater.h" +#import "chrome/browser/location_bar.h" @interface TabContentsController(CommandUpdates) - (void)enabledStateChangedForCommand:(NSInteger)command enabled:(BOOL)enabled; @@ -23,10 +24,30 @@ class TabContentsCommandObserver : public CommandUpdater::CommandObserver { void EnabledStateChangedForCommand(int command, bool enabled); private: - TabContentsController* controller_; // weak, owns us + TabContentsController* controller_; // weak, owns me CommandUpdater* commands_; // weak }; +// TODO(pinkerton): implement these +class LocationBarBridge : public LocationBar { + public: + LocationBarBridge(TabContentsController* controller); + + // Overridden from LocationBar + virtual void ShowFirstRunBubble() { NOTIMPLEMENTED(); } + virtual std::wstring GetInputString() const { NOTIMPLEMENTED(); return L""; } + virtual WindowOpenDisposition GetWindowOpenDisposition() const + { NOTIMPLEMENTED(); return NEW_FOREGROUND_TAB; } + virtual PageTransition::Type GetPageTransition() const + { NOTIMPLEMENTED(); return 0; } + virtual void AcceptInput() { NOTIMPLEMENTED(); } + virtual void FocusLocation() { NOTIMPLEMENTED(); } + virtual void FocusSearch() { NOTIMPLEMENTED(); } + virtual void SaveStateToContents(TabContents* contents) { NOTIMPLEMENTED(); } + + private: + TabContentsController* controller_; // weak, owns me +}; @implementation TabContentsController @@ -38,6 +59,7 @@ class TabContentsCommandObserver : public CommandUpdater::CommandObserver { commands_ = commands; if (commands_) observer_ = new TabContentsCommandObserver(self, commands); + locationBarBrige_ = new LocationBarBridge(self); } return self; } @@ -46,13 +68,27 @@ class TabContentsCommandObserver : public CommandUpdater::CommandObserver { // make sure our contents have been removed from the window [[self view] removeFromSuperview]; delete observer_; + delete locationBarBrige_; [super dealloc]; } - (void)awakeFromNib { + // Provide a starting point since we won't get notifications if the state + // doesn't change between tabs. + [backButton_ setEnabled:commands_->IsCommandEnabled(IDC_BACK) ? YES : NO]; + [forwardButton_ + setEnabled:commands_->IsCommandEnabled(IDC_FORWARD) ? YES : NO]; + [reloadStopButton_ + setEnabled:commands_->IsCommandEnabled(IDC_RELOAD) ? YES : NO]; + [starButton_ setEnabled:commands_->IsCommandEnabled(IDC_STAR) ? YES : NO]; + [locationBar_ setStringValue:@"http://dev.chromium.org"]; } +- (LocationBar*)locationBar { + return locationBarBrige_; +} + // Returns YES if the tab represented by this controller is the front-most. - (BOOL)isCurrentTab { // We're the current tab if we're in the view hierarchy, otherwise some other @@ -126,3 +162,9 @@ void TabContentsCommandObserver::EnabledStateChangedForCommand(int command, [controller_ enabledStateChangedForCommand:command enabled:enabled ? YES : NO]; } + +//-------------------------------------------------------------------------- + +LocationBarBridge::LocationBarBridge(TabContentsController* controller) + : controller_(controller) { +} diff --git a/chrome/browser/cocoa/tab_strip_controller.h b/chrome/browser/cocoa/tab_strip_controller.h index 2330bd5..6c181f2 100644 --- a/chrome/browser/cocoa/tab_strip_controller.h +++ b/chrome/browser/cocoa/tab_strip_controller.h @@ -8,6 +8,7 @@ #import <Cocoa/Cocoa.h> class CommandUpdater; +class LocationBar; @class TabStripView; class TabStripBridge; class TabStripModel; @@ -41,6 +42,9 @@ class TabStripModel; model:(TabStripModel*)model commands:(CommandUpdater*)commands; +// Get the C++ bridge object representing the location bar for the current tab. +- (LocationBar*)locationBar; + @end #endif // CHROME_BROWSER_COCOA_TAB_STRIP_CONTROLLER_H_ diff --git a/chrome/browser/cocoa/tab_strip_controller.mm b/chrome/browser/cocoa/tab_strip_controller.mm index 2ba72e2..926e2b9d 100644 --- a/chrome/browser/cocoa/tab_strip_controller.mm +++ b/chrome/browser/cocoa/tab_strip_controller.mm @@ -273,6 +273,14 @@ class TabStripBridge : public TabStripModelObserver { [curr setFrame:newFrame]; } } + +- (LocationBar*)locationBar { + TabContents* selectedContents = model_->GetSelectedTabContents(); + TabContentsController* selectedController = + [self controllerWithContents:selectedContents]; + return [selectedController locationBar]; +} + @end //-------------------------------------------------------------------------- diff --git a/chrome/browser/location_bar.h b/chrome/browser/location_bar.h index 0e6bc83..0ffc4d6 100644 --- a/chrome/browser/location_bar.h +++ b/chrome/browser/location_bar.h @@ -5,6 +5,9 @@ #ifndef CHROME_BROWSER_LOCATION_BAR_H_ #define CHROME_BROWSER_LOCATION_BAR_H_ +#include "chrome/common/page_transition_types.h" +#include "webkit/glue/window_open_disposition.h" + //////////////////////////////////////////////////////////////////////////////// // LocationBar // An interface providing access to the Location Bar component of the browser |