1 // Copyright 2012 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.
5 #ifndef IOS_CHROME_BROWSER_INFOBARS_INFOBAR_CONTAINER_IOS_H_
6 #define IOS_CHROME_BROWSER_INFOBARS_INFOBAR_CONTAINER_IOS_H_
8 #include "components/infobars/core/infobar_container.h"
10 #include "base/mac/scoped_nsobject.h"
12 @
class InfoBarContainerView
;
15 // IOS infobar container specialization, managing infobars visibility so
16 // that only the front most one is visible at any time.
17 class InfoBarContainerIOS
: public infobars::InfoBarContainer
{
19 explicit InfoBarContainerIOS(infobars::InfoBarContainer::Delegate
* delegate
);
20 ~InfoBarContainerIOS() override
;
22 // Returns the UIView container.
23 InfoBarContainerView
* view();
25 // Hides the current infobar keeping the current state. If a new infobar is
26 // added, it will be hidden as well.
27 void SuspendInfobars();
29 // Restores the normal behavior of the infobars.
30 void RestoreInfobars();
33 void PlatformSpecificAddInfoBar(infobars::InfoBar
* infobar
,
34 size_t position
) override
;
35 void PlatformSpecificRemoveInfoBar(infobars::InfoBar
* infobar
) override
;
36 void PlatformSpecificInfoBarStateChanged(bool is_animating
) override
;
39 base::scoped_nsobject
<InfoBarContainerView
> container_view_
;
40 InfoBarContainer::Delegate
* delegate_
;
42 DISALLOW_COPY_AND_ASSIGN(InfoBarContainerIOS
);
45 #endif // IOS_CHROME_BROWSER_INFOBARS_INFOBAR_CONTAINER_IOS_H_