blob: 51ab20eddb758017cad4de3069e5d3137fcfd0b8 [file] [log] [blame]
// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/platform_window/stub/stub_window.h"
#include "base/memory/scoped_refptr.h"
#include "base/notreached.h"
#include "ui/base/cursor/platform_cursor.h"
#include "ui/display/types/display_constants.h"
#include "ui/platform_window/platform_window_delegate.h"
namespace ui {
StubWindow::StubWindow(PlatformWindowDelegate* delegate,
bool use_default_accelerated_widget,
const gfx::Rect& bounds)
: bounds_(bounds) {
DCHECK(delegate);
InitDelegate(delegate, use_default_accelerated_widget);
}
StubWindow::StubWindow(const gfx::Rect& bounds) : bounds_(bounds) {}
StubWindow::~StubWindow() = default;
void StubWindow::InitDelegate(PlatformWindowDelegate* delegate,
bool use_default_accelerated_widget) {
DCHECK(delegate);
delegate_ = delegate;
if (use_default_accelerated_widget)
delegate_->OnAcceleratedWidgetAvailable(gfx::kNullAcceleratedWidget);
}
void StubWindow::InitDelegateWithWidget(PlatformWindowDelegate* delegate,
gfx::AcceleratedWidget widget) {
DCHECK(delegate);
delegate_ = delegate;
delegate_->OnAcceleratedWidgetAvailable(widget);
}
void StubWindow::Show(bool inactive) {}
void StubWindow::Hide() {}
void StubWindow::Close() {
delegate_->OnClosed();
}
bool StubWindow::IsVisible() const {
return true;
}
void StubWindow::PrepareForShutdown() {}
void StubWindow::SetBoundsInPixels(const gfx::Rect& bounds) {
// Even if the pixel bounds didn't change this call to the delegate should
// still happen. The device scale factor may have changed which effectively
// changes the bounds.
bool origin_changed = bounds_.origin() != bounds.origin();
bounds_ = bounds;
delegate_->OnBoundsChanged({origin_changed});
}
gfx::Rect StubWindow::GetBoundsInPixels() const {
return bounds_;
}
void StubWindow::SetBoundsInDIP(const gfx::Rect& bounds) {
SetBoundsInPixels(delegate_->ConvertRectToPixels(bounds));
}
gfx::Rect StubWindow::GetBoundsInDIP() const {
return delegate_->ConvertRectToDIP(bounds_);
}
void StubWindow::SetTitle(const std::u16string& title) {}
void StubWindow::SetCapture() {}
void StubWindow::ReleaseCapture() {}
bool StubWindow::HasCapture() const {
return false;
}
void StubWindow::SetFullscreen(bool fullscreen, int64_t target_display_id) {
DCHECK_EQ(target_display_id, display::kInvalidDisplayId);
window_state_ = fullscreen ? ui::PlatformWindowState::kFullScreen
: ui::PlatformWindowState::kUnknown;
}
void StubWindow::Maximize() {}
void StubWindow::Minimize() {}
void StubWindow::Restore() {}
PlatformWindowState StubWindow::GetPlatformWindowState() const {
return window_state_;
}
void StubWindow::Activate() {
if (activation_state_ != ActivationState::kActive) {
activation_state_ = ActivationState::kActive;
delegate_->OnActivationChanged(/*active=*/true);
}
}
void StubWindow::Deactivate() {
if (activation_state_ != ActivationState::kInactive) {
activation_state_ = ActivationState::kInactive;
delegate_->OnActivationChanged(/*active=*/false);
}
}
void StubWindow::SetUseNativeFrame(bool use_native_frame) {}
bool StubWindow::ShouldUseNativeFrame() const {
NOTIMPLEMENTED_LOG_ONCE();
return false;
}
void StubWindow::SetCursor(scoped_refptr<PlatformCursor> cursor) {}
void StubWindow::MoveCursorTo(const gfx::Point& location) {}
void StubWindow::ConfineCursorToBounds(const gfx::Rect& bounds) {}
void StubWindow::SetRestoredBoundsInDIP(const gfx::Rect& bounds) {}
gfx::Rect StubWindow::GetRestoredBoundsInDIP() const {
return gfx::Rect();
}
void StubWindow::SetWindowIcons(const gfx::ImageSkia& window_icon,
const gfx::ImageSkia& app_icon) {}
void StubWindow::SizeConstraintsChanged() {}
} // namespace ui