blob: 0b241629a75a71c1b507e0e68699b2009b86001d [file] [log] [blame]
// Copyright 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ios/chrome/browser/infobars/infobar_container_ios.h"
#include "ios/chrome/browser/infobars/infobar.h"
#import "ios/chrome/browser/ui/infobars/infobar_container_consumer.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
InfoBarContainerIOS::InfoBarContainerIOS(id<InfobarContainerConsumer> consumer)
: InfoBarContainer(nullptr), consumer_(consumer) {}
InfoBarContainerIOS::~InfoBarContainerIOS() {
RemoveAllInfoBarsForDestruction();
}
void InfoBarContainerIOS::PlatformSpecificAddInfoBar(infobars::InfoBar* infobar,
size_t position) {
InfoBarIOS* infobar_ios = static_cast<InfoBarIOS*>(infobar);
[consumer_ addInfoBarView:infobar_ios->view() position:position];
}
void InfoBarContainerIOS::PlatformSpecificRemoveInfoBar(
infobars::InfoBar* infobar) {
InfoBarIOS* infobar_ios = static_cast<InfoBarIOS*>(infobar);
infobar_ios->RemoveView();
}
void InfoBarContainerIOS::PlatformSpecificInfoBarStateChanged(
bool is_animating) {
[consumer_ setUserInteractionEnabled:!is_animating];
}