1a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// found in the LICENSE file. 4a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 5a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#ifndef ASH_SYSTEM_USER_ACCOUNTS_DETAILED_VIEW_H_ 6a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#define ASH_SYSTEM_USER_ACCOUNTS_DETAILED_VIEW_H_ 7a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 8a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include <map> 9a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include <string> 10a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 11a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ash/system/tray/tray_details_view.h" 12a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ash/system/tray/view_click_listener.h" 13a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ash/system/user/login_status.h" 14a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ash/system/user/user_accounts_delegate.h" 15a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ash/system/user/user_view.h" 16a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "base/macros.h" 17a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ui/views/controls/button/button.h" 18a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ui/views/controls/label.h" 19a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 20a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochnamespace ash { 21a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 22a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass TrayUser; 23a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 24a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochnamespace tray { 25a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 26a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// This detailed view appears after a click on the primary user's card when the 27a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// new account managment is enabled. 28a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass AccountsDetailedView : public TrayDetailsView, 29a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public ViewClickListener, 30a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public views::ButtonListener, 31a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public ash::tray::UserAccountsDelegate::Observer { 32a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public: 33a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch AccountsDetailedView(TrayUser* owner, user::LoginStatus login_status); 34a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual ~AccountsDetailedView(); 35a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 36a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch private: 37a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // Overridden from ViewClickListener. 38a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void OnViewClicked(views::View* sender) OVERRIDE; 39a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 40a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // Overridden from views::ButtonListener. 41a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void ButtonPressed(views::Button* sender, 42a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch const ui::Event& event) OVERRIDE; 43a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 44a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // Overridden from ash::tray::UserAccountsDelegate::Observer. 45a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void AccountListChanged() OVERRIDE; 46a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 47a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch void AddHeader(user::LoginStatus login_status); 48a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch void AddAccountList(); 49a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch void AddAddAccountButton(); 50a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch void AddFooter(); 51a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 52a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch void UpdateAccountList(); 53a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 54a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch views::View* CreateDeleteButton(); 55a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 56a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch ash::tray::UserAccountsDelegate* delegate_; 57a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch views::View* account_list_; 58a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch views::View* add_account_button_; 59a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch views::View* add_user_button_; 60a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch std::map<views::View*, std::string> delete_button_to_account_id_; 61a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 62a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch DISALLOW_COPY_AND_ASSIGN(AccountsDetailedView); 63a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch}; 64a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 65a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch} // namespace tray 66a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch} // namespace ash 67a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 68a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#endif // ASH_SYSTEM_USER_ACCOUNTS_DETAILED_VIEW_H_ 69