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 13class LocationBarViewMac; 14 15namespace autofill { 16class 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. 22class 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