diff options
Diffstat (limited to 'chrome/browser/cocoa/cookie_details_view_controller.mm')
-rw-r--r-- | chrome/browser/cocoa/cookie_details_view_controller.mm | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/chrome/browser/cocoa/cookie_details_view_controller.mm b/chrome/browser/cocoa/cookie_details_view_controller.mm deleted file mode 100644 index 885779b..0000000 --- a/chrome/browser/cocoa/cookie_details_view_controller.mm +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#import "chrome/browser/cocoa/cookie_details_view_controller.h" - -#include "app/l10n_util_mac.h" -#include "app/resource_bundle.h" -#import "base/mac_util.h" -#include "base/sys_string_conversions.h" -#import "chrome/browser/cocoa/cookie_tree_node.h" -#import "third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h" - -namespace { -static const int kExtraMarginBelowWhenExpirationEditable = 5; -} - -#pragma mark View Controller - -@implementation CookieDetailsViewController -@dynamic hasExpiration; - -- (id)init { - return [super initWithNibName:@"CookieDetailsView" - bundle:mac_util::MainAppBundle()]; -} - -- (void)awakeFromNib { - DCHECK(objectController_); -} - -// Finds and returns the y offset of the lowest-most non-hidden -// text field in the view. This is used to shrink the view -// appropriately so that it just fits its visible content. -- (void)getLowestLabelVerticalPosition:(NSView*)view - lowestLabelPosition:(float&)lowestLabelPosition { - if (![view isHidden]) { - if ([view isKindOfClass:[NSTextField class]]) { - NSRect frame = [view frame]; - if (frame.origin.y < lowestLabelPosition) { - lowestLabelPosition = frame.origin.y; - } - } - for (NSView* subview in [view subviews]) { - [self getLowestLabelVerticalPosition:subview - lowestLabelPosition:lowestLabelPosition]; - } - } -} - -- (void)setContentObject:(id)content { - // Make sure the view is loaded before we set the content object, - // otherwise, the KVO notifications to update the content don't - // reach the view and all of the detail values are default - // strings. - NSView* view = [self view]; - - [objectController_ setValue:content forKey:@"content"]; - - // View needs to be re-tweaked after setting the content object, - // since the expiration date may have changed, changing the - // size of the expiration popup. - [tweaker_ tweakUI:view]; -} - -- (void)shrinkViewToFit { - // Adjust the information pane to be exactly the right size - // to hold the visible text information fields. - NSView* view = [self view]; - NSRect frame = [view frame]; - float lowestLabelPosition = frame.origin.y + frame.size.height; - [self getLowestLabelVerticalPosition:view - lowestLabelPosition:lowestLabelPosition]; - float verticalDelta = lowestLabelPosition - frame.origin.y; - - // Popup menu for the expiration is taller than the plain - // text, give it some more room. - if ([[[objectController_ content] details] canEditExpiration]) { - verticalDelta -= kExtraMarginBelowWhenExpirationEditable; - } - - frame.origin.y += verticalDelta; - frame.size.height -= verticalDelta; - [[self view] setFrame:frame]; -} - -- (void)configureBindingsForTreeController:(NSTreeController*)treeController { - // There seems to be a bug in the binding logic that it's not possible - // to bind to the selection of the tree controller, the bind seems to - // require an additional path segment in the key, thus the use of - // selection.self rather than just selection below. - [objectController_ bind:@"contentObject" - toObject:treeController - withKeyPath:@"selection.self" - options:nil]; -} - -- (IBAction)setCookieDoesntHaveExplicitExpiration:(id)sender { - [[[objectController_ content] details] setHasExpiration:NO]; -} - -- (IBAction)setCookieHasExplicitExpiration:(id)sender { - [[[objectController_ content] details] setHasExpiration:YES]; -} - -- (BOOL)hasExpiration { - return [[[objectController_ content] details] hasExpiration]; -} - -@end |