diff options
-rw-r--r-- | Android.mk | 2 | ||||
-rw-r--r-- | base/string_util.h | 4 | ||||
-rw-r--r-- | build/build_config.h | 10 | ||||
-rw-r--r-- | net/base/escape.h | 3 | ||||
-rw-r--r-- | ui/base/ui_export.h | 29 | ||||
-rw-r--r-- | ui/gfx/point.cc | 56 | ||||
-rw-r--r-- | ui/gfx/point.h | 107 |
7 files changed, 208 insertions, 3 deletions
@@ -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_ |