summaryrefslogtreecommitdiffstats
path: root/gfx/insets.h
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-17 06:40:57 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-17 06:40:57 +0000
commit5c7293a73bdaedbe368bc26426a2345f230f2822 (patch)
tree9a5c28a66102e61536730d8335843c14ae5e0a10 /gfx/insets.h
parentaf63c908603f8a2f58f69167129f819d5d30820c (diff)
downloadchromium_src-5c7293a73bdaedbe368bc26426a2345f230f2822.zip
chromium_src-5c7293a73bdaedbe368bc26426a2345f230f2822.tar.gz
chromium_src-5c7293a73bdaedbe368bc26426a2345f230f2822.tar.bz2
Move some more files to toplevel gfx dir.
TBR=darin BUG=none TEST=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41812 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gfx/insets.h')
-rw-r--r--gfx/insets.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/gfx/insets.h b/gfx/insets.h
new file mode 100644
index 0000000..bbed270
--- /dev/null
+++ b/gfx/insets.h
@@ -0,0 +1,93 @@
+// 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 GFX_INSETS_H_
+#define GFX_INSETS_H_
+
+#include "build/build_config.h"
+
+#if defined(OS_POSIX) && !defined(OS_MACOSX)
+#include <gtk/gtkstyle.h>
+#endif
+
+#include <string>
+
+namespace gfx {
+
+//
+// An insets represents the borders of a container (the space the container must
+// leave at each of its edges).
+//
+
+class Insets {
+ public:
+ Insets() : top_(0), left_(0), bottom_(0), right_(0) {}
+ Insets(int top, int left, int bottom, int right)
+ : top_(top),
+ left_(left),
+ bottom_(bottom),
+ right_(right) {}
+#if defined(OS_POSIX) && !defined(OS_MACOSX)
+ explicit Insets(const GtkBorder& border)
+ : top_(border.top),
+ left_(border.left),
+ bottom_(border.bottom),
+ right_(border.right) {}
+#endif
+
+ ~Insets() {}
+
+ int top() const { return top_; }
+ int left() const { return left_; }
+ int bottom() const { return bottom_; }
+ int right() const { return right_; }
+
+ // Returns the total width taken up by the insets, which is the sum of the
+ // left and right insets.
+ int width() const { return left_ + right_; }
+
+ // Returns the total height taken up by the insets, which is the sum of the
+ // top and bottom insets.
+ int height() const { return top_ + bottom_; }
+
+ // Returns true if the insets are empty.
+ bool empty() const { return width() == 0 && height() == 0; }
+
+ void Set(int top, int left, int bottom, int right) {
+ top_ = top;
+ left_ = left;
+ bottom_ = bottom;
+ right_ = right;
+ }
+
+ bool operator==(const Insets& insets) const {
+ return top_ == insets.top_ && left_ == insets.left_ &&
+ bottom_ == insets.bottom_ && right_ == insets.right_;
+ }
+
+ bool operator!=(const Insets& insets) const {
+ return !(*this == insets);
+ }
+
+ Insets& operator+=(const Insets& insets) {
+ top_ += insets.top_;
+ left_ += insets.left_;
+ bottom_ += insets.bottom_;
+ right_ += insets.right_;
+ return *this;
+ }
+
+ // Returns a string representation of the insets.
+ std::string ToString() const;
+
+ private:
+ int top_;
+ int left_;
+ int bottom_;
+ int right_;
+};
+
+} // namespace gfx
+
+#endif // GFX_INSETS_H_