| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/views/passwords/manage_passwords_icon_views.h" | 5 #include "chrome/browser/ui/views/passwords/manage_passwords_icon_views.h" |
| 6 | 6 |
| 7 #include "chrome/app/chrome_command_ids.h" | 7 #include "chrome/app/chrome_command_ids.h" |
| 8 #include "chrome/browser/command_updater.h" | 8 #include "chrome/browser/command_updater.h" |
| 9 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h" | 9 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h" |
| 10 #include "chrome/browser/ui/views/passwords/manage_passwords_bubble_view.h" | 10 #include "chrome/browser/ui/views/passwords/manage_passwords_bubble_view.h" |
| 11 #include "chrome/grit/generated_resources.h" | 11 #include "chrome/grit/generated_resources.h" |
| 12 #include "components/password_manager/core/common/password_manager_ui.h" | 12 #include "components/password_manager/core/common/password_manager_ui.h" |
| 13 #include "ui/base/l10n/l10n_util.h" | 13 #include "ui/base/l10n/l10n_util.h" |
| 14 #include "ui/base/resource/resource_bundle.h" | 14 #include "ui/base/resource/resource_bundle.h" |
| 15 #include "ui/gfx/vector_icons_public.h" | 15 #include "ui/gfx/vector_icons_public.h" |
| 16 | 16 |
| 17 ManagePasswordsIconViews::ManagePasswordsIconViews(CommandUpdater* updater) | 17 ManagePasswordsIconViews::ManagePasswordsIconViews(CommandUpdater* updater) |
| 18 : BubbleIconView(updater, IDC_MANAGE_PASSWORDS_FOR_PAGE), | 18 : BubbleIconView(updater, IDC_MANAGE_PASSWORDS_FOR_PAGE), |
| 19 state_(password_manager::ui::INACTIVE_STATE) { | 19 state_(password_manager::ui::INACTIVE_STATE) { |
| 20 SetFocusable(true); | 20 SetFocusable(true); |
| 21 UpdateUiForState(); | 21 UpdateUiForState(); |
| 22 } | 22 } |
| 23 | 23 |
| 24 ManagePasswordsIconViews::~ManagePasswordsIconViews() {} | 24 ManagePasswordsIconViews::~ManagePasswordsIconViews() {} |
| 25 | 25 |
| 26 void ManagePasswordsIconViews::SetState(password_manager::ui::State state) { | 26 void ManagePasswordsIconViews::SetState(password_manager::ui::State state) { |
| 27 if (state_ == state) | 27 if (state_ == state) |
| 28 return; | 28 return; |
| 29 // If there is an opened bubble for the current icon it should go away. | 29 // If there is an opened bubble for the current icon it should go away. |
| 30 ManagePasswordsBubbleView::CloseBubble(); | 30 ManagePasswordsBubbleView::CloseCurrentBubble(); |
| 31 state_ = state; | 31 state_ = state; |
| 32 UpdateUiForState(); | 32 UpdateUiForState(); |
| 33 } | 33 } |
| 34 | 34 |
| 35 void ManagePasswordsIconViews::UpdateUiForState() { | 35 void ManagePasswordsIconViews::UpdateUiForState() { |
| 36 if (state_ == password_manager::ui::INACTIVE_STATE) { | 36 if (state_ == password_manager::ui::INACTIVE_STATE) { |
| 37 SetVisible(false); | 37 SetVisible(false); |
| 38 return; | 38 return; |
| 39 } | 39 } |
| 40 | 40 |
| 41 SetTooltipText(l10n_util::GetStringUTF16( | 41 SetTooltipText(l10n_util::GetStringUTF16( |
| 42 state_ == password_manager::ui::PENDING_PASSWORD_STATE | 42 state_ == password_manager::ui::PENDING_PASSWORD_STATE |
| 43 ? IDS_PASSWORD_MANAGER_TOOLTIP_SAVE | 43 ? IDS_PASSWORD_MANAGER_TOOLTIP_SAVE |
| 44 : IDS_PASSWORD_MANAGER_TOOLTIP_MANAGE)); | 44 : IDS_PASSWORD_MANAGER_TOOLTIP_MANAGE)); |
| 45 | 45 |
| 46 SetVisible(true); | 46 SetVisible(true); |
| 47 | 47 |
| 48 // We may be about to automatically pop up a ManagePasswordsBubbleView. | 48 // We may be about to automatically pop up a ManagePasswordsBubbleView. |
| 49 // Force layout of the icon's parent now; the bubble will be incorrectly | 49 // Force layout of the icon's parent now; the bubble will be incorrectly |
| 50 // positioned otherwise, as the icon won't have been drawn into position. | 50 // positioned otherwise, as the icon won't have been drawn into position. |
| 51 parent()->Layout(); | 51 parent()->Layout(); |
| 52 } | 52 } |
| 53 | 53 |
| 54 void ManagePasswordsIconViews::OnExecuting( | 54 void ManagePasswordsIconViews::OnExecuting( |
| 55 BubbleIconView::ExecuteSource source) {} | 55 BubbleIconView::ExecuteSource source) {} |
| 56 | 56 |
| 57 bool ManagePasswordsIconViews::OnMousePressed(const ui::MouseEvent& event) { | 57 bool ManagePasswordsIconViews::OnMousePressed(const ui::MouseEvent& event) { |
| 58 bool result = BubbleIconView::OnMousePressed(event); | 58 bool result = BubbleIconView::OnMousePressed(event); |
| 59 ManagePasswordsBubbleView::CloseBubble(); | 59 ManagePasswordsBubbleView::CloseCurrentBubble(); |
| 60 return result; | 60 return result; |
| 61 } | 61 } |
| 62 | 62 |
| 63 bool ManagePasswordsIconViews::OnKeyPressed(const ui::KeyEvent& event) { | 63 bool ManagePasswordsIconViews::OnKeyPressed(const ui::KeyEvent& event) { |
| 64 // Space is always ignored because otherwise the bubble appears with the | 64 // Space is always ignored because otherwise the bubble appears with the |
| 65 // default button down. Releasing the space is equivalent to clicking this | 65 // default button down. Releasing the space is equivalent to clicking this |
| 66 // button. | 66 // button. |
| 67 if (event.key_code() == ui::VKEY_SPACE) | 67 if (event.key_code() == ui::VKEY_SPACE) |
| 68 return true; | 68 return true; |
| 69 if (event.key_code() == ui::VKEY_RETURN && IsBubbleShowing()) { | 69 if (event.key_code() == ui::VKEY_RETURN && IsBubbleShowing()) { |
| 70 // If the bubble's open, the icon should transfer its focus to the bubble. | 70 // If the bubble's open, the icon should transfer its focus to the bubble. |
| 71 // If it still somehow got this key event, the bubble shouldn't be reopened. | 71 // If it still somehow got this key event, the bubble shouldn't be reopened. |
| 72 return true; | 72 return true; |
| 73 } | 73 } |
| 74 return BubbleIconView::OnKeyPressed(event); | 74 return BubbleIconView::OnKeyPressed(event); |
| 75 } | 75 } |
| 76 | 76 |
| 77 views::BubbleDelegateView* ManagePasswordsIconViews::GetBubble() const { | 77 views::BubbleDialogDelegateView* ManagePasswordsIconViews::GetBubble() const { |
| 78 return ManagePasswordsBubbleView::manage_password_bubble(); | 78 return ManagePasswordsBubbleView::manage_password_bubble(); |
| 79 } | 79 } |
| 80 | 80 |
| 81 gfx::VectorIconId ManagePasswordsIconViews::GetVectorIcon() const { | 81 gfx::VectorIconId ManagePasswordsIconViews::GetVectorIcon() const { |
| 82 return gfx::VectorIconId::AUTOLOGIN; | 82 return gfx::VectorIconId::AUTOLOGIN; |
| 83 } | 83 } |
| 84 | 84 |
| 85 void ManagePasswordsIconViews::AboutToRequestFocusFromTabTraversal( | 85 void ManagePasswordsIconViews::AboutToRequestFocusFromTabTraversal( |
| 86 bool reverse) { | 86 bool reverse) { |
| 87 if (IsBubbleShowing()) | 87 if (IsBubbleShowing()) |
| 88 ManagePasswordsBubbleView::ActivateBubble(); | 88 ManagePasswordsBubbleView::ActivateBubble(); |
| 89 } | 89 } |
| OLD | NEW |