Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(395)

Side by Side Diff: chrome/browser/ui/cocoa/subresource_filter/subresource_filter_bubble_controller.mm

Issue 2826233002: [subresource_filter] Mac UI updated and xib replaced with code based layout. (Closed)
Patch Set: Feedback addressed. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #import "chrome/browser/ui/cocoa/subresource_filter/subresource_filter_bubble_co ntroller.h"
Robert Sesek 2017/05/03 22:05:11 nit: blank line after
shivanisha 2017/05/04 20:20:57 done
6 #include "base/strings/sys_string_conversions.h"
7 #import "chrome/browser/ui/cocoa/info_bubble_window.h"
8 #include "chrome/browser/ui/content_settings/content_setting_bubble_model.h"
9 #include "components/strings/grit/components_strings.h"
10 #import "third_party/google_toolbox_for_mac/src/AppKit/GTMUILocalizerAndLayoutTw eaker.h"
11 #include "ui/base/l10n/l10n_util_mac.h"
12
13 @interface SubresourceFilterBubbleController (Private)
14 - (void)loadView;
15 @end
16
17 @implementation SubresourceFilterBubbleController
18
19 - (void)awakeFromNib {
20 [self loadView];
21 [super awakeFromNib];
22 }
23
24 - (void)layoutView {
25 [super layoutView];
26 [self initializeManageCheckbox];
27 }
28
29 - (void)initializeManageCheckbox {
30 if (!manageCheckbox_)
31 return;
32
33 NSString* label = base::SysUTF16ToNSString(
34 contentSettingBubbleModel_->bubble_content().manage_text);
35 [manageCheckbox_ setTitle:label];
36
37 CGFloat deltaY =
38 [GTMUILocalizerAndLayoutTweaker sizeToFitView:manageCheckbox_].height;
39 NSRect windowFrame = [[self window] frame];
40 windowFrame.size.height += deltaY;
41 [[self window] setFrame:windowFrame display:NO];
42 NSRect manageCheckboxFrame = [manageCheckbox_ frame];
43 manageCheckboxFrame.origin.y -= deltaY;
44 [manageCheckbox_ setFrame:manageCheckboxFrame];
45 }
46
47 - (void)loadView {
Robert Sesek 2017/05/03 22:05:11 method ordering: Move this above initializeManageC
shivanisha 2017/05/04 20:20:57 done
48 titleLabel_ =
49 [[NSTextField alloc] initWithFrame:NSMakeRect(18, 120, 282, 14)];
50 [titleLabel_ setEditable:NO];
51 [titleLabel_ setBordered:NO];
52 [self.window.contentView addSubview:titleLabel_];
53 [titleLabel_ autorelease];
Robert Sesek 2017/05/03 22:05:11 You can switch the |autorelease| calls to direct |
shivanisha 2017/05/04 20:20:58 Done. So it will be released when subview goes out
54
55 messageLabel_ =
56 [[NSTextField alloc] initWithFrame:NSMakeRect(18, 85, 282, 28)];
57 [messageLabel_ setEditable:NO];
58 [messageLabel_ setBordered:NO];
59 [self.window.contentView addSubview:messageLabel_];
60 [messageLabel_ autorelease];
61
62 manageCheckbox_ =
63 [[NSButton alloc] initWithFrame:NSMakeRect(18, 35, 282, 28)];
64 [manageCheckbox_ setButtonType:NSSwitchButton];
65 [manageCheckbox_ setState:NSOffState];
66 [self.window.contentView addSubview:manageCheckbox_];
67 [manageCheckbox_ setAction:@selector(manageCheckboxChecked:)];
68 [manageCheckbox_ autorelease];
69
70 doneButton_ = [[NSButton alloc] initWithFrame:NSMakeRect(210, 10, 90, 28)];
71 [doneButton_ setBezelStyle:NSRoundedBezelStyle];
72 [doneButton_ highlight:YES];
73 [doneButton_ setTitle:l10n_util::GetNSString(IDS_OK)];
74 [self.window.contentView addSubview:doneButton_];
75 [doneButton_ setAction:@selector(closeBubble:)];
76 [doneButton_ autorelease];
77 }
78
79 - (id)initWithModel:(ContentSettingBubbleModel*)contentSettingBubbleModel
Robert Sesek 2017/05/03 22:05:11 method ordering: Move this to be the first method
shivanisha 2017/05/04 20:20:58 done
80 webContents:(content::WebContents*)webContents
81 parentWindow:(NSWindow*)parentWindow
82 decoration:(ContentSettingDecoration*)decoration
83 anchoredAt:(NSPoint)anchoredAt {
84 NSRect contentRect = NSMakeRect(196, 376, 316, 154);
85 base::scoped_nsobject<InfoBubbleWindow> window([[InfoBubbleWindow alloc]
86 initWithContentRect:contentRect
87 styleMask:NSBorderlessWindowMask
88 backing:NSBackingStoreBuffered
89 defer:NO]);
90
91 // Disable animations - otherwise, the window/controller will outlive the web
92 // contents it's associated with.
93 [window setAllowedAnimations:info_bubble::kAnimateNone];
94
95 [super initWithModel:contentSettingBubbleModel
96 webContents:webContents
97 window:window
98 parentWindow:parentWindow
99 decoration:decoration
100 anchoredAt:anchoredAt];
101 return self;
102 }
103
104 // Callback for "manage" checkbox button.
105 - (IBAction)manageCheckboxChecked:(id)sender {
Robert Sesek 2017/05/03 22:05:11 Similar to |IBOutlet|, you can drop the |IBAction|
shivanisha 2017/05/04 20:20:57 done
106 bool isChecked = [sender state] == NSOnState;
107 contentSettingBubbleModel_->OnManageCheckboxChecked(isChecked);
108 [self layoutView];
109 }
110
111 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698