5a12917569c6274ae2a45ae4fa0d4e987a567b78
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / passwords / manage_passwords_icon.cc
1 // Copyright 2014 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 #include "chrome/browser/ui/passwords/manage_passwords_icon.h"
6
7 #include "chrome/grit/generated_resources.h"
8 #include "grit/theme_resources.h"
9
10 ManagePasswordsIcon::ManagePasswordsIcon()
11     : icon_id_(0),
12       tooltip_text_id_(0),
13       state_(password_manager::ui::INACTIVE_STATE),
14       active_(false) {
15 }
16
17 ManagePasswordsIcon::~ManagePasswordsIcon() {
18 }
19
20 void ManagePasswordsIcon::SetActive(bool active) {
21   if (active_ == active)
22     return;
23   active_ = active;
24   UpdateIDs();
25   UpdateVisibleUI();
26 }
27
28 void ManagePasswordsIcon::SetState(password_manager::ui::State state) {
29   if (state_ == state)
30     return;
31   state_ = state;
32   UpdateIDs();
33   UpdateVisibleUI();
34 }
35
36 void ManagePasswordsIcon::UpdateIDs() {
37   // If the icon is inactive: clear out its image and tooltip and exit early.
38   if (state() == password_manager::ui::INACTIVE_STATE) {
39     icon_id_ = 0;
40     tooltip_text_id_ = 0;
41     return;
42   }
43
44   // Otherwise, start with the correct values for MANAGE_STATE, and adjust
45   // things accordingly if we're either in BLACKLIST_STATE or PENDING_STATE.
46   // TODO(dconnelly): Figure out how to share the resources with Android.
47 #if !defined(OS_ANDROID)
48   icon_id_ = active() ? IDR_SAVE_PASSWORD_ACTIVE : IDR_SAVE_PASSWORD_INACTIVE;
49   tooltip_text_id_ = IDS_PASSWORD_MANAGER_TOOLTIP_MANAGE;
50   if (state() == password_manager::ui::BLACKLIST_STATE)
51     icon_id_ = active() ? IDR_SAVE_PASSWORD_DISABLED_ACTIVE
52                         : IDR_SAVE_PASSWORD_DISABLED_INACTIVE;
53   else if (password_manager::ui::IsPendingState(state()))
54     tooltip_text_id_ = IDS_PASSWORD_MANAGER_TOOLTIP_SAVE;
55 #endif
56 }