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 10ManagePasswordsIcon::ManagePasswordsIcon() 11 : icon_id_(0), 12 tooltip_text_id_(0), 13 state_(password_manager::ui::INACTIVE_STATE), 14 active_(false) { 15} 16 17ManagePasswordsIcon::~ManagePasswordsIcon() { 18} 19 20void ManagePasswordsIcon::SetActive(bool active) { 21 if (active_ == active) 22 return; 23 active_ = active; 24 UpdateIDs(); 25 UpdateVisibleUI(); 26} 27 28void ManagePasswordsIcon::SetState(password_manager::ui::State state) { 29 if (state_ == state) 30 return; 31 state_ = state; 32 UpdateIDs(); 33 UpdateVisibleUI(); 34} 35 36void 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} 57