blob: 6c41a13bb0d6becadaa3fa637fba6e03bdf53d43 [file] [log] [blame]
// Copyright 2014 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 "ash/test/ash_test_views_delegate.h"
#include "ash/shell.h"
#include "ash/test/ash_test_helper.h"
namespace ash {
AshTestViewsDelegate::AshTestViewsDelegate() = default;
AshTestViewsDelegate::~AshTestViewsDelegate() = default;
void AshTestViewsDelegate::OnBeforeWidgetInit(
views::Widget::InitParams* params,
views::internal::NativeWidgetDelegate* delegate) {
if (running_outside_ash_) {
DCHECK(ash::Shell::HasInstance());
if (!params->parent && !params->context)
params->context = Shell::GetRootWindowForNewWindows();
} else {
CHECK(params->native_widget || params->context || params->parent)
<< "Widgets must be created with a context or parent. In tests use "
<< "CurrentContext(). In non-test code you likely want to use the "
<< "parent the Widget will be added to, or possibly "
<< "Shell::GetRootWindowForNewWindows().";
}
TestViewsDelegate::OnBeforeWidgetInit(params, delegate);
}
void AshTestViewsDelegate::NotifyAccessibilityEvent(
views::View* view,
ax::mojom::Event event_type) {
TestViewsDelegate::NotifyAccessibilityEvent(view, event_type);
if (test_accessibility_event_delegate_) {
test_accessibility_event_delegate_->NotifyAccessibilityEvent(view,
event_type);
}
}
views::TestViewsDelegate::ProcessMenuAcceleratorResult
AshTestViewsDelegate::ProcessAcceleratorWhileMenuShowing(
const ui::Accelerator& accelerator) {
if (accelerator == close_menu_accelerator_)
return ProcessMenuAcceleratorResult::CLOSE_MENU;
return ProcessMenuAcceleratorResult::LEAVE_MENU_OPEN;
}
} // namespace ash