| 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 #ifndef CHROME_BROWSER_UI_VIEWS_PROFILE_CHOOSER_VIEW_H_ | 5 #ifndef CHROME_BROWSER_UI_VIEWS_PROFILE_CHOOSER_VIEW_H_ |
| 6 #define CHROME_BROWSER_UI_VIEWS_PROFILE_CHOOSER_VIEW_H_ | 6 #define CHROME_BROWSER_UI_VIEWS_PROFILE_CHOOSER_VIEW_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "chrome/browser/profiles/avatar_menu.h" | 11 #include "chrome/browser/profiles/avatar_menu.h" |
| 12 #include "chrome/browser/profiles/avatar_menu_observer.h" | 12 #include "chrome/browser/profiles/avatar_menu_observer.h" |
| 13 #include "google_apis/gaia/oauth2_token_service.h" |
| 13 #include "ui/views/bubble/bubble_delegate.h" | 14 #include "ui/views/bubble/bubble_delegate.h" |
| 14 #include "ui/views/controls/button/button.h" | 15 #include "ui/views/controls/button/button.h" |
| 15 #include "ui/views/controls/link_listener.h" | 16 #include "ui/views/controls/link_listener.h" |
| 16 #include "ui/views/controls/styled_label_listener.h" | 17 #include "ui/views/controls/styled_label_listener.h" |
| 17 | 18 |
| 18 namespace gfx { | 19 namespace gfx { |
| 19 class Image; | 20 class Image; |
| 20 } | 21 } |
| 21 | 22 |
| 22 namespace views { | 23 namespace views { |
| 23 class Link; | 24 class Link; |
| 24 class TextButton; | 25 class TextButton; |
| 25 class LabelButton; | 26 class LabelButton; |
| 26 } | 27 } |
| 27 | 28 |
| 28 class Browser; | 29 class Browser; |
| 29 class ProfileItemView; | 30 class ProfileItemView; |
| 30 | 31 |
| 31 // This bubble view is displayed when the user clicks on the avatar button. | 32 // This bubble view is displayed when the user clicks on the avatar button. |
| 32 // It displays a list of profiles and allows users to switch between profiles. | 33 // It displays a list of profiles and allows users to switch between profiles. |
| 33 class ProfileChooserView : public views::BubbleDelegateView, | 34 class ProfileChooserView : public views::BubbleDelegateView, |
| 34 public views::ButtonListener, | 35 public views::ButtonListener, |
| 35 public views::LinkListener, | 36 public views::LinkListener, |
| 36 public AvatarMenuObserver { | 37 public AvatarMenuObserver, |
| 38 public OAuth2TokenService::Observer { |
| 37 public: | 39 public: |
| 38 // Shows the bubble if one is not already showing. This allows us to easily | 40 // Shows the bubble if one is not already showing. This allows us to easily |
| 39 // make a button toggle the bubble on and off when clicked: we unconditionally | 41 // make a button toggle the bubble on and off when clicked: we unconditionally |
| 40 // call this function when the button is clicked and if the bubble isn't | 42 // call this function when the button is clicked and if the bubble isn't |
| 41 // showing it will appear while if it is showing, nothing will happen here and | 43 // showing it will appear while if it is showing, nothing will happen here and |
| 42 // the existing bubble will auto-close due to focus loss. | 44 // the existing bubble will auto-close due to focus loss. |
| 43 static void ShowBubble(views::View* anchor_view, | 45 static void ShowBubble(views::View* anchor_view, |
| 44 views::BubbleBorder::Arrow arrow, | 46 views::BubbleBorder::Arrow arrow, |
| 45 views::BubbleBorder::BubbleAlignment border_alignment, | 47 views::BubbleBorder::BubbleAlignment border_alignment, |
| 46 const gfx::Rect& anchor_rect, | 48 const gfx::Rect& anchor_rect, |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 // ButtonListener: | 85 // ButtonListener: |
| 84 virtual void ButtonPressed(views::Button* sender, | 86 virtual void ButtonPressed(views::Button* sender, |
| 85 const ui::Event& event) OVERRIDE; | 87 const ui::Event& event) OVERRIDE; |
| 86 | 88 |
| 87 // LinkListener: | 89 // LinkListener: |
| 88 virtual void LinkClicked(views::Link* sender, int event_flags) OVERRIDE; | 90 virtual void LinkClicked(views::Link* sender, int event_flags) OVERRIDE; |
| 89 | 91 |
| 90 // AvatarMenuObserver: | 92 // AvatarMenuObserver: |
| 91 virtual void OnAvatarMenuChanged(AvatarMenu* avatar_menu) OVERRIDE; | 93 virtual void OnAvatarMenuChanged(AvatarMenu* avatar_menu) OVERRIDE; |
| 92 | 94 |
| 95 // OAuth2TokenService::Observer overrides. |
| 96 virtual void OnRefreshTokenAvailable(const std::string& account_id) OVERRIDE; |
| 97 virtual void OnRefreshTokenRevoked(const std::string& account_id) OVERRIDE; |
| 98 |
| 93 static ProfileChooserView* profile_bubble_; | 99 static ProfileChooserView* profile_bubble_; |
| 94 static bool close_on_deactivate_; | 100 static bool close_on_deactivate_; |
| 95 | 101 |
| 96 void ResetLinksAndButtons(); | 102 void ResetLinksAndButtons(); |
| 97 | 103 |
| 98 // Shows either the profile chooser or the account management views. | 104 // Shows either the profile chooser or the account management views. |
| 99 void ShowView(BubbleViewMode view_to_display, | 105 void ShowView(BubbleViewMode view_to_display, |
| 100 AvatarMenu* avatar_menu); | 106 AvatarMenu* avatar_menu); |
| 101 | 107 |
| 102 // Creates the main profile card for the profile |avatar_item|. |is_guest| | 108 // Creates the main profile card for the profile |avatar_item|. |is_guest| |
| (...skipping 24 matching lines...) Expand all Loading... |
| 127 views::Link* signin_current_profile_link_; | 133 views::Link* signin_current_profile_link_; |
| 128 views::Link* change_photo_link_; | 134 views::Link* change_photo_link_; |
| 129 | 135 |
| 130 // Action buttons. | 136 // Action buttons. |
| 131 views::TextButton* guest_button_; | 137 views::TextButton* guest_button_; |
| 132 views::TextButton* end_guest_button_; | 138 views::TextButton* end_guest_button_; |
| 133 views::TextButton* add_user_button_; | 139 views::TextButton* add_user_button_; |
| 134 views::TextButton* users_button_; | 140 views::TextButton* users_button_; |
| 135 views::LabelButton* add_account_button_; | 141 views::LabelButton* add_account_button_; |
| 136 | 142 |
| 143 // Active view mode. |
| 144 BubbleViewMode view_mode_; |
| 145 |
| 137 DISALLOW_COPY_AND_ASSIGN(ProfileChooserView); | 146 DISALLOW_COPY_AND_ASSIGN(ProfileChooserView); |
| 138 }; | 147 }; |
| 139 | 148 |
| 140 #endif // CHROME_BROWSER_UI_VIEWS_PROFILE_CHOOSER_VIEW_H_ | 149 #endif // CHROME_BROWSER_UI_VIEWS_PROFILE_CHOOSER_VIEW_H_ |
| OLD | NEW |