Home | History | Annotate | Download | only in location_bar
      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_VIEWS_LOCATION_BAR_GENERATED_CREDIT_CARD_VIEW_H_
      6 #define CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_GENERATED_CREDIT_CARD_VIEW_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/compiler_specific.h"
     10 #include "chrome/browser/ui/autofill/generated_credit_card_bubble_controller.h"
     11 #include "chrome/browser/ui/views/location_bar/location_bar_decoration_view.h"
     12 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
     13 #include "ui/views/controls/image_view.h"
     14 
     15 namespace autofill {
     16 class GeneratedCreditCardBubbleController;
     17 }
     18 
     19 ////////////////////////////////////////////////////////////////////////////////
     20 //
     21 // GeneratedCreditCardView
     22 //
     23 //  An icon that shows up in the omnibox after successfully generating a credit
     24 //  card number. Used as an anchor and click target to show the associated
     25 //  bubble with more details about the credit cards saved or used.
     26 //
     27 ////////////////////////////////////////////////////////////////////////////////
     28 class GeneratedCreditCardView : public LocationBarDecorationView {
     29  public:
     30   explicit GeneratedCreditCardView(LocationBarView::Delegate* delegate);
     31   virtual ~GeneratedCreditCardView();
     32 
     33   void Update();
     34 
     35  protected:
     36   // LocationBarDecorationView:
     37   virtual bool CanHandleClick() const OVERRIDE;
     38   virtual void OnClick() OVERRIDE;
     39 
     40  private:
     41   // Helper to get the GeneratedCreditCardBubbleController associated with the
     42   // current web contents.
     43   autofill::GeneratedCreditCardBubbleController* GetController() const;
     44 
     45   LocationBarView::Delegate* delegate_;  // weak; outlives us.
     46 
     47   DISALLOW_COPY_AND_ASSIGN(GeneratedCreditCardView);
     48 };
     49 
     50 #endif  // CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_GENERATED_CREDIT_CARD_VIEW_H_
     51