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
11namespace views {
12class View;
13}
14
15namespace ash {
16
17class 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