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.
5 #ifndef ASH_SYSTEM_CHROMEOS_SCREEN_CAPTURE_SCREEN_CAPTURE_TRAY_ITEM_H_
6 #define ASH_SYSTEM_CHROMEOS_SCREEN_CAPTURE_SCREEN_CAPTURE_TRAY_ITEM_H_
8 #include "ash/shell_observer.h"
9 #include "ash/system/chromeos/screen_security/screen_capture_observer.h"
10 #include "ash/system/chromeos/screen_security/screen_tray_item.h"
18 class ASH_EXPORT ScreenCaptureTrayItem
: public ScreenTrayItem
,
19 public ScreenCaptureObserver
,
20 public ShellObserver
{
22 explicit ScreenCaptureTrayItem(SystemTray
* system_tray
);
23 ~ScreenCaptureTrayItem() override
;
26 // Overridden from SystemTrayItem.
27 views::View
* CreateTrayView(user::LoginStatus status
) override
;
28 views::View
* CreateDefaultView(user::LoginStatus status
) override
;
30 // Overridden from ScreenTrayItem.
31 void CreateOrUpdateNotification() override
;
32 std::string
GetNotificationId() override
;
34 // Overridden from ScreenCaptureObserver.
35 void OnScreenCaptureStart(
36 const base::Closure
& stop_callback
,
37 const base::string16
& screen_capture_status
) override
;
38 void OnScreenCaptureStop() override
;
40 // Overridden from ShellObserver.
41 void OnCastingSessionStartedOrStopped(bool started
) override
;
43 base::string16 screen_capture_status_
;
44 bool is_casting_
= false;
46 DISALLOW_COPY_AND_ASSIGN(ScreenCaptureTrayItem
);
51 #endif // ASH_SYSTEM_CHROMEOS_SCREEN_CAPTURE_SCREEN_CAPTURE_TRAY_ITEM_H_