Home | History | Annotate | Download | only in user
      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 #ifndef ASH_SYSTEM_USER_USER_CARD_VIEW_H_
      6 #define ASH_SYSTEM_USER_USER_CARD_VIEW_H_
      7 
      8 #include "ash/system/user/login_status.h"
      9 #include "base/macros.h"
     10 #include "ui/views/view.h"
     11 
     12 namespace ash {
     13 namespace tray {
     14 
     15 // The view displaying information about the user, such as user's avatar, email
     16 // address, name, and more. View has no borders.
     17 class UserCardView : public views::View {
     18  public:
     19   // |max_width| takes effect only if |login_status| is LOGGED_IN_PUBLIC.
     20   UserCardView(user::LoginStatus login_status,
     21                int max_width,
     22                int multiprofile_index);
     23   virtual ~UserCardView();
     24 
     25  private:
     26   // Creates the content for the retail logged in mode.
     27   void AddRetailModeUserContent();
     28 
     29   // Creates the content for the public mode.
     30   void AddPublicModeUserContent(int max_width);
     31 
     32   void AddUserContent(user::LoginStatus login_status, int multiprofile_index);
     33 
     34   // Create a user icon representation.
     35   views::View* CreateIcon(user::LoginStatus login_status,
     36                           int multiprofile_index);
     37 
     38   DISALLOW_COPY_AND_ASSIGN(UserCardView);
     39 };
     40 
     41 }  // namespace tray
     42 }  // namespace ash
     43 
     44 #endif  // ASH_SYSTEM_USER_USER_CARD_VIEW_H_
     45