Home | History | Annotate | Download | only in content_settings
      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