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 3 // found in the LICENSE file. 4 5 #ifndef ASH_SYSTEM_CHROMEOS_SCREEN_SHARE_SCREEN_SHARE_TRAY_ITEM_H_ 6 #define ASH_SYSTEM_CHROMEOS_SCREEN_SHARE_SCREEN_SHARE_TRAY_ITEM_H_ 7 8 #include "ash/system/chromeos/screen_security/screen_share_observer.h" 9 #include "ash/system/chromeos/screen_security/screen_tray_item.h" 10 11 namespace views { 12 class View; 13 } 14 15 namespace ash { 16 namespace internal { 17 18 class ASH_EXPORT ScreenShareTrayItem : public ScreenTrayItem, 19 public ScreenShareObserver { 20 public: 21 explicit ScreenShareTrayItem(SystemTray* system_tray); 22 virtual ~ScreenShareTrayItem(); 23 24 private: 25 // Overridden from SystemTrayItem. 26 virtual views::View* CreateTrayView(user::LoginStatus status) OVERRIDE; 27 virtual views::View* CreateDefaultView(user::LoginStatus status) OVERRIDE; 28 29 // Overridden from ScreenTrayItem. 30 virtual void CreateOrUpdateNotification() OVERRIDE; 31 virtual std::string GetNotificationId() OVERRIDE; 32 33 // Overridden from ScreenShareObserver. 34 virtual void OnScreenShareStart( 35 const base::Closure& stop_callback, 36 const base::string16& helper_name) OVERRIDE; 37 virtual void OnScreenShareStop() OVERRIDE; 38 39 base::string16 helper_name_; 40 41 DISALLOW_COPY_AND_ASSIGN(ScreenShareTrayItem); 42 }; 43 44 } // namespace internal 45 } // namespace ash 46 47 #endif // ASH_SYSTEM_CHROMEOS_SCREEN_SHARE_SCREEN_SHARE_TRAY_ITEM_H_ 48