forked from chromium/chromium
-
Notifications
You must be signed in to change notification settings - Fork 0
/
platform_window_delegate.cc
116 lines (88 loc) · 3.28 KB
/
platform_window_delegate.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
// Copyright 2019 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/platform_window_delegate.h"
#include <sstream>
#include "base/notreached.h"
#include "third_party/skia/include/core/SkPath.h"
#include "ui/base/owned_window_anchor.h"
#include "ui/gfx/geometry/point_f.h"
#include "ui/gfx/geometry/size.h"
namespace ui {
bool PlatformWindowDelegate::State::ProducesFrameOnUpdateFrom(
const State& old) const {
// Changing the bounds origin won't produce a new frame. Anything else will.
return old.bounds_dip.size() != bounds_dip.size() || old.size_px != size_px ||
old.window_scale != window_scale || old.raster_scale != raster_scale;
}
std::string PlatformWindowDelegate::State::ToString() const {
std::stringstream result;
result << "State {";
result << "bounds_dip = " << bounds_dip.ToString();
result << ", size_px = " << size_px.ToString();
result << ", window_scale = " << window_scale;
result << ", raster_scale = " << raster_scale;
result << "}";
return result.str();
}
PlatformWindowDelegate::PlatformWindowDelegate() = default;
PlatformWindowDelegate::~PlatformWindowDelegate() = default;
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
void PlatformWindowDelegate::OnWindowTiledStateChanged(
WindowTiledEdges new_tiled_edges) {}
#endif
#if BUILDFLAG(IS_CHROMEOS_LACROS)
void PlatformWindowDelegate::OnFullscreenModeChanged() {}
#endif
absl::optional<gfx::Size> PlatformWindowDelegate::GetMinimumSizeForWindow() {
return absl::nullopt;
}
absl::optional<gfx::Size> PlatformWindowDelegate::GetMaximumSizeForWindow() {
return absl::nullopt;
}
bool PlatformWindowDelegate::CanMaximize() {
return false;
}
bool PlatformWindowDelegate::CanFullscreen() {
return false;
}
SkPath PlatformWindowDelegate::GetWindowMaskForWindowShapeInPixels() {
return SkPath();
}
void PlatformWindowDelegate::OnSurfaceFrameLockingChanged(bool lock) {}
absl::optional<MenuType> PlatformWindowDelegate::GetMenuType() {
return absl::nullopt;
}
void PlatformWindowDelegate::OnOcclusionStateChanged(
PlatformWindowOcclusionState occlusion_state) {}
int64_t PlatformWindowDelegate::OnStateUpdate(const State& old,
const State& latest) {
NOTREACHED();
return -1;
}
absl::optional<OwnedWindowAnchor>
PlatformWindowDelegate::GetOwnedWindowAnchorAndRectInDIP() {
return absl::nullopt;
}
void PlatformWindowDelegate::SetFrameRateThrottleEnabled(bool enabled) {}
void PlatformWindowDelegate::OnTooltipShownOnServer(const std::u16string& text,
const gfx::Rect& bounds) {}
bool PlatformWindowDelegate::OnRotateFocus(
PlatformWindowDelegate::RotateDirection direction,
bool reset) {
return false;
}
void PlatformWindowDelegate::OnTooltipHiddenOnServer() {}
gfx::Rect PlatformWindowDelegate::ConvertRectToPixels(
const gfx::Rect& rect_in_dip) const {
return rect_in_dip;
}
gfx::Rect PlatformWindowDelegate::ConvertRectToDIP(
const gfx::Rect& rect_in_pixels) const {
return rect_in_pixels;
}
gfx::PointF PlatformWindowDelegate::ConvertScreenPointToLocalDIP(
const gfx::Point& screen_in_pixels) const {
return gfx::PointF(screen_in_pixels);
}
} // namespace ui