Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(790)

Unified Diff: components/exo/notification_surface.cc

Issue 2723143002: Add unittests of ArcCustomNotificationView (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/exo/notification_surface.cc
diff --git a/components/exo/notification_surface.cc b/components/exo/notification_surface.cc
deleted file mode 100644
index 2b66eddec42a682b6ff7382bd21e5ac9208e0ef2..0000000000000000000000000000000000000000
--- a/components/exo/notification_surface.cc
+++ /dev/null
@@ -1,130 +0,0 @@
-// 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.
-
-#include "components/exo/notification_surface.h"
-
-#include "components/exo/notification_surface_manager.h"
-#include "components/exo/surface.h"
-#include "ui/aura/window.h"
-#include "ui/aura/window_delegate.h"
-#include "ui/base/cursor/cursor.h"
-#include "ui/base/hit_test.h"
-#include "ui/gfx/geometry/rect.h"
-#include "ui/views/widget/widget.h"
-
-namespace exo {
-
-namespace {
-
-class CustomWindowDelegate : public aura::WindowDelegate {
- public:
- explicit CustomWindowDelegate(Surface* surface) : surface_(surface) {}
- ~CustomWindowDelegate() override {}
-
- // Overridden from aura::WindowDelegate:
- gfx::Size GetMinimumSize() const override { return gfx::Size(); }
- gfx::Size GetMaximumSize() const override { return gfx::Size(); }
- void OnBoundsChanged(const gfx::Rect& old_bounds,
- const gfx::Rect& new_bounds) override {}
- gfx::NativeCursor GetCursor(const gfx::Point& point) override {
- return surface_->GetCursor();
- }
- int GetNonClientComponent(const gfx::Point& point) const override {
- return HTNOWHERE;
- }
- bool ShouldDescendIntoChildForEventHandling(
- aura::Window* child,
- const gfx::Point& location) override {
- return true;
- }
- bool CanFocus() override { return true; }
- void OnCaptureLost() override {}
- void OnPaint(const ui::PaintContext& context) override {}
- void OnDeviceScaleFactorChanged(float device_scale_factor) override {}
- void OnWindowDestroying(aura::Window* window) override {}
- void OnWindowDestroyed(aura::Window* window) override { delete this; }
- void OnWindowTargetVisibilityChanged(bool visible) override {}
- bool HasHitTestMask() const override { return surface_->HasHitTestMask(); }
- void GetHitTestMask(gfx::Path* mask) const override {
- surface_->GetHitTestMask(mask);
- }
- void OnKeyEvent(ui::KeyEvent* event) override {
- // Propagates the key event upto the top-level views Widget so that we can
- // trigger proper events in the views/ash level there. Event handling for
- // Surfaces is done in a post event handler in keyboard.cc.
- views::Widget* widget =
- views::Widget::GetTopLevelWidgetForNativeView(surface_->window());
- if (widget)
- widget->OnKeyEvent(event);
- }
-
- private:
- Surface* const surface_;
-
- DISALLOW_COPY_AND_ASSIGN(CustomWindowDelegate);
-};
-
-} // namespace
-
-NotificationSurface::NotificationSurface(NotificationSurfaceManager* manager,
- Surface* surface,
- const std::string& notification_id)
- : manager_(manager),
- surface_(surface),
- notification_id_(notification_id),
- window_(new aura::Window(new CustomWindowDelegate(surface))) {
- surface_->SetSurfaceDelegate(this);
- surface_->AddSurfaceObserver(this);
-
- window_->SetType(ui::wm::WINDOW_TYPE_CONTROL);
- window_->SetName("ExoNotificationSurface");
- window_->Init(ui::LAYER_NOT_DRAWN);
- window_->set_owned_by_parent(false);
-
- // TODO(xiyuan): Fix after Surface no longer has an aura::Window.
- window_->AddChild(surface_->window());
- surface_->window()->Show();
-}
-
-NotificationSurface::~NotificationSurface() {
- if (surface_) {
- surface_->SetSurfaceDelegate(nullptr);
- surface_->RemoveSurfaceObserver(this);
- }
- if (added_to_manager_)
- manager_->RemoveSurface(this);
-}
-
-gfx::Size NotificationSurface::GetSize() const {
- return surface_->content_size();
-}
-
-void NotificationSurface::OnSurfaceCommit() {
- surface_->CheckIfSurfaceHierarchyNeedsCommitToNewSurfaces();
- surface_->CommitSurfaceHierarchy();
-
- gfx::Rect bounds = window_->bounds();
- if (bounds.size() != surface_->content_size()) {
- bounds.set_size(surface_->content_size());
- window_->SetBounds(bounds);
- }
-
- // Defer AddSurface until there are contents to show.
- if (!added_to_manager_ && !surface_->content_size().IsEmpty()) {
- added_to_manager_ = true;
- manager_->AddSurface(this);
- }
-}
-
-bool NotificationSurface::IsSurfaceSynchronized() const {
- return false;
-}
-
-void NotificationSurface::OnSurfaceDestroying(Surface* surface) {
- window_.reset();
- surface->RemoveSurfaceObserver(this);
- surface_ = nullptr;
-}
-
-} // namespace exo

Powered by Google App Engine
This is Rietveld 408576698