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

Unified Diff: chrome/browser/ui/passwords/manage_passwords_icon.h

Issue 250353003: Password bubble: refactor ManagePasswordsIconView. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: s/cc/h Created 6 years, 8 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/passwords/manage_passwords_icon.h
diff --git a/chrome/browser/ui/passwords/manage_passwords_icon.h b/chrome/browser/ui/passwords/manage_passwords_icon.h
new file mode 100644
index 0000000000000000000000000000000000000000..0a44406e85cac82350a47691f414b1ed051c5e9d
--- /dev/null
+++ b/chrome/browser/ui/passwords/manage_passwords_icon.h
@@ -0,0 +1,54 @@
+// Copyright 2014 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.
+
+#ifndef CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_ICON_H_
+#define CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_ICON_H_
+
+#include "base/basictypes.h"
+
+// Abstract base class for platform-specific password management icon views.
+class ManagePasswordsIcon {
+ public:
+ enum State {
+ // The icon should not be displayed.
+ INACTIVE_STATE,
+
+ // The user has blacklisted the current page; the icon should be visible,
+ // and correctly represent the password manager's disabled state.
+ BLACKLISTED_STATE,
+
+ // Offer the user the ability to manage passwords for the current page.
+ MANAGE_STATE,
+
+ // Offer the user the ability to save a pending password.
+ PENDING_STATE,
+ };
+
+ // Get/set the icon's state. Implementations of this class must implement
+ // SetStateInternal to do reasonable platform-specific things to represent
+ // the icon's state to the user.
+ void SetState(State state);
+ State state() const { return state_; }
+
+ // Shows the bubble without user interaction; should only be called from
+ // ManagePasswordsUIController.
+ //
+ // TODO(mkwst): This shouldn't be the IconView's responsiblity. Move it
+ // somewhere else as part of the refactoring in http://crbug.com/365678.
+ virtual void ShowBubbleWithoutUserInteraction() = 0;
+
+ protected:
+ ManagePasswordsIcon();
+ ~ManagePasswordsIcon();
+
+ // Called from SetState() iff the icon's state has changed.
+ virtual void SetStateInternal(State state) = 0;
+
+ private:
+ State state_;
+
+ DISALLOW_COPY_AND_ASSIGN(ManagePasswordsIcon);
+};
+
+#endif // CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_ICON_H_

Powered by Google App Engine
This is Rietveld 408576698