Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef COMPONENTS_INFOBARS_CORE_INFOBAR_DELEGATE_H_ | 5 #ifndef COMPONENTS_INFOBARS_CORE_INFOBAR_DELEGATE_H_ |
| 6 #define COMPONENTS_INFOBARS_CORE_INFOBAR_DELEGATE_H_ | 6 #define COMPONENTS_INFOBARS_CORE_INFOBAR_DELEGATE_H_ |
| 7 | 7 |
| 8 #include <vector> | |
| 9 | |
| 8 #include "base/macros.h" | 10 #include "base/macros.h" |
| 9 #include "base/strings/string16.h" | 11 #include "base/strings/string16.h" |
| 10 #include "build/build_config.h" | 12 #include "build/build_config.h" |
| 11 #include "ui/base/window_open_disposition.h" | 13 #include "ui/base/window_open_disposition.h" |
| 14 #include "url/gurl.h" | |
| 12 | 15 |
| 13 class ConfirmInfoBarDelegate; | 16 class ConfirmInfoBarDelegate; |
| 14 class HungRendererInfoBarDelegate; | 17 class HungRendererInfoBarDelegate; |
| 15 class InsecureContentInfoBarDelegate; | 18 class InsecureContentInfoBarDelegate; |
| 16 class NativeAppInfoBarDelegate; | 19 class NativeAppInfoBarDelegate; |
| 17 class PermissionInfobarDelegate; | 20 class PermissionInfobarDelegate; |
| 18 class PopupBlockedInfoBarDelegate; | 21 class PopupBlockedInfoBarDelegate; |
| 19 class RegisterProtocolHandlerInfoBarDelegate; | 22 class RegisterProtocolHandlerInfoBarDelegate; |
| 20 class ScreenCaptureInfoBarDelegate; | 23 class ScreenCaptureInfoBarDelegate; |
| 21 class ThemeInstalledInfoBarDelegate; | 24 class ThemeInstalledInfoBarDelegate; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 66 // Unique identifier for the entry. | 69 // Unique identifier for the entry. |
| 67 int entry_id; | 70 int entry_id; |
| 68 // True if it is a navigation to a different page (as opposed to in-page). | 71 // True if it is a navigation to a different page (as opposed to in-page). |
| 69 bool is_navigation_to_different_page; | 72 bool is_navigation_to_different_page; |
| 70 // True if the entry replaced the existing one. | 73 // True if the entry replaced the existing one. |
| 71 bool did_replace_entry; | 74 bool did_replace_entry; |
| 72 bool is_reload; | 75 bool is_reload; |
| 73 bool is_redirect; | 76 bool is_redirect; |
| 74 }; | 77 }; |
| 75 | 78 |
| 79 // Detailed information that should be shown in the content of the infobar. | |
| 80 struct Detail { | |
| 81 Detail(); | |
| 82 ~Detail(); | |
| 83 | |
| 84 int icon_id; | |
| 85 base::string16 label; | |
| 86 base::string16 sub_label; | |
| 87 }; | |
| 88 | |
| 89 // Descriptive text that should be shown in the content of the infobar. | |
| 90 struct Description { | |
|
Justin Donnelly
2015/12/30 18:06:37
If we keep this, how about FooterText as a, um, mo
please use gerrit instead
2016/01/07 01:39:25
Not keeping this.
| |
| 91 Description(); | |
| 92 ~Description(); | |
| 93 | |
| 94 struct Link { | |
| 95 Link(); | |
| 96 ~Link(); | |
| 97 | |
| 98 size_t start; | |
| 99 size_t end; | |
| 100 GURL url; | |
| 101 }; | |
| 102 | |
| 103 base::string16 text; | |
| 104 std::vector<Link> links; | |
| 105 }; | |
| 106 | |
| 76 // Value to use when the InfoBar has no icon to show. | 107 // Value to use when the InfoBar has no icon to show. |
| 77 static const int kNoIconID; | 108 static const int kNoIconID; |
| 78 | 109 |
| 79 // Called when the InfoBar that owns this delegate is being destroyed. At | 110 // Called when the InfoBar that owns this delegate is being destroyed. At |
| 80 // this point nothing is visible onscreen. | 111 // this point nothing is visible onscreen. |
| 81 virtual ~InfoBarDelegate(); | 112 virtual ~InfoBarDelegate(); |
| 82 | 113 |
| 83 // Returns the type of the infobar. The type determines the appearance (such | 114 // Returns the type of the infobar. The type determines the appearance (such |
| 84 // as background color) of the infobar. | 115 // as background color) of the infobar. |
| 85 virtual Type GetInfoBarType() const; | 116 virtual Type GetInfoBarType() const; |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 96 virtual gfx::VectorIconId GetVectorIconId() const; | 127 virtual gfx::VectorIconId GetVectorIconId() const; |
| 97 | 128 |
| 98 // Returns the icon to be shown for this InfoBar. If the returned Image is | 129 // Returns the icon to be shown for this InfoBar. If the returned Image is |
| 99 // empty, no icon is shown. | 130 // empty, no icon is shown. |
| 100 // | 131 // |
| 101 // Most subclasses should not override this; override GetIconId() instead | 132 // Most subclasses should not override this; override GetIconId() instead |
| 102 // unless the infobar needs to show an image from somewhere other than the | 133 // unless the infobar needs to show an image from somewhere other than the |
| 103 // resource bundle as its icon. | 134 // resource bundle as its icon. |
| 104 virtual gfx::Image GetIcon() const; | 135 virtual gfx::Image GetIcon() const; |
| 105 | 136 |
| 137 // Returns the detailed information to be shown for this InfoBar. If the | |
| 138 // vector is empty, the details will not be shown. Not all platforms use this | |
| 139 // information. | |
| 140 virtual const std::vector<Detail>& GetDetails() const; | |
| 141 | |
| 142 // Returns the descriptive text to be shown for this InfoBar. If the vector is | |
| 143 // empty, the description will not be shown. Not all platforms use this | |
| 144 // information. | |
| 145 virtual const std::vector<Description>& GetDescriptions() const; | |
| 146 | |
| 106 // Returns true if the supplied |delegate| is equal to this one. Equality is | 147 // Returns true if the supplied |delegate| is equal to this one. Equality is |
| 107 // left to the implementation to define. This function is called by the | 148 // left to the implementation to define. This function is called by the |
| 108 // InfoBarManager when determining whether or not a delegate should be | 149 // InfoBarManager when determining whether or not a delegate should be |
| 109 // added because a matching one already exists. If this function returns true, | 150 // added because a matching one already exists. If this function returns true, |
| 110 // the InfoBarManager will not add the new delegate because it considers | 151 // the InfoBarManager will not add the new delegate because it considers |
| 111 // one to already be present. | 152 // one to already be present. |
| 112 virtual bool EqualsDelegate(InfoBarDelegate* delegate) const; | 153 virtual bool EqualsDelegate(InfoBarDelegate* delegate) const; |
| 113 | 154 |
| 114 // Returns true if the InfoBar should be closed automatically after the page | 155 // Returns true if the InfoBar should be closed automatically after the page |
| 115 // is navigated. By default this returns true if the navigation is to a new | 156 // is navigated. By default this returns true if the navigation is to a new |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 148 | 189 |
| 149 InfoBar* infobar() { return infobar_; } | 190 InfoBar* infobar() { return infobar_; } |
| 150 | 191 |
| 151 private: | 192 private: |
| 152 // The InfoBar associated with us. | 193 // The InfoBar associated with us. |
| 153 InfoBar* infobar_; | 194 InfoBar* infobar_; |
| 154 | 195 |
| 155 // The ID of the active navigation entry at the time we became owned. | 196 // The ID of the active navigation entry at the time we became owned. |
| 156 int nav_entry_id_; | 197 int nav_entry_id_; |
| 157 | 198 |
| 199 std::vector<Detail> empty_details_; | |
| 200 std::vector<Description> empty_descriptions_; | |
| 201 | |
| 158 DISALLOW_COPY_AND_ASSIGN(InfoBarDelegate); | 202 DISALLOW_COPY_AND_ASSIGN(InfoBarDelegate); |
| 159 }; | 203 }; |
| 160 | 204 |
| 161 } // namespace infobars | 205 } // namespace infobars |
| 162 | 206 |
| 163 #endif // COMPONENTS_INFOBARS_CORE_INFOBAR_DELEGATE_H_ | 207 #endif // COMPONENTS_INFOBARS_CORE_INFOBAR_DELEGATE_H_ |
| OLD | NEW |