diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-14 23:30:59 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-14 23:30:59 +0000 |
commit | e0fc2f1f81f13440af3bb4cf5e56a031f91fc163 (patch) | |
tree | c84d3625eac633ea78d68688ecd74e2d0a158334 /gfx/size.h | |
parent | 98af9aca7168f061bfaae5cd4f4eb3f7de4e70e7 (diff) | |
download | chromium_src-e0fc2f1f81f13440af3bb4cf5e56a031f91fc163.zip chromium_src-e0fc2f1f81f13440af3bb4cf5e56a031f91fc163.tar.gz chromium_src-e0fc2f1f81f13440af3bb4cf5e56a031f91fc163.tar.bz2 |
Move base/gfx contents to gfx/
TBR=darin
BUG=none
TEST=none
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41559 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gfx/size.h')
-rw-r--r-- | gfx/size.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/gfx/size.h b/gfx/size.h new file mode 100644 index 0000000..896908e8 --- /dev/null +++ b/gfx/size.h @@ -0,0 +1,83 @@ +// Copyright (c) 2006-2008 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. + +#ifndef BASE_GFX_SIZE_H_ +#define BASE_GFX_SIZE_H_ + +#include "build/build_config.h" + +#include <iosfwd> + +#if defined(OS_WIN) +typedef struct tagSIZE SIZE; +#elif defined(OS_MACOSX) +#include <ApplicationServices/ApplicationServices.h> +#endif + +namespace gfx { + +// +// A size has width and height values. +// +class Size { + public: + Size() : width_(0), height_(0) {} + Size(int width, int height); +#if defined(OS_MACOSX) + explicit Size(const CGSize& s); +#endif + + ~Size() {} + +#if defined(OS_MACOSX) + Size& operator=(const CGSize& s); +#endif + + int width() const { return width_; } + int height() const { return height_; } + + int GetArea() const { return width_ * height_; } + + void SetSize(int width, int height) { + set_width(width); + set_height(height); + } + + void Enlarge(int width, int height) { + set_width(width_ + width); + set_height(height_ + height); + } + + void set_width(int width); + void set_height(int height); + + bool operator==(const Size& s) const { + return width_ == s.width_ && height_ == s.height_; + } + + bool operator!=(const Size& s) const { + return !(*this == s); + } + + bool IsEmpty() const { + // Size doesn't allow negative dimensions, so testing for 0 is enough. + return (width_ == 0) || (height_ == 0); + } + +#if defined(OS_WIN) + SIZE ToSIZE() const; +#elif defined(OS_MACOSX) + CGSize ToCGSize() const; +#endif + + private: + int width_; + int height_; +}; + +} // namespace gfx + +std::ostream& operator<<(std::ostream& out, const gfx::Size& s); + +#endif // BASE_GFX_SIZE_H_ |