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

Side by Side Diff: chrome/browser/ui/cocoa/content_setting_bubble_cocoa.mm

Issue 5564007: Update Content Settings Bubbles (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: x Created 10 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "chrome/browser/ui/cocoa/content_setting_bubble_cocoa.h" 5 #import "chrome/browser/ui/cocoa/content_setting_bubble_cocoa.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/sys_string_conversions.h" 10 #include "base/sys_string_conversions.h"
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 308
309 - (void)initializeGeoLists { 309 - (void)initializeGeoLists {
310 // Cocoa has its origin in the lower left corner. This means elements are 310 // Cocoa has its origin in the lower left corner. This means elements are
311 // added from bottom to top, which explains why loops run backwards and the 311 // added from bottom to top, which explains why loops run backwards and the
312 // order of operations is the other way than on Linux/Windows. 312 // order of operations is the other way than on Linux/Windows.
313 const ContentSettingBubbleModel::BubbleContent& content = 313 const ContentSettingBubbleModel::BubbleContent& content =
314 contentSettingBubbleModel_->bubble_content(); 314 contentSettingBubbleModel_->bubble_content();
315 NSRect containerFrame = [contentsContainer_ frame]; 315 NSRect containerFrame = [contentsContainer_ frame];
316 NSRect frame = NSMakeRect(0, 0, NSWidth(containerFrame), kGeoLabelHeight); 316 NSRect frame = NSMakeRect(0, 0, NSWidth(containerFrame), kGeoLabelHeight);
317 317
318 // "Clear" button. 318 // "Clear" button / text field.
319 if (!content.clear_link.empty()) { 319 if (!content.custom_link.empty()) {
320 NSRect buttonFrame = NSMakeRect(0, 0, 320 NSControl* control = nil;
321 NSWidth(containerFrame), 321 if(content.custom_link_enabled) {
322 kGeoClearButtonHeight); 322 NSRect buttonFrame = NSMakeRect(0, 0,
323 scoped_nsobject<NSButton> button([[NSButton alloc] 323 NSWidth(containerFrame),
324 initWithFrame:buttonFrame]); 324 kGeoClearButtonHeight);
325 [button setTitle:base::SysUTF8ToNSString(content.clear_link)]; 325 scoped_nsobject<NSButton> button([[NSButton alloc]
326 [button setTarget:self]; 326 initWithFrame:buttonFrame]);
327 [button setAction:@selector(clearGeolocationForCurrentHost:)]; 327 [button setTitle:base::SysUTF8ToNSString(content.custom_link)];
328 [button setBezelStyle:NSRoundRectBezelStyle]; 328 [button setTarget:self];
329 SetControlSize(button, NSSmallControlSize); 329 [button setAction:@selector(clearGeolocationForCurrentHost:)];
330 [button sizeToFit]; 330 [button setBezelStyle:NSRoundRectBezelStyle];
331 SetControlSize(button, NSSmallControlSize);
332 [button sizeToFit];
333 control = button.release();
Nico 2010/12/09 06:41:46 This is wrong – please read http://developer.apple
334 } else {
335 // Add the notification that settings will be cleared on next reload.
336 scoped_nsobject<NSTextField> custom_text(
337 LabelWithFrame(base::SysUTF8ToNSString(content.custom_link), frame));
Nico 2010/12/09 06:41:46 LabelWithFrame() returns an autoreleased object.
338 SetControlSize(custom_text, NSSmallControlSize);
339 control = custom_text.release();
340 }
331 341
332 // If the button is wider than the container, widen the window. 342 // If the new control is wider than the container, widen the window.
333 CGFloat buttonWidth = NSWidth([button frame]); 343 CGFloat controlWidth = NSWidth([control frame]);
334 if (buttonWidth > NSWidth(containerFrame)) { 344 if (controlWidth > NSWidth(containerFrame)) {
335 NSRect windowFrame = [[self window] frame]; 345 NSRect windowFrame = [[self window] frame];
336 windowFrame.size.width += buttonWidth - NSWidth(containerFrame); 346 windowFrame.size.width += controlWidth - NSWidth(containerFrame);
337 [[self window] setFrame:windowFrame display:NO]; 347 [[self window] setFrame:windowFrame display:NO];
338 // Fetch the updated sizes. 348 // Fetch the updated sizes.
339 containerFrame = [contentsContainer_ frame]; 349 containerFrame = [contentsContainer_ frame];
340 frame = NSMakeRect(0, 0, NSWidth(containerFrame), kGeoLabelHeight); 350 frame = NSMakeRect(0, 0, NSWidth(containerFrame), kGeoLabelHeight);
341 } 351 }
342 352
343 // Add the button. 353 DCHECK(control);
344 [contentsContainer_ addSubview:button]; 354 [contentsContainer_ addSubview:control];
345 355 frame.origin.y = NSMaxY([control frame]) + kGeoPadding;
346 frame.origin.y = NSMaxY([button frame]) + kGeoPadding;
347 } 356 }
348 357
349 typedef 358 typedef
350 std::vector<ContentSettingBubbleModel::DomainList>::const_reverse_iterator 359 std::vector<ContentSettingBubbleModel::DomainList>::const_reverse_iterator
351 GeolocationGroupIterator; 360 GeolocationGroupIterator;
352 for (GeolocationGroupIterator i = content.domain_lists.rbegin(); 361 for (GeolocationGroupIterator i = content.domain_lists.rbegin();
353 i != content.domain_lists.rend(); ++i) { 362 i != content.domain_lists.rend(); ++i) {
354 // Add all hosts in the current domain list. 363 // Add all hosts in the current domain list.
355 for (std::set<std::string>::const_reverse_iterator j = i->hosts.rbegin(); 364 for (std::set<std::string>::const_reverse_iterator j = i->hosts.rbegin();
356 j != i->hosts.rend(); ++j) { 365 j != i->hosts.rend(); ++j) {
(...skipping 26 matching lines...) Expand all
383 NSRect windowFrame = [[self window] frame]; 392 NSRect windowFrame = [[self window] frame];
384 windowFrame.size.height += containerHeight - NSHeight(containerFrame); 393 windowFrame.size.height += containerHeight - NSHeight(containerFrame);
385 [[self window] setFrame:windowFrame display:NO]; 394 [[self window] setFrame:windowFrame display:NO];
386 containerFrame.size.height = containerHeight; 395 containerFrame.size.height = containerHeight;
387 [contentsContainer_ setFrame:containerFrame]; 396 [contentsContainer_ setFrame:containerFrame];
388 } 397 }
389 398
390 - (void)sizeToFitLoadPluginsButton { 399 - (void)sizeToFitLoadPluginsButton {
391 const ContentSettingBubbleModel::BubbleContent& content = 400 const ContentSettingBubbleModel::BubbleContent& content =
392 contentSettingBubbleModel_->bubble_content(); 401 contentSettingBubbleModel_->bubble_content();
393 [loadAllPluginsButton_ setEnabled:content.load_plugins_link_enabled]; 402 [loadAllPluginsButton_ setEnabled:content.custom_link_enabled];
394 403
395 // Resize horizontally to fit button if necessary. 404 // Resize horizontally to fit button if necessary.
396 NSRect windowFrame = [[self window] frame]; 405 NSRect windowFrame = [[self window] frame];
397 int widthNeeded = NSWidth([loadAllPluginsButton_ frame]) + 406 int widthNeeded = NSWidth([loadAllPluginsButton_ frame]) +
398 2 * NSMinX([loadAllPluginsButton_ frame]); 407 2 * NSMinX([loadAllPluginsButton_ frame]);
399 if (NSWidth(windowFrame) < widthNeeded) { 408 if (NSWidth(windowFrame) < widthNeeded) {
400 windowFrame.size.width = widthNeeded; 409 windowFrame.size.width = widthNeeded;
401 [[self window] setFrame:windowFrame display:NO]; 410 [[self window] setFrame:windowFrame display:NO];
402 } 411 }
403 } 412 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 453
445 /////////////////////////////////////////////////////////////////////////////// 454 ///////////////////////////////////////////////////////////////////////////////
446 // Actual application logic 455 // Actual application logic
447 456
448 - (IBAction)allowBlockToggled:(id)sender { 457 - (IBAction)allowBlockToggled:(id)sender {
449 NSButtonCell *selectedCell = [sender selectedCell]; 458 NSButtonCell *selectedCell = [sender selectedCell];
450 contentSettingBubbleModel_->OnRadioClicked( 459 contentSettingBubbleModel_->OnRadioClicked(
451 [selectedCell tag] == kAllowTag ? 0 : 1); 460 [selectedCell tag] == kAllowTag ? 0 : 1);
452 } 461 }
453 462
454 - (IBAction)closeBubble:(id)sender {
455 [self close];
456 }
457
458 - (IBAction)manageBlocking:(id)sender {
459 contentSettingBubbleModel_->OnManageLinkClicked();
460 }
461
462 - (IBAction)showMoreInfo:(id)sender {
463 contentSettingBubbleModel_->OnInfoLinkClicked();
464 [self close];
465 }
466
467 - (IBAction)loadAllPlugins:(id)sender {
468 contentSettingBubbleModel_->OnLoadPluginsLinkClicked();
469 [self close];
470 }
471
472 - (void)popupLinkClicked:(id)sender { 463 - (void)popupLinkClicked:(id)sender {
473 content_setting_bubble::PopupLinks::iterator i(popupLinks_.find(sender)); 464 content_setting_bubble::PopupLinks::iterator i(popupLinks_.find(sender));
474 DCHECK(i != popupLinks_.end()); 465 DCHECK(i != popupLinks_.end());
475 contentSettingBubbleModel_->OnPopupClicked(i->second); 466 contentSettingBubbleModel_->OnPopupClicked(i->second);
476 } 467 }
477 468
478 - (void)clearGeolocationForCurrentHost:(id)sender { 469 - (void)clearGeolocationForCurrentHost:(id)sender {
479 contentSettingBubbleModel_->OnClearLinkClicked(); 470 contentSettingBubbleModel_->OnCustomLinkClicked();
480 [self close]; 471 [self close];
481 } 472 }
482 473
474 - (IBAction)showMoreInfo:(id)sender {
475 contentSettingBubbleModel_->OnCustomLinkClicked();
476 [self close];
477 }
478
479 - (IBAction)loadAllPlugins:(id)sender {
480 contentSettingBubbleModel_->OnCustomLinkClicked();
481 [self close];
482 }
483
484 - (IBAction)manageBlocking:(id)sender {
485 contentSettingBubbleModel_->OnManageLinkClicked();
486 }
487
488 - (IBAction)closeBubble:(id)sender {
489 [self close];
490 }
491
483 @end // ContentSettingBubbleController 492 @end // ContentSettingBubbleController
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698