summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.mk2
-rw-r--r--base/string_util.h4
-rw-r--r--build/build_config.h10
-rw-r--r--net/base/escape.h3
-rw-r--r--ui/base/ui_export.h29
-rw-r--r--ui/gfx/point.cc56
-rw-r--r--ui/gfx/point.h107
7 files changed, 208 insertions, 3 deletions
diff --git a/Android.mk b/Android.mk
index 3238c39..7d1034e 100644
--- a/Android.mk
+++ b/Android.mk
@@ -352,6 +352,8 @@ LOCAL_SRC_FILES += \
sdch/open-vcdiff/src/vcdecoder.cc \
sdch/open-vcdiff/src/vcdiffengine.cc \
sdch/open-vcdiff/src/vcencoder.cc \
+ \
+ ui/gfx/point.cc \
# AutoFill++ source files.
LOCAL_SRC_FILES += \
diff --git a/base/string_util.h b/base/string_util.h
index 81d31d3..b6a1c0d 100644
--- a/base/string_util.h
+++ b/base/string_util.h
@@ -172,8 +172,8 @@ BASE_API const std::string& EmptyString();
BASE_API const std::wstring& EmptyWString();
BASE_API const string16& EmptyString16();
-extern const wchar_t kWhitespaceWide[];
-extern const char16 kWhitespaceUTF16[];
+BASE_API extern const wchar_t kWhitespaceWide[];
+BASE_API extern const char16 kWhitespaceUTF16[];
extern const char kWhitespaceASCII[];
extern const char kUtf8ByteOrderMark[];
diff --git a/build/build_config.h b/build/build_config.h
index df16071..cedac01 100644
--- a/build/build_config.h
+++ b/build/build_config.h
@@ -54,6 +54,7 @@
#define USE_OPENSSL 1
#define USE_SYSTEM_ZLIB 1
#define USE_SYSTEM_SQLITE 1
+#define OS_ANDROID 1
#endif
#if !defined(USE_OPENSSL)
@@ -145,4 +146,13 @@
//define CROS_FONTS_USING_BCI
#endif
+#if defined(OS_ANDROID)
+// The compiler thinks std::string::const_iterator and "const char*" are
+// equivalent types.
+#define STD_STRING_ITERATOR_IS_CHAR_POINTER
+// The compiler thinks base::string16::const_iterator and "char16*" are
+// equivalent types.
+#define BASE_STRING16_ITERATOR_IS_CHAR16_POINTER
+#endif
+
#endif // BUILD_BUILD_CONFIG_H_
diff --git a/net/base/escape.h b/net/base/escape.h
index f4c99a3..24149c3 100644
--- a/net/base/escape.h
+++ b/net/base/escape.h
@@ -11,6 +11,7 @@
#include "base/basictypes.h"
#include "base/string16.h"
+#include "net/base/net_export.h"
// Escaping --------------------------------------------------------------------
@@ -127,7 +128,7 @@ string16 UnescapeForHTML(const string16& text);
// This is basically the same as encodeURIComponent in javascript.
// For the string16 version, we do a conversion to charset before encoding the
// string. If the charset doesn't exist, we return false.
-std::string EscapeQueryParamValue(const std::string& text, bool use_plus);
+NET_EXPORT std::string EscapeQueryParamValue(const std::string& text, bool use_plus);
bool EscapeQueryParamValue(const string16& text, const char* codepage,
bool use_plus, string16* escaped);
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_