C++程序  |  45行  |  1.31 KB

// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef ASH_SYSTEM_USER_USER_CARD_VIEW_H_
#define ASH_SYSTEM_USER_USER_CARD_VIEW_H_

#include "ash/system/user/login_status.h"
#include "base/macros.h"
#include "ui/views/view.h"

namespace ash {
namespace tray {

// The view displaying information about the user, such as user's avatar, email
// address, name, and more. View has no borders.
class UserCardView : public views::View {
 public:
  // |max_width| takes effect only if |login_status| is LOGGED_IN_PUBLIC.
  UserCardView(user::LoginStatus login_status,
               int max_width,
               int multiprofile_index);
  virtual ~UserCardView();

 private:
  // Creates the content for the retail logged in mode.
  void AddRetailModeUserContent();

  // Creates the content for the public mode.
  void AddPublicModeUserContent(int max_width);

  void AddUserContent(user::LoginStatus login_status, int multiprofile_index);

  // Create a user icon representation.
  views::View* CreateIcon(user::LoginStatus login_status,
                          int multiprofile_index);

  DISALLOW_COPY_AND_ASSIGN(UserCardView);
};

}  // namespace tray
}  // namespace ash

#endif  // ASH_SYSTEM_USER_USER_CARD_VIEW_H_