blob: 75f86a1aa56637aea4b354be8178e474f2a8707c [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 "ui/ozone/platform/headless/headless_window.h"
#include <string>
#include "base/files/file_path.h"
#include "base/strings/string_number_conversions.h"
#include "ui/events/platform/platform_event_source.h"
#include "ui/ozone/platform/headless/headless_window_manager.h"
#include "ui/platform_window/platform_window_delegate.h"
namespace ui {
HeadlessWindow::HeadlessWindow(PlatformWindowDelegate* delegate,
HeadlessWindowManager* manager,
const gfx::Rect& bounds)
: delegate_(delegate), manager_(manager), bounds_(bounds) {
widget_ = manager_->AddWindow(this);
delegate_->OnAcceleratedWidgetAvailable(widget_, 1.f);
}
HeadlessWindow::~HeadlessWindow() {
manager_->RemoveWindow(widget_, this);
}
base::FilePath HeadlessWindow::path() {
base::FilePath base_path = manager_->base_path();
if (base_path.empty() || base_path == base::FilePath("/dev/null"))
return base_path;
// Disambiguate multiple window output files with the window id.
return base_path.Append(base::IntToString(widget_));
}
gfx::Rect HeadlessWindow::GetBounds() {
return bounds_;
}
void HeadlessWindow::SetBounds(const gfx::Rect& bounds) {
bounds_ = bounds;
delegate_->OnBoundsChanged(bounds);
}
void HeadlessWindow::SetTitle(const base::string16& title) {}
void HeadlessWindow::Show() {}
void HeadlessWindow::Hide() {}
void HeadlessWindow::Close() {}
void HeadlessWindow::SetCapture() {}
void HeadlessWindow::ReleaseCapture() {}
void HeadlessWindow::ToggleFullscreen() {}
void HeadlessWindow::Maximize() {}
void HeadlessWindow::Minimize() {}
void HeadlessWindow::Restore() {}
void HeadlessWindow::SetCursor(PlatformCursor cursor) {}
void HeadlessWindow::MoveCursorTo(const gfx::Point& location) {}
void HeadlessWindow::ConfineCursorToBounds(const gfx::Rect& bounds) {}
PlatformImeController* HeadlessWindow::GetPlatformImeController() {
return nullptr;
}
} // namespace ui