// Copyright (c) 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.

#ifndef CHROME_BROWSER_UI_BROWSER_TOOLBAR_MODEL_DELEGATE_H_
#define CHROME_BROWSER_UI_BROWSER_TOOLBAR_MODEL_DELEGATE_H_

#include "base/compiler_specific.h"
#include "base/macros.h"
#include "chrome/browser/ui/toolbar/toolbar_model_delegate.h"

class Browser;

// Implementation of ToolbarModelDelegate which uses an instance of
// Browser in order to fulfil its duties.
class BrowserToolbarModelDelegate : public ToolbarModelDelegate {
 public:
  explicit BrowserToolbarModelDelegate(Browser* browser);
  ~BrowserToolbarModelDelegate() override;

  // ToolbarModelDelegate:
  content::WebContents* GetActiveWebContents() const override;

 private:
  Browser* browser_;

  DISALLOW_COPY_AND_ASSIGN(BrowserToolbarModelDelegate);
};

#endif  // CHROME_BROWSER_UI_BROWSER_TOOLBAR_MODEL_DELEGATE_H_
