1a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck// Use of this source code is governed by a BSD-style license that can be
3a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck// found in the LICENSE file.
4a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck
5a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck#include "ui/gfx/point.h"
6a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck
7a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck#if defined(OS_WIN)
8a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck#include <windows.h>
9a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck#endif
10a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck
11a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck#include "base/stringprintf.h"
12a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck
13a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Recknamespace gfx {
14a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck
15a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John ReckPoint::Point() : x_(0), y_(0) {
16a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck}
17a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck
18a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John ReckPoint::Point(int x, int y) : x_(x), y_(y) {
19a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck}
20a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck
21a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck#if defined(OS_WIN)
22a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John ReckPoint::Point(DWORD point) {
23a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck  POINTS points = MAKEPOINTS(point);
24a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck  x_ = points.x;
25a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck  y_ = points.y;
26a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck}
27a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck
28a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John ReckPoint::Point(const POINT& point) : x_(point.x), y_(point.y) {
29a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck}
30a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck
31a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John ReckPoint& Point::operator=(const POINT& point) {
32a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck  x_ = point.x;
33a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck  y_ = point.y;
34a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck  return *this;
35a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck}
36a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck
37a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John ReckPOINT Point::ToPOINT() const {
38a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck  POINT p;
39a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck  p.x = x_;
40a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck  p.y = y_;
41a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck  return p;
42a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck}
43a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck#elif defined(OS_MACOSX)
44a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John ReckPoint::Point(const CGPoint& point) : x_(point.x), y_(point.y) {
45a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck}
46a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck
47a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John ReckCGPoint Point::ToCGPoint() const {
48a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck  return CGPointMake(x_, y_);
49a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck}
50a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck#endif
51a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck
52a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reckstd::string Point::ToString() const {
53a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck  return base::StringPrintf("%d,%d", x_, y_);
54a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck}
55a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck
56a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51John Reck}  // namespace gfx
57