blob: 036edbd98549fd64166acef95d283d6b024cb42b [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ash/arc/input_overlay/test/arc_test_window.h"
#include "ash/constants/app_types.h"
#include "ash/public/cpp/window_properties.h"
#include "components/exo/test/shell_surface_builder.h"
#include "ui/aura/client/aura_constants.h"
#include "ui/display/screen.h"
namespace arc::input_overlay {
namespace test {
ArcTestWindow::ArcTestWindow(exo::test::ExoTestHelper* helper,
aura::Window* root,
const std::string& package_name) {
shell_surface_ = exo::test::ShellSurfaceBuilder({100, 100})
.SetApplicationId(package_name.c_str())
.BuildClientControlledShellSurface();
auto display_id =
display::Screen::GetScreen()->GetDisplayNearestWindow(root).id();
shell_surface_->SetBounds(display_id, gfx::Rect(10, 10, 100, 100));
surface_ = shell_surface_->root_surface();
surface_->Commit();
shell_surface_->GetWidget()->GetNativeWindow()->SetProperty(
ash::kArcPackageNameKey, package_name);
}
ArcTestWindow::~ArcTestWindow() = default;
aura::Window* ArcTestWindow::GetWindow() {
return shell_surface_->GetWidget()->GetNativeWindow();
}
void ArcTestWindow::SetMinimized() {
shell_surface_->SetMinimized();
surface_->Commit();
}
void ArcTestWindow::SetBounds(display::Display& display, gfx::Rect bounds) {
auto display_id = display.id();
shell_surface_->SetBounds(display_id, bounds);
surface_->Commit();
}
} // namespace test
} // namespace arc::input_overlay