1// Copyright 2013 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#ifndef CHROME_BROWSER_UI_COCOA_INFOBARS_INFOBAR_CONTAINER_COCOA_H_
6#define CHROME_BROWSER_UI_COCOA_INFOBARS_INFOBAR_CONTAINER_COCOA_H_
7
8#include "components/infobars/core/infobar_container.h"
9
10@class InfoBarContainerController;
11
12// The cocoa specific implementation of InfoBarContainer. This mostly serves as
13// a bridge for InfoBarContainerController.
14class InfoBarContainerCocoa : public infobars::InfoBarContainer,
15                              public infobars::InfoBarContainer::Delegate {
16 public:
17  explicit InfoBarContainerCocoa(InfoBarContainerController* controller);
18  virtual ~InfoBarContainerCocoa();
19
20 private:
21  // InfoBarContainer:
22  virtual void PlatformSpecificAddInfoBar(infobars::InfoBar* infobar,
23                                          size_t position) OVERRIDE;
24  virtual void PlatformSpecificRemoveInfoBar(
25      infobars::InfoBar* infobar) OVERRIDE;
26
27  // InfoBarContainer::Delegate:
28  virtual SkColor GetInfoBarSeparatorColor() const OVERRIDE;
29  virtual void InfoBarContainerStateChanged(bool is_animating) OVERRIDE;
30  virtual bool DrawInfoBarArrows(int* x) const OVERRIDE;
31
32  InfoBarContainerController* controller_;  // weak, owns us.
33
34  DISALLOW_COPY_AND_ASSIGN(InfoBarContainerCocoa);
35};
36
37#endif  // CHROME_BROWSER_UI_COCOA_INFOBARS_INFOBAR_CONTAINER_COCOA_H_
38