172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// found in the LICENSE file. 472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#ifndef CHROME_BROWSER_UI_VIEWS_INFOBARS_CONFIRM_INFOBAR_H_ 672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#define CHROME_BROWSER_UI_VIEWS_INFOBARS_CONFIRM_INFOBAR_H_ 772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#pragma once 872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "chrome/browser/ui/views/infobars/infobar_view.h" 1072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "views/controls/link.h" 1172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 1272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenclass ConfirmInfoBarDelegate; 1372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsennamespace views { 1472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenclass Label; 15dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenclass TextButton; 1672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen} 1772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 1872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// An infobar that shows a message, up to two optional buttons, and an optional, 1972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// right-aligned link. This is commonly used to do things like: 2072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// "Would you like to do X? [Yes] [No] _Learn More_ [x]" 21dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenclass ConfirmInfoBar : public InfoBarView, 2272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen public views::LinkController { 2372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen public: 2472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen explicit ConfirmInfoBar(ConfirmInfoBarDelegate* delegate); 2572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 2672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen private: 2772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen virtual ~ConfirmInfoBar(); 2872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 2972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // InfoBarView: 3072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen virtual void Layout(); 3172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen virtual void ViewHierarchyChanged(bool is_add, View* parent, View* child); 3272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen virtual void ButtonPressed(views::Button* sender, const views::Event& event); 33dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual int ContentMinimumWidth() const; 3472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 3572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // views::LinkController: 3672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen virtual void LinkActivated(views::Link* source, int event_flags); 3772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 3872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen ConfirmInfoBarDelegate* GetDelegate(); 3972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 40dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen views::Label* label_; 41dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen views::TextButton* ok_button_; 42dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen views::TextButton* cancel_button_; 4372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen views::Link* link_; 4472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 4572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen DISALLOW_COPY_AND_ASSIGN(ConfirmInfoBar); 4672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}; 4772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 4872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#endif // CHROME_BROWSER_UI_VIEWS_INFOBARS_CONFIRM_INFOBAR_H_ 49