1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "ui/views/window/window_shape.h"
6
7#include "ui/gfx/path.h"
8#include "ui/gfx/size.h"
9
10namespace views {
11
12void GetDefaultWindowMask(const gfx::Size &size, gfx::Path *window_mask) {
13  // Redefine the window visible region for the new size.
14  window_mask->moveTo(0, 3);
15  window_mask->lineTo(1, 2);
16  window_mask->lineTo(1, 1);
17  window_mask->lineTo(2, 1);
18  window_mask->lineTo(3, 0);
19
20  window_mask->lineTo(SkIntToScalar(size.width() - 3), 0);
21  window_mask->lineTo(SkIntToScalar(size.width() - 2), 1);
22  window_mask->lineTo(SkIntToScalar(size.width() - 1), 1);
23  window_mask->lineTo(SkIntToScalar(size.width() - 1), 2);
24  window_mask->lineTo(SkIntToScalar(size.width()), 3);
25
26  window_mask->lineTo(SkIntToScalar(size.width()),
27                      SkIntToScalar(size.height() - 3));
28  window_mask->lineTo(SkIntToScalar(size.width() - 1),
29                      SkIntToScalar(size.height() - 3));
30  window_mask->lineTo(SkIntToScalar(size.width() - 1),
31                      SkIntToScalar(size.height() - 1));
32  window_mask->lineTo(SkIntToScalar(size.width() - 3),
33                      SkIntToScalar(size.height() - 2));
34  window_mask->lineTo(SkIntToScalar(size.width() - 3),
35                      SkIntToScalar(size.height()));
36
37  window_mask->lineTo(3, SkIntToScalar(size.height()));
38  window_mask->lineTo(2, SkIntToScalar(size.height() - 2));
39  window_mask->lineTo(1, SkIntToScalar(size.height() - 1));
40  window_mask->lineTo(1, SkIntToScalar(size.height() - 3));
41  window_mask->lineTo(0, SkIntToScalar(size.height() - 3));
42
43  window_mask->close();
44}
45
46} // namespace views
47