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_CAPTURE_SCREEN_CAPTURE_TRAY_ITEM_H_ 6 #define ASH_SYSTEM_CHROMEOS_SCREEN_CAPTURE_SCREEN_CAPTURE_TRAY_ITEM_H_ 7 8 #include "ash/system/chromeos/screen_security/screen_capture_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 17 class ASH_EXPORT ScreenCaptureTrayItem : public ScreenTrayItem, 18 public ScreenCaptureObserver { 19 public: 20 explicit ScreenCaptureTrayItem(SystemTray* system_tray); 21 virtual ~ScreenCaptureTrayItem(); 22 23 private: 24 // Overridden from SystemTrayItem. 25 virtual views::View* CreateTrayView(user::LoginStatus status) OVERRIDE; 26 virtual views::View* CreateDefaultView(user::LoginStatus status) OVERRIDE; 27 28 // Overridden from ScreenTrayItem. 29 virtual void CreateOrUpdateNotification() OVERRIDE; 30 virtual std::string GetNotificationId() OVERRIDE; 31 32 // Overridden from ScreenCaptureObserver. 33 virtual void OnScreenCaptureStart( 34 const base::Closure& stop_callback, 35 const base::string16& screen_capture_status) OVERRIDE; 36 virtual void OnScreenCaptureStop() OVERRIDE; 37 38 base::string16 screen_capture_status_; 39 40 DISALLOW_COPY_AND_ASSIGN(ScreenCaptureTrayItem); 41 }; 42 43 } // namespace ash 44 45 #endif // ASH_SYSTEM_CHROMEOS_SCREEN_CAPTURE_SCREEN_CAPTURE_TRAY_ITEM_H_ 46