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