1 // Copyright (c) 2011 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 #include <map> 6 7 #import <Cocoa/Cocoa.h> 8 9 #import "base/mac/cocoa_protocols.h" 10 #include "base/memory/scoped_nsobject.h" 11 #include "base/memory/scoped_ptr.h" 12 #import "chrome/browser/ui/cocoa/base_bubble_controller.h" 13 14 class ContentSettingBubbleModel; 15 @class InfoBubbleView; 16 17 namespace content_setting_bubble { 18 // For every "show popup" button, remember the index of the popup tab contents 19 // it should open when clicked. 20 typedef std::map<NSButton*, int> PopupLinks; 21 } 22 23 // Manages a "content blocked" bubble. 24 @interface ContentSettingBubbleController : BaseBubbleController { 25 @private 26 IBOutlet NSTextField* titleLabel_; 27 IBOutlet NSMatrix* allowBlockRadioGroup_; 28 29 IBOutlet NSButton* manageButton_; 30 IBOutlet NSButton* doneButton_; 31 IBOutlet NSButton* loadAllPluginsButton_; 32 33 // The container for the bubble contents of the geolocation bubble. 34 IBOutlet NSView* contentsContainer_; 35 36 // The info button of the cookies bubble. 37 IBOutlet NSButton* infoButton_; 38 39 IBOutlet NSTextField* blockedResourcesField_; 40 41 scoped_ptr<ContentSettingBubbleModel> contentSettingBubbleModel_; 42 content_setting_bubble::PopupLinks popupLinks_; 43 } 44 45 // Creates and shows a content blocked bubble. Takes ownership of 46 // |contentSettingBubbleModel| but not of the other objects. 47 + (ContentSettingBubbleController*) 48 showForModel:(ContentSettingBubbleModel*)contentSettingBubbleModel 49 parentWindow:(NSWindow*)parentWindow 50 anchoredAt:(NSPoint)anchoredAt; 51 52 // Callback for the "don't block / continue blocking" radio group. 53 - (IBAction)allowBlockToggled:(id)sender; 54 55 // Callback for "close" button. 56 - (IBAction)closeBubble:(id)sender; 57 58 // Callback for "manage" button. 59 - (IBAction)manageBlocking:(id)sender; 60 61 // Callback for "info" link. 62 - (IBAction)showMoreInfo:(id)sender; 63 64 // Callback for "load all plugins" button. 65 - (IBAction)loadAllPlugins:(id)sender; 66 67 @end 68