12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- // Copyright 2021 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef ASH_CAPTURE_MODE_CAPTURE_MODE_ASH_NOTIFICATION_VIEW_H_
- #define ASH_CAPTURE_MODE_CAPTURE_MODE_ASH_NOTIFICATION_VIEW_H_
- #include "ash/ash_export.h"
- #include "ash/capture_mode/capture_mode_types.h"
- #include "ash/system/message_center/ash_notification_view.h"
- namespace message_center {
- class MessageView;
- class Notification;
- } // namespace message_center
- namespace views {
- class View;
- } // namespace views
- namespace ash {
- // A customized notification view for capture mode that adjusts the capture
- // notification by either showing a banner on top of the notification image for
- // image captures, or a play icon on top of the video thumbnail.
- class ASH_EXPORT CaptureModeAshNotificationView : public AshNotificationView {
- public:
- CaptureModeAshNotificationView(
- const message_center::Notification& notification,
- CaptureModeType capture_type,
- bool shown_in_popup);
- CaptureModeAshNotificationView(const CaptureModeAshNotificationView&) =
- delete;
- CaptureModeAshNotificationView& operator=(
- const CaptureModeAshNotificationView&) = delete;
- ~CaptureModeAshNotificationView() override;
- // Creates the custom capture mode notification for image capture
- // notifications. There is a banner on top of the image area of the
- // notification to indicate the image has been copied to clipboard.
- static std::unique_ptr<message_center::MessageView> CreateForImage(
- const message_center::Notification& notification,
- bool shown_in_popup);
- // Creates the custom capture mode notification for video capture
- // notifications. There is a superimposed "play" icon on top of the video
- // thumbnail image.
- static std::unique_ptr<message_center::MessageView> CreateForVideo(
- const message_center::Notification& notification,
- bool shown_in_popup);
- // AshNotificationView:
- void UpdateWithNotification(
- const message_center::Notification& notification) override;
- void Layout() override;
- private:
- void CreateExtraView();
- // The type of capture this notification was created for.
- const CaptureModeType capture_type_;
- // The extra view created on top of the notification image. This will be a
- // banner clarifying that the image was copied to the clipboard in case of
- // image capture, or a superimposed "play" icon on top of the video thumbnail
- // image.
- // Owned by the view hierarchy.
- views::View* extra_view_ = nullptr;
- };
- } // namespace ash
- #endif // ASH_CAPTURE_MODE_CAPTURE_MODE_ASH_NOTIFICATION_VIEW_H_
|