Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1241)

Unified Diff: chrome/browser/ui/cocoa/location_bar/generated_credit_card_decoration.mm

Issue 40483003: [rAC, OSX] Add "generated CC" info bubble. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Final fixes (arrow position etc.) Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/location_bar/generated_credit_card_decoration.mm
diff --git a/chrome/browser/ui/cocoa/location_bar/generated_credit_card_decoration.mm b/chrome/browser/ui/cocoa/location_bar/generated_credit_card_decoration.mm
new file mode 100644
index 0000000000000000000000000000000000000000..6b3468b728cb6c30c064066ad33836a8b45b6b6f
--- /dev/null
+++ b/chrome/browser/ui/cocoa/location_bar/generated_credit_card_decoration.mm
@@ -0,0 +1,74 @@
+// Copyright (c) 2013 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.
+
+#include "chrome/browser/ui/cocoa/location_bar/generated_credit_card_decoration.h"
+
+#include "chrome/browser/ui/autofill/generated_credit_card_bubble_controller.h"
+#import "chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h"
+#include "grit/theme_resources.h"
+
+GeneratedCreditCardDecoration::GeneratedCreditCardDecoration(
+ LocationBarViewMac* owner) : owner_(owner) {
+}
+
+GeneratedCreditCardDecoration::~GeneratedCreditCardDecoration() {
+}
+
+void GeneratedCreditCardDecoration::Update() {
+ autofill::GeneratedCreditCardBubbleController* controller = GetController();
+ if (controller && !controller->AnchorIcon().IsEmpty()) {
+ SetVisible(true);
+ SetImage(controller->AnchorIcon().AsNSImage());
+ } else {
+ SetVisible(false);
+ SetImage(NULL);
Scott Hess - ex-Googler 2013/10/31 20:23:19 nil rather than NULL for objc objects.
groby-ooo-7-16 2013/10/31 22:55:47 Done.
+ }
+}
+
+NSPoint GeneratedCreditCardDecoration::GetBubblePointInFrame(NSRect frame) {
+ const NSRect draw_frame = GetDrawRectInFrame(frame);
+ return NSMakePoint(NSMidX(draw_frame),
+ NSMaxY(draw_frame));
Scott Hess - ex-Googler 2013/10/31 20:23:19 Alignment, and probably can have NSMakePoint() as
groby-ooo-7-16 2013/10/31 22:55:47 Done.
+}
+
+bool GeneratedCreditCardDecoration::AcceptsMousePress() {
+ autofill::GeneratedCreditCardBubbleController* controller = GetController();
+ return controller && !controller->IsHiding();
+}
+
+bool GeneratedCreditCardDecoration::OnMousePressed(NSRect frame) {
+ autofill::GeneratedCreditCardBubbleController* controller = GetController();
Scott Hess - ex-Googler 2013/10/31 20:23:19 Alignment.
groby-ooo-7-16 2013/10/31 22:55:47 Done.
+ if (controller) {
+ controller->OnAnchorClicked();
+ return true;
+ }
+ return false;
Scott Hess - ex-Googler 2013/10/31 20:23:19 if (!controller) return false;
groby-ooo-7-16 2013/10/31 22:55:47 Done.
+}
+
+autofill::GeneratedCreditCardBubbleController* GeneratedCreditCardDecoration::
+ GetController() const {
+ using autofill::GeneratedCreditCardBubbleController;
Scott Hess - ex-Googler 2013/10/31 20:23:19 Maybe pull out to file scope so that other fns can
groby-ooo-7-16 2013/10/31 22:55:47 It is. I thought we were function level only, but
+
+ content::WebContents* wc = owner_->GetWebContents();
+ if (!wc || owner_->GetToolbarModel()->input_in_progress()) {
+ return NULL;
+ }
+
+ // TODO(groby): Temporary hack to enforce visibility and controller existence.
+ // This highlights the point that some icons probably have a per-WebContent
+ // state and thus need a per-WebContent controller, which is best lazily
+ // initialized.
+ GeneratedCreditCardBubbleController* controller =
+ GeneratedCreditCardBubbleController::FromWebContents(wc);
+
+ if (!controller) {
+ autofill::GeneratedCreditCardBubbleController::Show(
+ wc, base::UTF8ToUTF16("foo"), base::UTF8ToUTF16("bar"));
Scott Hess - ex-Googler 2013/10/31 20:23:19 Is the TODO actually about this line?
groby-ooo-7-16 2013/10/31 22:55:47 Yes. And they both can die - this code was for tes
+ controller = GeneratedCreditCardBubbleController::FromWebContents(wc);
+ }
+ DCHECK(controller);
+
+ return autofill::GeneratedCreditCardBubbleController::FromWebContents(wc);
Scott Hess - ex-Googler 2013/10/31 20:23:19 Is this different from controller?
groby-ooo-7-16 2013/10/31 22:55:47 Nope. Done.
+}
+

Powered by Google App Engine
This is Rietveld 408576698