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_COCOA_LOCATION_BAR_GENERATED_CREDIT_CARD_DECORATION_H_
      6 #define CHROME_BROWSER_UI_COCOA_LOCATION_BAR_GENERATED_CREDIT_CARD_DECORATION_H_
      7 
      8 #import <Cocoa/Cocoa.h>
      9 
     10 #include "base/basictypes.h"
     11 #include "chrome/browser/ui/cocoa/location_bar/image_decoration.h"
     12 
     13 class LocationBarViewMac;
     14 
     15 namespace autofill {
     16 class GeneratedCreditCardBubbleController;
     17 }
     18 
     19 // An icon that shows up in the omnibox after successfully generating a credit
     20 // card number. Used as an anchor and click target to show the associated
     21 // bubble with more details about the credit cards saved or used.
     22 class GeneratedCreditCardDecoration : public ImageDecoration {
     23  public:
     24   explicit GeneratedCreditCardDecoration(LocationBarViewMac* owner);
     25   virtual ~GeneratedCreditCardDecoration();
     26 
     27   // Called when this decoration should update its visible status.
     28   void Update();
     29 
     30   // Implement |LocationBarDecoration|.
     31   // N.B. - this is identical to LocationBarDecorationView's OnClick
     32   // and canHandleClick.
     33   virtual bool AcceptsMousePress() OVERRIDE;
     34   virtual bool OnMousePressed(NSRect frame, NSPoint location) OVERRIDE;
     35   virtual NSPoint GetBubblePointInFrame(NSRect frame) OVERRIDE;
     36 
     37  private:
     38   // Helper to get the GeneratedCreditCardBubbleController associated with the
     39   // current web contents.
     40   autofill::GeneratedCreditCardBubbleController* GetController() const;
     41 
     42   // The control that owns this. Weak.
     43   LocationBarViewMac* owner_;
     44 
     45   DISALLOW_COPY_AND_ASSIGN(GeneratedCreditCardDecoration);
     46 };
     47 
     48 #endif  // CHROME_BROWSER_UI_COCOA_LOCATION_BAR_GENERATED_CREDIT_CARD_DECORATION_H_
     49 
     50