diff options
Diffstat (limited to 'views/window/window_shape.cc')
-rw-r--r-- | views/window/window_shape.cc | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/views/window/window_shape.cc b/views/window/window_shape.cc new file mode 100644 index 0000000..dd234bf --- /dev/null +++ b/views/window/window_shape.cc @@ -0,0 +1,46 @@ +// Copyright (c) 2010 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 "views/window/window_shape.h" + +#include "gfx/path.h" +#include "gfx/size.h" + +namespace views { + +void GetDefaultWindowMask(const gfx::Size &size, gfx::Path *window_mask) { + // Redefine the window visible region for the new size. + window_mask->moveTo(0, 3); + window_mask->lineTo(1, 2); + window_mask->lineTo(1, 1); + window_mask->lineTo(2, 1); + window_mask->lineTo(3, 0); + + window_mask->lineTo(SkIntToScalar(size.width() - 3), 0); + window_mask->lineTo(SkIntToScalar(size.width() - 2), 1); + window_mask->lineTo(SkIntToScalar(size.width() - 1), 1); + window_mask->lineTo(SkIntToScalar(size.width() - 1), 2); + window_mask->lineTo(SkIntToScalar(size.width()), 3); + + window_mask->lineTo(SkIntToScalar(size.width()), + SkIntToScalar(size.height() - 3)); + window_mask->lineTo(SkIntToScalar(size.width() - 1), + SkIntToScalar(size.height() - 3)); + window_mask->lineTo(SkIntToScalar(size.width() - 1), + SkIntToScalar(size.height() - 1)); + window_mask->lineTo(SkIntToScalar(size.width() - 3), + SkIntToScalar(size.height() - 2)); + window_mask->lineTo(SkIntToScalar(size.width() - 3), + SkIntToScalar(size.height())); + + window_mask->lineTo(3, SkIntToScalar(size.height())); + window_mask->lineTo(2, SkIntToScalar(size.height() - 2)); + window_mask->lineTo(1, SkIntToScalar(size.height() - 1)); + window_mask->lineTo(1, SkIntToScalar(size.height() - 3)); + window_mask->lineTo(0, SkIntToScalar(size.height() - 3)); + + window_mask->close(); +} + +} // namespace views |