summaryrefslogtreecommitdiffstats
path: root/gfx/point.h
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-14 23:30:59 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-14 23:30:59 +0000
commite0fc2f1f81f13440af3bb4cf5e56a031f91fc163 (patch)
treec84d3625eac633ea78d68688ecd74e2d0a158334 /gfx/point.h
parent98af9aca7168f061bfaae5cd4f4eb3f7de4e70e7 (diff)
downloadchromium_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/point.h')
-rw-r--r--gfx/point.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/gfx/point.h b/gfx/point.h
new file mode 100644
index 0000000..513d555
--- /dev/null
+++ b/gfx/point.h
@@ -0,0 +1,80 @@
+// 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_POINT_H__
+#define BASE_GFX_POINT_H__
+
+#include "build/build_config.h"
+
+#include <iosfwd>
+
+#if defined(OS_WIN)
+typedef unsigned long DWORD;
+typedef struct tagPOINT POINT;
+#elif defined(OS_MACOSX)
+#include <ApplicationServices/ApplicationServices.h>
+#endif
+
+namespace gfx {
+
+//
+// A point has an x and y coordinate.
+//
+class Point {
+ public:
+ Point();
+ Point(int x, int y);
+#if defined(OS_WIN)
+ // |point| is a DWORD value that contains a coordinate. The x-coordinate is
+ // the low-order short and the y-coordinate is the high-order short. This
+ // value is commonly acquired from GetMessagePos/GetCursorPos.
+ explicit Point(DWORD point);
+ explicit Point(const POINT& point);
+ Point& operator=(const POINT& point);
+#elif defined(OS_MACOSX)
+ explicit Point(const CGPoint& point);
+#endif
+
+ ~Point() {}
+
+ int x() const { return x_; }
+ int y() const { return y_; }
+
+ void SetPoint(int x, int y) {
+ x_ = x;
+ y_ = y;
+ }
+
+ void set_x(int x) { x_ = x; }
+ void set_y(int y) { y_ = y; }
+
+ void Offset(int delta_x, int delta_y) {
+ x_ += delta_x;
+ y_ += delta_y;
+ }
+
+ bool operator==(const Point& rhs) const {
+ return x_ == rhs.x_ && y_ == rhs.y_;
+ }
+
+ bool operator!=(const Point& rhs) const {
+ return !(*this == rhs);
+ }
+
+#if defined(OS_WIN)
+ POINT ToPOINT() const;
+#elif defined(OS_MACOSX)
+ CGPoint ToCGPoint() const;
+#endif
+
+ private:
+ int x_;
+ int y_;
+};
+
+} // namespace gfx
+
+std::ostream& operator<<(std::ostream& out, const gfx::Point& p);
+
+#endif // BASE_GFX_POINT_H__