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

Unified Diff: chrome/browser/ui/views/extensions/extension_installed_bubble_view.h

Issue 1503583002: [Extensions Views] Update the extension installed bubble's sync promo (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Sky's Created 5 years 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/views/extensions/extension_installed_bubble_view.h
diff --git a/chrome/browser/ui/views/extensions/extension_installed_bubble_view.h b/chrome/browser/ui/views/extensions/extension_installed_bubble_view.h
index b4beaf22bffdef38c78f427aaffefbc954ec7684..d6609b1a6a87e3ed23a94a1d65e6896929dc4afa 100644
--- a/chrome/browser/ui/views/extensions/extension_installed_bubble_view.h
+++ b/chrome/browser/ui/views/extensions/extension_installed_bubble_view.h
@@ -7,15 +7,24 @@
#include "base/macros.h"
#include "chrome/browser/ui/extensions/extension_installed_bubble.h"
+#include "chrome/browser/ui/sync/bubble_sync_promo_delegate.h"
#include "components/bubble/bubble_reference.h"
#include "ui/views/bubble/bubble_delegate.h"
+#include "ui/views/controls/button/button.h"
+#include "ui/views/controls/link_listener.h"
class Browser;
+class BubbleSyncPromoView;
namespace extensions {
class Extension;
}
+namespace views {
+class LabelButton;
+class Link;
+}
+
// Provides feedback to the user upon successful installation of an
// extension. Depending on the type of extension, the Bubble will
// point to:
@@ -25,7 +34,10 @@ class Extension;
// bar which is shown while the Bubble is shown.
// GENERIC -> The app menu. This case includes pageActions that don't
// specify a default icon.
-class ExtensionInstalledBubbleView : public views::BubbleDelegateView {
+class ExtensionInstalledBubbleView : public BubbleSyncPromoDelegate,
+ public views::BubbleDelegateView,
+ public views::ButtonListener,
+ public views::LinkListener {
public:
ExtensionInstalledBubbleView(ExtensionInstalledBubble* bubble,
BubbleReference bubble_reference);
@@ -34,6 +46,18 @@ class ExtensionInstalledBubbleView : public views::BubbleDelegateView {
// Recalculate the anchor position for this bubble.
void UpdateAnchorView();
+ void InitLayout(const ExtensionInstalledBubble& bubble);
+
+ private:
+ // The different options to show in the installed bubble.
+ enum Options {
+ NONE = 0,
+ HOW_TO_USE = 1 << 0,
+ HOW_TO_MANAGE = 1 << 1,
+ SHOW_KEYBINDING = 1 << 2,
+ SIGN_IN_PROMO = 1 << 3,
+ };
+
// views::BubbleDelegateView:
void WindowClosing() override;
gfx::Rect GetAnchorRect() const override;
@@ -41,12 +65,30 @@ class ExtensionInstalledBubbleView : public views::BubbleDelegateView {
void OnWidgetActivationChanged(views::Widget* widget, bool active) override;
bool AcceleratorPressed(const ui::Accelerator& accelerator) override;
- private:
+ // BubbleSyncPromoDelegate:
+ void OnSignInLinkClicked() override;
+
+ // views::LinkListener:
+ void LinkClicked(views::Link* source, int event_flags) override;
+
+ // views::ButtonListener:
+ void ButtonPressed(views::Button* sender, const ui::Event& event) override;
+
BubbleReference bubble_reference_;
const extensions::Extension* extension_;
Browser* browser_;
ExtensionInstalledBubble::BubbleType type_;
+ // A bitmask containing the various options of bubble sections to show.
+ int options_;
Finnur 2015/12/07 18:10:02 Nit: This one probably should be initialized to NO
Devlin 2015/12/07 20:57:51 Yep. Done.
+
+ // The sync promo section of the bubble.
+ BubbleSyncPromoView* sync_promo_;
+
+ views::LabelButton* close_;
+
+ views::Link* manage_shortcut_;
Finnur 2015/12/07 18:10:02 nit: While these are easy to understand on their o
Devlin 2015/12/07 20:57:51 Fair enough. :) Done.
+
DISALLOW_COPY_AND_ASSIGN(ExtensionInstalledBubbleView);
};

Powered by Google App Engine
This is Rietveld 408576698