| Index: ui/message_center/views/custom_notification_view.h
|
| diff --git a/ui/message_center/views/custom_notification_view.h b/ui/message_center/views/custom_notification_view.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3ec27a4531110bfb41bf5dc2d8533a7fde37d734
|
| --- /dev/null
|
| +++ b/ui/message_center/views/custom_notification_view.h
|
| @@ -0,0 +1,68 @@
|
| +// Copyright 2016 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 UI_MESSAGE_CENTER_VIEWS_CUSTOM_NOTIFICATION_VIEW_H_
|
| +#define UI_MESSAGE_CENTER_VIEWS_CUSTOM_NOTIFICATION_VIEW_H_
|
| +
|
| +#include "base/macros.h"
|
| +#include "ui/message_center/message_center_export.h"
|
| +#include "ui/message_center/views/message_view.h"
|
| +
|
| +namespace views {
|
| +class Painter;
|
| +}
|
| +
|
| +namespace message_center {
|
| +
|
| +// View for notification with NOTIFICATION_TYPE_CUSTOM that hosts the custom
|
| +// content of the notification.
|
| +class MESSAGE_CENTER_EXPORT CustomNotificationView : public MessageView {
|
| + public:
|
| + static const char kViewClassName[];
|
| +
|
| + CustomNotificationView(MessageCenterController* controller,
|
| + const Notification& notification);
|
| + ~CustomNotificationView() override;
|
| +
|
| + // These method are called by the content view when focus handling is defered
|
| + // to the content.
|
| + void OnContentFocused();
|
| + void OnContentBlured();
|
| +
|
| + // Overidden from MessageView:
|
| + void SetDrawBackgroundAsActive(bool active) override;
|
| + bool IsCloseButtonFocused() const override;
|
| + void RequestFocusOnCloseButton() override;
|
| + bool IsPinned() const override;
|
| + void UpdateControlButtonsVisibility() override;
|
| +
|
| + // Overridden from views::View:
|
| + const char* GetClassName() const override;
|
| + gfx::Size GetPreferredSize() const override;
|
| + void Layout() override;
|
| + bool HasFocus() const override;
|
| + void RequestFocus() override;
|
| + void OnPaint(gfx::Canvas* canvas) override;
|
| + bool OnKeyPressed(const ui::KeyEvent& event) override;
|
| + void ChildPreferredSizeChanged(View* child) override;
|
| + bool OnMousePressed(const ui::MouseEvent& event) override;
|
| +
|
| + views::View* GetContentsViewForTesting() const { return contents_view_; }
|
| +
|
| + private:
|
| + friend class CustomNotificationViewTest;
|
| +
|
| + // The view for the custom content. Owned by view hierarchy.
|
| + views::View* contents_view_ = nullptr;
|
| + std::unique_ptr<CustomNotificationContentViewDelegate>
|
| + contents_view_delegate_;
|
| +
|
| + std::unique_ptr<views::Painter> focus_painter_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(CustomNotificationView);
|
| +};
|
| +
|
| +} // namespace message_center
|
| +
|
| +#endif // UI_MESSAGE_CENTER_VIEWS_CUSTOM_NOTIFICATION_VIEW_H_
|
|
|