15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#ifndef ASH_SYSTEM_CHROMEOS_SUPERVISED_TRAY_SUPERVISED_USER_H 65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define ASH_SYSTEM_CHROMEOS_SUPERVISED_TRAY_SUPERVISED_USER_H 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "ash/ash_export.h" 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "ash/system/tray/system_tray_item.h" 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "ash/system/tray/view_click_listener.h" 113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "base/strings/string16.h" 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace ash { 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class LabelTrayView; 15c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochclass SystemTray; 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class ASH_EXPORT TraySupervisedUser : public SystemTrayItem, 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public ViewClickListener { 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) public: 205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) explicit TraySupervisedUser(SystemTray* system_tray); 215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual ~TraySupervisedUser(); 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // If message is not empty updates content of default view, otherwise hides 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // tray items. 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void UpdateMessage(); 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Overridden from SystemTrayItem. 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual views::View* CreateDefaultView(user::LoginStatus status) OVERRIDE; 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void DestroyDefaultView() OVERRIDE; 3090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) virtual void UpdateAfterLoginStatusChange(user::LoginStatus status) OVERRIDE; 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Overridden from ViewClickListener. 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void OnViewClicked(views::View* sender) OVERRIDE; 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) private: 365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) friend class TraySupervisedUserTest; 373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) static const char kNotificationId[]; 393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) void CreateOrUpdateNotification(const base::string16& new_message); 413551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) LabelTrayView* tray_view_; 43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // Previous login status to avoid showing notification upon unlock. 44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch user::LoginStatus status_; 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Previous user supervised state to avoid showing notification upon unlock. 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci bool is_user_supervised_; 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(TraySupervisedUser); 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace ash 53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#endif // ASH_SYSTEM_CHROMEOS_SUPERVISED_TRAY_SUPERVISED_USER_H 55