summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2012-02-22 17:41:36 -0800
committerJohn Reck <jreck@google.com>2012-02-23 10:30:53 -0800
commita7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51 (patch)
tree89f744b6727cb92b1ec1bffd13511d16a7e90209 /ui
parent4f3a742b60841cf402cd4192bd864afb7306356b (diff)
downloadexternal_chromium-a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51.zip
external_chromium-a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51.tar.gz
external_chromium-a7dee89fba4aaa5f0be152cfc7c7b9b5cff98d51.tar.bz2
Import content and address detector support
Change-Id: Iea123dd9b46b067105f945acd9e7ba8ba4421cf9
Diffstat (limited to 'ui')
-rw-r--r--ui/base/ui_export.h29
-rw-r--r--ui/gfx/point.cc56
-rw-r--r--ui/gfx/point.h107
3 files changed, 192 insertions, 0 deletions
diff --git a/ui/base/ui_export.h b/ui/base/ui_export.h
new file mode 100644
index 0000000..c54de1f
--- /dev/null
+++ b/ui/base/ui_export.h
@@ -0,0 +1,29 @@
+// Copyright (c) 2011 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 UI_UI_EXPORT_H_
+#define UI_UI_EXPORT_H_
+#pragma once
+
+// Defines UI_EXPORT so that functionality implemented by the UI module can be
+// exported to consumers.
+
+#if defined(COMPONENT_BUILD)
+#if defined(WIN32)
+
+#if defined(UI_IMPLEMENTATION)
+#define UI_EXPORT __declspec(dllexport)
+#else
+#define UI_EXPORT __declspec(dllimport)
+#endif // defined(UI_IMPLEMENTATION)
+
+#else // defined(WIN32)
+#define UI_EXPORT __attribute__((visibility("default")))
+#endif
+
+#else // defined(COMPONENT_BUILD)
+#define UI_EXPORT
+#endif
+
+#endif // UI_UI_EXPORT_H_
diff --git a/ui/gfx/point.cc b/ui/gfx/point.cc
new file mode 100644
index 0000000..ba9ced7
--- /dev/null
+++ b/ui/gfx/point.cc
@@ -0,0 +1,56 @@
+// Copyright (c) 2011 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.
+
+#include "ui/gfx/point.h"
+
+#if defined(OS_WIN)
+#include <windows.h>
+#endif
+
+#include "base/stringprintf.h"
+
+namespace gfx {
+
+Point::Point() : x_(0), y_(0) {
+}
+
+Point::Point(int x, int y) : x_(x), y_(y) {
+}
+
+#if defined(OS_WIN)
+Point::Point(DWORD point) {
+ POINTS points = MAKEPOINTS(point);
+ x_ = points.x;
+ y_ = points.y;
+}
+
+Point::Point(const POINT& point) : x_(point.x), y_(point.y) {
+}
+
+Point& Point::operator=(const POINT& point) {
+ x_ = point.x;
+ y_ = point.y;
+ return *this;
+}
+
+POINT Point::ToPOINT() const {
+ POINT p;
+ p.x = x_;
+ p.y = y_;
+ return p;
+}
+#elif defined(OS_MACOSX)
+Point::Point(const CGPoint& point) : x_(point.x), y_(point.y) {
+}
+
+CGPoint Point::ToCGPoint() const {
+ return CGPointMake(x_, y_);
+}
+#endif
+
+std::string Point::ToString() const {
+ return base::StringPrintf("%d,%d", x_, y_);
+}
+
+} // namespace gfx
diff --git a/ui/gfx/point.h b/ui/gfx/point.h
new file mode 100644
index 0000000..fe39e3b
--- /dev/null
+++ b/ui/gfx/point.h
@@ -0,0 +1,107 @@
+// Copyright (c) 2011 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 UI_GFX_POINT_H_
+#define UI_GFX_POINT_H_
+#pragma once
+
+#include <string>
+
+#include "build/build_config.h"
+#include "ui/base/ui_export.h"
+
+#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 UI_EXPORT 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;
+ }
+
+ Point Add(const Point& other) const{
+ Point copy = *this;
+ copy.Offset(other.x_, other.y_);
+ return copy;
+ }
+
+ Point Subtract(const Point& other) const {
+ Point copy = *this;
+ copy.Offset(-other.x_, -other.y_);
+ return copy;
+ }
+
+ Point Middle(const Point& other) const {
+ return Point((x_ + other.x_) / 2, (y_ + other.y_) / 2);
+ }
+
+ bool operator==(const Point& rhs) const {
+ return x_ == rhs.x_ && y_ == rhs.y_;
+ }
+
+ bool operator!=(const Point& rhs) const {
+ return !(*this == rhs);
+ }
+
+ // A point is less than another point if its y-value is closer
+ // to the origin. If the y-values are the same, then point with
+ // the x-value closer to the origin is considered less than the
+ // other.
+ // This comparison is required to use Points in sets, or sorted
+ // vectors.
+ bool operator<(const Point& rhs) const {
+ return (y_ == rhs.y_) ? (x_ < rhs.x_) : (y_ < rhs.y_);
+ }
+
+#if defined(OS_WIN)
+ POINT ToPOINT() const;
+#elif defined(OS_MACOSX)
+ CGPoint ToCGPoint() const;
+#endif
+
+ // Returns a string representation of point.
+ std::string ToString() const;
+
+ private:
+ int x_;
+ int y_;
+};
+
+} // namespace gfx
+
+#endif // UI_GFX_POINT_H_