From 93ca8ed5063f03b0b8c0745a33080a5b9c43b19e Mon Sep 17 00:00:00 2001 From: "pinkerton@chromium.org" Date: Tue, 17 Feb 2009 14:45:03 +0000 Subject: Implement SetStarredState on LocationBar for Mac. Review URL: http://codereview.chromium.org/21317 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9874 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/browser_window_cocoa.mm | 2 +- chrome/browser/browser_window_controller.h | 3 +++ chrome/browser/browser_window_controller.mm | 4 ++++ chrome/browser/cocoa/tab_contents_controller.h | 3 +++ chrome/browser/cocoa/tab_contents_controller.mm | 11 +++++++++++ chrome/browser/cocoa/tab_strip_controller.h | 3 +++ chrome/browser/cocoa/tab_strip_controller.mm | 11 +++++++++-- 7 files changed, 34 insertions(+), 3 deletions(-) (limited to 'chrome/browser') diff --git a/chrome/browser/browser_window_cocoa.mm b/chrome/browser/browser_window_cocoa.mm index 3c03c3d..4919106 100644 --- a/chrome/browser/browser_window_cocoa.mm +++ b/chrome/browser/browser_window_cocoa.mm @@ -70,7 +70,7 @@ void BrowserWindowCocoa::UpdateLoadingAnimations(bool should_animate) { } void BrowserWindowCocoa::SetStarredState(bool is_starred) { - NOTIMPLEMENTED(); + [controller_ setStarredState:is_starred ? YES : NO]; } gfx::Rect BrowserWindowCocoa::GetNormalBounds() const { diff --git a/chrome/browser/browser_window_controller.h b/chrome/browser/browser_window_controller.h index 455c45f..5601b3f 100644 --- a/chrome/browser/browser_window_controller.h +++ b/chrome/browser/browser_window_controller.h @@ -52,6 +52,9 @@ class BrowserWindow; - (void)updateToolbarWithContents:(TabContents*)tab shouldRestoreState:(BOOL)shouldRestore; +// Sets whether or not the current page in the frontmost tab is bookmarked. +- (void)setStarredState:(BOOL)isStarred; + @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 c1feeac..101fc9c 100644 --- a/chrome/browser/browser_window_controller.mm +++ b/chrome/browser/browser_window_controller.mm @@ -117,4 +117,8 @@ shouldRestoreState:shouldRestore]; } +- (void)setStarredState:(BOOL)isStarred { + [tabStripController_ setStarredState:isStarred]; +} + @end diff --git a/chrome/browser/cocoa/tab_contents_controller.h b/chrome/browser/cocoa/tab_contents_controller.h index 991a783..a5dd5dc 100644 --- a/chrome/browser/cocoa/tab_contents_controller.h +++ b/chrome/browser/cocoa/tab_contents_controller.h @@ -61,6 +61,9 @@ class TabStripModel; // it points to a TabContents whose state we should restore. - (void)updateToolbarWithContents:(TabContents*)tabForRestoring; +// Sets whether or not the current page in the frontmost tab is bookmarked. +- (void)setStarredState:(BOOL)isStarred; + @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 83d9c7d..b338745 100644 --- a/chrome/browser/cocoa/tab_contents_controller.mm +++ b/chrome/browser/cocoa/tab_contents_controller.mm @@ -12,6 +12,10 @@ // For now, tab_contents lives here. TODO(port):fix #include "chrome/common/temp_scaffolding_stubs.h" +// Names of images in the bundle for the star icon (normal and 'starred'). +static NSString* const kStarImageName = @"star"; +static NSString* const kStarredImageName = @"starred"; + @interface TabContentsController(CommandUpdates) - (void)enabledStateChangedForCommand:(NSInteger)command enabled:(BOOL)enabled; @end @@ -186,6 +190,13 @@ class LocationBarBridge : public LocationBar { } } +- (void)setStarredState:(BOOL)isStarred { + NSString* starImageName = kStarImageName; + if (isStarred) + starImageName = kStarredImageName; + [starButton_ setImage:[NSImage imageNamed:starImageName]]; +} + @end //-------------------------------------------------------------------------- diff --git a/chrome/browser/cocoa/tab_strip_controller.h b/chrome/browser/cocoa/tab_strip_controller.h index 1564983..2f1bcbf 100644 --- a/chrome/browser/cocoa/tab_strip_controller.h +++ b/chrome/browser/cocoa/tab_strip_controller.h @@ -54,6 +54,9 @@ class TabContents; - (void)updateToolbarWithContents:(TabContents*)tab shouldRestoreState:(BOOL)shouldRestore; +// Sets whether or not the current page in the frontmost tab is bookmarked. +- (void)setStarredState:(BOOL)isStarred; + @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 9488695..0c5b4c6 100644 --- a/chrome/browser/cocoa/tab_strip_controller.mm +++ b/chrome/browser/cocoa/tab_strip_controller.mm @@ -289,8 +289,8 @@ class TabStripBridge : public TabStripModelObserver { - (void)updateToolbarWithContents:(TabContents*)tab shouldRestoreState:(BOOL)shouldRestore { - // TODO(pinkerton): windows maintains this, we probably should though we - // currently aren't using it. + // TODO(pinkerton): OS_WIN maintains this, but I'm not sure why. It's + // available by querying the model, which we have available to us. currentTab_ = tab; // tell the appropriate controller to update its state. |shouldRestore| being @@ -300,6 +300,13 @@ class TabStripBridge : public TabStripModelObserver { [controller updateToolbarWithContents:shouldRestore ? tab : nil]; } +- (void)setStarredState:(BOOL)isStarred { + TabContents* selectedContents = model_->GetSelectedTabContents(); + TabContentsController* selectedController = + [self controllerWithContents:selectedContents]; + [selectedController setStarredState:isStarred]; +} + @end //-------------------------------------------------------------------------- -- cgit v1.1