summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/cocoa
diff options
context:
space:
mode:
authorbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-18 15:06:04 +0000
committerbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-18 15:06:04 +0000
commitf2e207f2c3aeb07187a87bcb2ed979b7551081e2 (patch)
treedcc8f2b5c32e1e6c145d0a643a4865a8521ca04f /chrome/browser/ui/cocoa
parent969b4063021a074b67029bffe2bb99c71c2cb984 (diff)
downloadchromium_src-f2e207f2c3aeb07187a87bcb2ed979b7551081e2.zip
chromium_src-f2e207f2c3aeb07187a87bcb2ed979b7551081e2.tar.gz
chromium_src-f2e207f2c3aeb07187a87bcb2ed979b7551081e2.tar.bz2
[Mac] Show collected cookies in a tab view.
Old and boring: http://www.dropmocks.com/mSiEY New hotness: http://www.dropmocks.com/mSiEM XIB changes: Move the two subviews of the NSSplitView into an NSTabView instead, change the |splitView_| outlet to |tabView_| and |lowerScrollView_| to |blockedScrollView_|. Add a placeholder below the tab view, hooked up to the |cookieDetailsViewPlaceholder_| outlet. BUG=63650 TEST=See bug for manual test. Review URL: http://codereview.chromium.org/6673114 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78692 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/cocoa')
-rw-r--r--chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.h18
-rw-r--r--chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.mm77
2 files changed, 50 insertions, 45 deletions
diff --git a/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.h b/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.h
index 519b0a4..86d0195 100644
--- a/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.h
+++ b/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.h
@@ -13,6 +13,7 @@
#include "content/common/notification_registrar.h"
@class CollectedCookiesWindowController;
+@class CookieDetailsViewController;
@class VerticalGradientView;
class TabContents;
@@ -77,12 +78,15 @@ class CollectedCookiesMac : public ConstrainedWindowMacDelegateCustomSheet,
IBOutlet VerticalGradientView* infoBar_;
IBOutlet NSImageView* infoBarIcon_;
IBOutlet NSTextField* infoBarText_;
- IBOutlet NSSplitView* splitView_;
- IBOutlet NSScrollView* lowerScrollView_;
+ IBOutlet NSTabView* tabView_;
+ IBOutlet NSScrollView* blockedScrollView_;
IBOutlet NSTextField* blockedCookiesText_;
+ IBOutlet NSView* cookieDetailsViewPlaceholder_;
scoped_nsobject<NSViewAnimation> animation_;
+ scoped_nsobject<CookieDetailsViewController> detailsViewController_;
+
TabContents* tabContents_; // weak
BOOL infoBarVisible_;
@@ -103,19 +107,13 @@ class CollectedCookiesMac : public ConstrainedWindowMacDelegateCustomSheet,
- (IBAction)allowForSessionFromOrigin:(id)sender;
- (IBAction)blockOrigin:(id)sender;
-// NSSplitView delegate methods:
-- (CGFloat) splitView:(NSSplitView *)sender
- constrainMinCoordinate:(CGFloat)proposedMin
- ofSubviewAt:(NSInteger)offset;
-- (BOOL)splitView:(NSSplitView *)sender canCollapseSubview:(NSView *)subview;
-
-// Returns the cocoaAllowedTreeModel_ and cocoaBlockedTreeModel_.
+// Returns the |cocoaAllowedTreeModel_| and |cocoaBlockedTreeModel_|.
- (CocoaCookieTreeNode*)cocoaAllowedTreeModel;
- (CocoaCookieTreeNode*)cocoaBlockedTreeModel;
- (void)setCocoaAllowedTreeModel:(CocoaCookieTreeNode*)model;
- (void)setCocoaBlockedTreeModel:(CocoaCookieTreeNode*)model;
-// Returns the allowedTreeModel_ and blockedTreeModel_.
+// Returns the |allowedTreeModel_| and |blockedTreeModel_|.
- (CookiesTreeModel*)allowedTreeModel;
- (CookiesTreeModel*)blockedTreeModel;
diff --git a/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.mm b/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.mm
index 86a6203..c697fff 100644
--- a/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.mm
+++ b/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.mm
@@ -9,6 +9,7 @@
#import "base/mac/mac_util.h"
#include "base/sys_string_conversions.h"
#include "chrome/browser/profiles/profile.h"
+#import "chrome/browser/ui/cocoa/content_settings/cookie_details_view_controller.h"
#import "chrome/browser/ui/cocoa/vertical_gradient_view.h"
#include "content/browser/tab_contents/tab_contents.h"
#include "content/common/notification_details.h"
@@ -32,8 +33,11 @@ const double kBannerGradientColorBottom[3] =
{250.0 / 255.0, 230.0 / 255.0, 145.0 / 255.0};
const double kBannerStrokeColor = 135.0 / 255.0;
-// Minimal height for the collected cookies dialog.
-const CGFloat kMinCollectedCookiesViewHeight = 116;
+enum TabViewItemIndices {
+ kAllowedCookiesTabIndex = 0,
+ kBlockedCookiesTabIndex
+};
+
} // namespace
#pragma mark Bridge between the constrained window delegate and the sheet
@@ -184,22 +188,27 @@ void CollectedCookiesMac::OnSheetDidEnd(NSWindow* sheet) {
CGFloat textDeltaY = [GTMUILocalizerAndLayoutTweaker
sizeToFitFixedWidthTextField:blockedCookiesText_];
- // Shrink the upper custom view.
- NSView* upperContentView = [[splitView_ subviews] objectAtIndex:0];
- NSRect frame = [upperContentView frame];
- [splitView_ setPosition:(frame.size.height - textDeltaY/2.0)
- ofDividerAtIndex:0];
-
- // Shrink the lower outline view.
- frame = [lowerScrollView_ frame];
+ // Shrink the blocked cookies outline view.
+ NSRect frame = [blockedScrollView_ frame];
frame.size.height -= textDeltaY;
- [lowerScrollView_ setFrame:frame];
+ [blockedScrollView_ setFrame:frame];
// Move the label down so it actually fits.
frame = [blockedCookiesText_ frame];
frame.origin.y -= textDeltaY;
[blockedCookiesText_ setFrame:frame];
}
+
+ detailsViewController_.reset([[CookieDetailsViewController alloc] init]);
+
+ NSView* detailView = [detailsViewController_.get() view];
+ NSRect viewFrameRect = [cookieDetailsViewPlaceholder_ frame];
+ [[detailsViewController_.get() view] setFrame:viewFrameRect];
+ [[cookieDetailsViewPlaceholder_ superview]
+ replaceSubview:cookieDetailsViewPlaceholder_
+ with:detailView];
+
+ [self tabView:tabView_ didSelectTabViewItem:[tabView_ selectedTabViewItem]];
}
- (void)windowWillClose:(NSNotification*)notif {
@@ -255,20 +264,6 @@ void CollectedCookiesMac::OnSheetDidEnd(NSWindow* sheet) {
forTreeController:allowedTreeController_];
}
-- (CGFloat) splitView:(NSSplitView *)sender
- constrainMinCoordinate:(CGFloat)proposedMin
- ofSubviewAt:(NSInteger)offset {
- return proposedMin + kMinCollectedCookiesViewHeight;
-}
-- (CGFloat) splitView:(NSSplitView *)sender
- constrainMaxCoordinate:(CGFloat)proposedMax
- ofSubviewAt:(NSInteger)offset {
- return proposedMax - kMinCollectedCookiesViewHeight;
-}
-- (BOOL)splitView:(NSSplitView *)sender canCollapseSubview:(NSView *)subview {
- return YES;
-}
-
- (CocoaCookieTreeNode*)cocoaAllowedTreeModel {
return cocoaAllowedTreeModel_.get();
}
@@ -450,16 +445,13 @@ void CollectedCookiesMac::OnSheetDidEnd(NSWindow* sheet) {
NSWindow* sheet = [self window];
NSRect sheetFrame = [sheet frame];
NSRect infoBarFrame = [infoBar_ frame];
- NSRect splitViewFrame = [splitView_ frame];
+ NSRect tabViewFrame = [tabView_ frame];
// Calculate the end position of the info bar and set it to its start
// position.
infoBarFrame.origin.y = NSHeight(sheetFrame);
infoBarFrame.size.width = NSWidth(sheetFrame);
- NSRect infoBarStartFrame = infoBarFrame;
- infoBarStartFrame.origin.y += NSHeight(infoBarFrame);
- infoBarStartFrame.size.height = 0.0;
- [infoBar_ setFrame:infoBarStartFrame];
+ [infoBar_ setFrame:infoBarFrame];
[[[self window] contentView] addSubview:infoBar_];
// Calculate the new position of the sheet.
@@ -472,14 +464,12 @@ void CollectedCookiesMac::OnSheetDidEnd(NSWindow* sheet) {
infoBar_, NSViewAnimationTargetKey,
[NSValue valueWithRect:infoBarFrame],
NSViewAnimationEndFrameKey,
- [NSValue valueWithRect:infoBarStartFrame],
- NSViewAnimationStartFrameKey,
nil]];
- // Make sure the split view ends up in the right position.
+ // Make sure the tab view ends up in the right position.
[animations addObject:
[NSDictionary dictionaryWithObjectsAndKeys:
- splitView_, NSViewAnimationTargetKey,
- [NSValue valueWithRect:splitViewFrame],
+ tabView_, NSViewAnimationTargetKey,
+ [NSValue valueWithRect:tabViewFrame],
NSViewAnimationEndFrameKey,
nil]];
@@ -498,4 +488,21 @@ void CollectedCookiesMac::OnSheetDidEnd(NSWindow* sheet) {
[animation_ startAnimation];
}
+- (void) tabView:(NSTabView*)tabView
+ didSelectTabViewItem:(NSTabViewItem*)tabViewItem {
+ NSTreeController* treeController = nil;
+ switch ([tabView indexOfTabViewItem:tabViewItem]) {
+ case kAllowedCookiesTabIndex:
+ treeController = allowedTreeController_;
+ break;
+ case kBlockedCookiesTabIndex:
+ treeController = blockedTreeController_;
+ break;
+ default:
+ NOTREACHED();
+ return;
+ }
+ [detailsViewController_ configureBindingsForTreeController:treeController];
+}
+
@end