• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
10 namespace views {
11 
GetDefaultWindowMask(const gfx::Size & size,gfx::Path * window_mask)12 void 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