summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-17 06:40:57 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-17 06:40:57 +0000
commit5c7293a73bdaedbe368bc26426a2345f230f2822 (patch)
tree9a5c28a66102e61536730d8335843c14ae5e0a10 /app
parentaf63c908603f8a2f58f69167129f819d5d30820c (diff)
downloadchromium_src-5c7293a73bdaedbe368bc26426a2345f230f2822.zip
chromium_src-5c7293a73bdaedbe368bc26426a2345f230f2822.tar.gz
chromium_src-5c7293a73bdaedbe368bc26426a2345f230f2822.tar.bz2
Move some more files to toplevel gfx dir.
TBR=darin BUG=none TEST=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41812 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'app')
-rw-r--r--app/app_base.gypi18
-rw-r--r--app/gfx/blit.cc101
-rw-r--r--app/gfx/blit.h47
-rw-r--r--app/gfx/gtk_native_view_id_manager.cc145
-rw-r--r--app/gfx/gtk_native_view_id_manager.h91
-rw-r--r--app/gfx/gtk_util.cc90
-rw-r--r--app/gfx/gtk_util.h67
-rw-r--r--app/gfx/insets.cc16
-rw-r--r--app/gfx/insets.h93
-rw-r--r--app/gfx/insets_unittest.cc68
-rw-r--r--app/gfx/native_widget_types.h156
-rw-r--r--app/gfx/native_widget_types_gtk.cc16
-rw-r--r--app/gfx/path.cc18
-rw-r--r--app/gfx/path.h54
-rw-r--r--app/gfx/path_gtk.cc55
-rw-r--r--app/gfx/path_win.cc45
-rw-r--r--app/gfx/scrollbar_size.cc23
-rw-r--r--app/gfx/scrollbar_size.h17
-rw-r--r--app/menus/menu_model.h2
-rw-r--r--app/resource_bundle_linux.cc2
-rw-r--r--app/win/window_impl.h2
21 files changed, 3 insertions, 1123 deletions
diff --git a/app/app_base.gypi b/app/app_base.gypi
index 6744070..e6a80c5 100644
--- a/app/app_base.gypi
+++ b/app/app_base.gypi
@@ -45,8 +45,6 @@
}],
['OS!="linux" and OS!="freebsd" and OS!="openbsd"', {
'sources!': [
- 'gfx/gtk_util.cc',
- 'gfx/gtk_util.h',
'gtk_dnd_util.cc',
'gtk_dnd_util.h',
'gtk_signal.h',
@@ -111,8 +109,6 @@
'drag_drop_types_win.cc',
'drag_drop_types.h',
'file_download_interface.h',
- 'gfx/blit.cc',
- 'gfx/blit.h',
'gfx/canvas.cc',
'gfx/canvas.h',
'gfx/canvas_linux.cc',
@@ -134,22 +130,8 @@
'gfx/font_win.cc',
'gfx/gdi_util.cc',
'gfx/gdi_util.h',
- 'gfx/gtk_util.cc',
- 'gfx/gtk_util.h',
- 'gfx/insets.h',
- 'gfx/insets.cc',
- 'gfx/native_widget_types.h',
- 'gfx/native_widget_types_gtk.cc',
'gfx/native_theme_win.cc',
'gfx/native_theme_win.h',
- 'gfx/gtk_native_view_id_manager.cc',
- 'gfx/gtk_native_view_id_manager.h',
- 'gfx/path.cc',
- 'gfx/path_gtk.cc',
- 'gfx/path_win.cc',
- 'gfx/path.h',
- 'gfx/scrollbar_size.cc',
- 'gfx/scrollbar_size.h',
'gfx/skbitmap_operations.cc',
'gfx/skbitmap_operations.h',
'gfx/skia_util.cc',
diff --git a/app/gfx/blit.cc b/app/gfx/blit.cc
deleted file mode 100644
index 62417d2..0000000
--- a/app/gfx/blit.cc
+++ /dev/null
@@ -1,101 +0,0 @@
-// Copyright (c) 2009 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 "app/gfx/blit.h"
-
-#if defined(OS_POSIX) && !defined(OS_MACOSX)
-#include <cairo/cairo.h>
-#endif
-
-#if defined(OS_MACOSX)
-#include "base/scoped_cftyperef.h"
-#endif
-#include "gfx/point.h"
-#include "gfx/rect.h"
-#include "skia/ext/platform_canvas.h"
-#include "skia/ext/platform_device.h"
-
-namespace gfx {
-
-void BlitContextToContext(NativeDrawingContext dst_context,
- const Rect& dst_rect,
- NativeDrawingContext src_context,
- const Point& src_origin) {
-#if defined(OS_WIN)
- BitBlt(dst_context, dst_rect.x(), dst_rect.y(),
- dst_rect.width(), dst_rect.height(),
- src_context, src_origin.x(), src_origin.y(), SRCCOPY);
-#elif defined(OS_MACOSX)
- // Only translations and/or vertical flips in the source context are
- // supported; more complex source context transforms will be ignored.
-
- // If there is a translation on the source context, we need to account for
- // it ourselves since CGBitmapContextCreateImage will bypass it.
- Rect src_rect(src_origin, dst_rect.size());
- CGAffineTransform transform = CGContextGetCTM(src_context);
- bool flipped = fabs(transform.d + 1) < 0.0001;
- CGFloat delta_y = flipped ? CGBitmapContextGetHeight(src_context) -
- transform.ty
- : transform.ty;
- src_rect.Offset(transform.tx, delta_y);
-
- scoped_cftyperef<CGImageRef>
- src_image(CGBitmapContextCreateImage(src_context));
- scoped_cftyperef<CGImageRef> src_sub_image(
- CGImageCreateWithImageInRect(src_image, src_rect.ToCGRect()));
- CGContextDrawImage(dst_context, dst_rect.ToCGRect(), src_sub_image);
-#else // Linux, BSD, others
- // Only translations in the source context are supported; more complex
- // source context transforms will be ignored.
- cairo_save(dst_context);
- double surface_x = src_origin.x();
- double surface_y = src_origin.y();
- cairo_user_to_device(src_context, &surface_x, &surface_y);
- cairo_set_source_surface(dst_context, cairo_get_target(src_context),
- dst_rect.x()-surface_x, dst_rect.y()-surface_y);
- cairo_rectangle(dst_context, dst_rect.x(), dst_rect.y(),
- dst_rect.width(), dst_rect.height());
- cairo_clip(dst_context);
- cairo_paint(dst_context);
- cairo_restore(dst_context);
-#endif
-}
-
-static NativeDrawingContext GetContextFromCanvas(
- skia::PlatformCanvas *canvas) {
- skia::PlatformDevice& device = canvas->getTopPlatformDevice();
-#if defined(OS_WIN)
- return device.getBitmapDC();
-#elif defined(OS_MACOSX)
- return device.GetBitmapContext();
-#else // Linux, BSD, others
- return device.beginPlatformPaint();
-#endif
-}
-
-void BlitContextToCanvas(skia::PlatformCanvas *dst_canvas,
- const Rect& dst_rect,
- NativeDrawingContext src_context,
- const Point& src_origin) {
- BlitContextToContext(GetContextFromCanvas(dst_canvas), dst_rect,
- src_context, src_origin);
-}
-
-void BlitCanvasToContext(NativeDrawingContext dst_context,
- const Rect& dst_rect,
- skia::PlatformCanvas *src_canvas,
- const Point& src_origin) {
- BlitContextToContext(dst_context, dst_rect,
- GetContextFromCanvas(src_canvas), src_origin);
-}
-
-void BlitCanvasToCanvas(skia::PlatformCanvas *dst_canvas,
- const Rect& dst_rect,
- skia::PlatformCanvas *src_canvas,
- const Point& src_origin) {
- BlitContextToContext(GetContextFromCanvas(dst_canvas), dst_rect,
- GetContextFromCanvas(src_canvas), src_origin);
-}
-
-} // namespace gfx
diff --git a/app/gfx/blit.h b/app/gfx/blit.h
deleted file mode 100644
index f4445d3..0000000
--- a/app/gfx/blit.h
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (c) 2009 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 APP_GFX_BLIT_H_
-#define APP_GFX_BLIT_H_
-
-#include "app/gfx/native_widget_types.h"
-#include "gfx/point.h"
-#include "gfx/rect.h"
-
-namespace skia {
-class PlatformCanvas;
-} // namespace skia
-
-namespace gfx {
-
-class Point;
-class Rect;
-
-// Blits a rectangle from the source context into the destination context.
-void BlitContextToContext(NativeDrawingContext dst_context,
- const Rect& dst_rect,
- NativeDrawingContext src_context,
- const Point& src_origin);
-
-// Blits a rectangle from the source context into the destination canvas.
-void BlitContextToCanvas(skia::PlatformCanvas *dst_canvas,
- const Rect& dst_rect,
- NativeDrawingContext src_context,
- const Point& src_origin);
-
-// Blits a rectangle from the source canvas into the destination context.
-void BlitCanvasToContext(NativeDrawingContext dst_context,
- const Rect& dst_rect,
- skia::PlatformCanvas *src_canvas,
- const Point& src_origin);
-
-// Blits a rectangle from the source canvas into the destination canvas.
-void BlitCanvasToCanvas(skia::PlatformCanvas *dst_canvas,
- const Rect& dst_rect,
- skia::PlatformCanvas *src_canvas,
- const Point& src_origin);
-
-} // namespace gfx
-
-#endif // APP_GFX_BLIT_H_
diff --git a/app/gfx/gtk_native_view_id_manager.cc b/app/gfx/gtk_native_view_id_manager.cc
deleted file mode 100644
index 211db4e..0000000
--- a/app/gfx/gtk_native_view_id_manager.cc
+++ /dev/null
@@ -1,145 +0,0 @@
-// Copyright (c) 2009 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 "app/gfx/gtk_native_view_id_manager.h"
-
-#include "base/logging.h"
-#include "base/rand_util.h"
-#include "gfx/rect.h"
-
-#include <gtk/gtk.h>
-#include <gdk/gdkx.h>
-
-// -----------------------------------------------------------------------------
-// Bounce functions for GTK to callback into a C++ object...
-
-static void OnRealize(gfx::NativeView widget, void* arg) {
- GtkNativeViewManager* manager = reinterpret_cast<GtkNativeViewManager*>(arg);
- manager->OnRealize(widget);
-}
-
-static void OnUnrealize(gfx::NativeView widget, void *arg) {
- GtkNativeViewManager* manager = reinterpret_cast<GtkNativeViewManager*>(arg);
- manager->OnUnrealize(widget);
-}
-
-static void OnDestroy(GtkObject* obj, void* arg) {
- GtkNativeViewManager* manager = reinterpret_cast<GtkNativeViewManager*>(arg);
- manager->OnDestroy(reinterpret_cast<GtkWidget*>(obj));
-}
-
-// -----------------------------------------------------------------------------
-
-
-// -----------------------------------------------------------------------------
-// Public functions...
-
-GtkNativeViewManager::GtkNativeViewManager() {
-}
-
-gfx::NativeViewId GtkNativeViewManager::GetIdForWidget(gfx::NativeView widget) {
- // This is just for unit tests:
- if (!widget)
- return 0;
-
- AutoLock locked(lock_);
-
- std::map<gfx::NativeView, gfx::NativeViewId>::const_iterator i =
- native_view_to_id_.find(widget);
-
- if (i != native_view_to_id_.end())
- return i->second;
-
- gfx::NativeViewId new_id =
- static_cast<gfx::NativeViewId>(base::RandUint64());
- while (id_to_info_.find(new_id) != id_to_info_.end())
- new_id = static_cast<gfx::NativeViewId>(base::RandUint64());
-
- NativeViewInfo info;
- if (GTK_WIDGET_REALIZED(widget)) {
- GdkWindow *gdk_window = widget->window;
- CHECK(gdk_window);
- info.x_window_id = GDK_WINDOW_XID(gdk_window);
- }
-
- native_view_to_id_[widget] = new_id;
- id_to_info_[new_id] = info;
-
- g_signal_connect(widget, "realize", G_CALLBACK(::OnRealize), this);
- g_signal_connect(widget, "unrealize", G_CALLBACK(::OnUnrealize), this);
- g_signal_connect(widget, "destroy", G_CALLBACK(::OnDestroy), this);
-
- return new_id;
-}
-
-bool GtkNativeViewManager::GetXIDForId(XID* output, gfx::NativeViewId id) {
- AutoLock locked(lock_);
-
- std::map<gfx::NativeViewId, NativeViewInfo>::const_iterator i =
- id_to_info_.find(id);
-
- if (i == id_to_info_.end())
- return false;
-
- *output = i->second.x_window_id;
- return true;
-}
-
-// -----------------------------------------------------------------------------
-
-
-// -----------------------------------------------------------------------------
-// Private functions...
-
-gfx::NativeViewId GtkNativeViewManager::GetWidgetId(gfx::NativeView widget) {
- lock_.AssertAcquired();
-
- std::map<gfx::NativeView, gfx::NativeViewId>::const_iterator i =
- native_view_to_id_.find(widget);
-
- CHECK(i != native_view_to_id_.end());
- return i->second;
-}
-
-void GtkNativeViewManager::OnRealize(gfx::NativeView widget) {
- AutoLock locked(lock_);
-
- const gfx::NativeViewId id = GetWidgetId(widget);
- std::map<gfx::NativeViewId, NativeViewInfo>::iterator i =
- id_to_info_.find(id);
-
- CHECK(i != id_to_info_.end());
- CHECK(widget->window);
-
- i->second.x_window_id = GDK_WINDOW_XID(widget->window);
-}
-
-void GtkNativeViewManager::OnUnrealize(gfx::NativeView widget) {
- AutoLock locked(lock_);
-
- const gfx::NativeViewId id = GetWidgetId(widget);
- std::map<gfx::NativeViewId, NativeViewInfo>::iterator i =
- id_to_info_.find(id);
-
- CHECK(i != id_to_info_.end());
-
- i->second.x_window_id = 0;
-}
-
-void GtkNativeViewManager::OnDestroy(gfx::NativeView widget) {
- AutoLock locked(lock_);
-
- std::map<gfx::NativeView, gfx::NativeViewId>::iterator i =
- native_view_to_id_.find(widget);
- CHECK(i != native_view_to_id_.end());
-
- std::map<gfx::NativeViewId, NativeViewInfo>::iterator j =
- id_to_info_.find(i->second);
- CHECK(j != id_to_info_.end());
-
- native_view_to_id_.erase(i);
- id_to_info_.erase(j);
-}
-
-// -----------------------------------------------------------------------------
diff --git a/app/gfx/gtk_native_view_id_manager.h b/app/gfx/gtk_native_view_id_manager.h
deleted file mode 100644
index bb8f732..0000000
--- a/app/gfx/gtk_native_view_id_manager.h
+++ /dev/null
@@ -1,91 +0,0 @@
-// Copyright (c) 2009 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 APP_GFX_GTK_NATIVE_VIEW_ID_MANAGER_H_
-#define APP_GFX_GTK_NATIVE_VIEW_ID_MANAGER_H_
-
-#include <map>
-
-#include "app/gfx/native_widget_types.h"
-#include "base/singleton.h"
-
-typedef unsigned long XID;
-
-// NativeViewIds are the opaque values which the renderer holds as a reference
-// to a window. These ids are often used in sync calls from the renderer and
-// one cannot terminate sync calls on the UI thread as that can lead to
-// deadlocks.
-//
-// Because of this, we have the BACKGROUND_X11 thread for these calls and this
-// thread has a separate X connection in order to answer them. But one cannot
-// use GTK on multiple threads, so the BACKGROUND_X11 thread deals only in Xlib
-// calls and, thus, XIDs.
-//
-// So we could make NativeViewIds be the X id of the window. However, at the
-// time when we need to tell the renderer about its NativeViewId, an XID isn't
-// availible and it goes very much against the grain of the code to make it so.
-// Also, we worry that GTK might choose to change the underlying X window id
-// when, say, the widget is hidden or repacked. Finally, if we used XIDs then a
-// compromised renderer could start asking questions about any X windows on the
-// system.
-//
-// Thus, we have this object. It produces random NativeViewIds from GtkWidget
-// pointers and observes the various signals from the widget for when an X
-// window is created, destroyed etc. Thus it provides a thread safe mapping
-// from NativeViewIds to the current XID for that widget.
-//
-// You get a reference to the global instance with:
-// Singleton<GtkNativeViewManager>()
-class GtkNativeViewManager {
- public:
- // Must be called from the UI thread:
- //
- // Return a NativeViewId for the given widget and attach to the various
- // signals emitted by that widget. The NativeViewId is pseudo-randomly
- // allocated so that a compromised renderer trying to guess values will fail
- // with high probability. The NativeViewId will not be reused for the
- // lifetime of the GtkWidget.
- gfx::NativeViewId GetIdForWidget(gfx::NativeView widget);
-
- // May be called from any thread:
- //
- // xid: (output) the resulting X window ID, or 0
- // id: a value previously returned from GetIdForWidget
- // returns: true if |id| is a valid id, false otherwise.
- //
- // If the widget referenced by |id| does not current have an X window id,
- // |*xid| is set to 0.
- bool GetXIDForId(XID* xid, gfx::NativeViewId id);
-
- // These are actually private functions, but need to be called from statics.
- void OnRealize(gfx::NativeView widget);
- void OnUnrealize(gfx::NativeView widget);
- void OnDestroy(gfx::NativeView widget);
-
- private:
- // This object is a singleton:
- GtkNativeViewManager();
- friend struct DefaultSingletonTraits<GtkNativeViewManager>;
-
- struct NativeViewInfo {
- NativeViewInfo()
- : x_window_id(0) {
- }
-
- XID x_window_id;
- };
-
- gfx::NativeViewId GetWidgetId(gfx::NativeView id);
-
- // protects native_view_to_id_ and id_to_info_
- Lock lock_;
- // If asked for an id for the same widget twice, we want to return the same
- // id. So this records the current mapping.
- std::map<gfx::NativeView, gfx::NativeViewId> native_view_to_id_;
- std::map<gfx::NativeViewId, NativeViewInfo> id_to_info_;
-
- DISALLOW_COPY_AND_ASSIGN(GtkNativeViewManager);
-};
-
-#endif // APP_GFX_GTK_NATIVE_VIEW_ID_MANAGER_H_
diff --git a/app/gfx/gtk_util.cc b/app/gfx/gtk_util.cc
deleted file mode 100644
index 32d48a5..0000000
--- a/app/gfx/gtk_util.cc
+++ /dev/null
@@ -1,90 +0,0 @@
-// Copyright (c) 2009 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 "app/gfx/gtk_util.h"
-
-#include <gdk/gdk.h>
-#include <gtk/gtk.h>
-#include <stdlib.h>
-
-#include "base/basictypes.h"
-#include "base/linux_util.h"
-#include "gfx/rect.h"
-#include "third_party/skia/include/core/SkBitmap.h"
-#include "third_party/skia/include/core/SkUnPreMultiply.h"
-
-namespace {
-
-void FreePixels(guchar* pixels, gpointer data) {
- free(data);
-}
-
-} // namespace
-
-namespace gfx {
-
-const GdkColor kGdkWhite = GDK_COLOR_RGB(0xff, 0xff, 0xff);
-const GdkColor kGdkBlack = GDK_COLOR_RGB(0x00, 0x00, 0x00);
-const GdkColor kGdkGreen = GDK_COLOR_RGB(0x00, 0xff, 0x00);
-
-GdkPixbuf* GdkPixbufFromSkBitmap(const SkBitmap* bitmap) {
- if (bitmap->isNull())
- return NULL;
-
- bitmap->lockPixels();
-
- int width = bitmap->width();
- int height = bitmap->height();
- int stride = bitmap->rowBytes();
-
- // SkBitmaps are premultiplied, we need to unpremultiply them.
- const int kBytesPerPixel = 4;
- uint8* divided = static_cast<uint8*>(malloc(height * stride));
-
- for (int y = 0, i = 0; y < height; y++) {
- for (int x = 0; x < width; x++) {
- uint32 pixel = bitmap->getAddr32(0, y)[x];
-
- int alpha = SkColorGetA(pixel);
- if (alpha != 0 && alpha != 255) {
- SkColor unmultiplied = SkUnPreMultiply::PMColorToColor(pixel);
- divided[i + 0] = SkColorGetR(unmultiplied);
- divided[i + 1] = SkColorGetG(unmultiplied);
- divided[i + 2] = SkColorGetB(unmultiplied);
- divided[i + 3] = alpha;
- } else {
- divided[i + 0] = SkColorGetR(pixel);
- divided[i + 1] = SkColorGetG(pixel);
- divided[i + 2] = SkColorGetB(pixel);
- divided[i + 3] = alpha;
- }
- i += kBytesPerPixel;
- }
- }
-
- // This pixbuf takes ownership of our malloc()ed data and will
- // free it for us when it is destroyed.
- GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data(
- divided,
- GDK_COLORSPACE_RGB, // The only colorspace gtk supports.
- true, // There is an alpha channel.
- 8,
- width, height, stride, &FreePixels, divided);
-
- bitmap->unlockPixels();
- return pixbuf;
-}
-
-void SubtractRectanglesFromRegion(GdkRegion* region,
- const std::vector<Rect>& cutouts) {
- for (size_t i = 0; i < cutouts.size(); ++i) {
- GdkRectangle rect = cutouts[i].ToGdkRectangle();
- GdkRegion* rect_region = gdk_region_rectangle(&rect);
- gdk_region_subtract(region, rect_region);
- // TODO(deanm): It would be nice to be able to reuse the GdkRegion here.
- gdk_region_destroy(rect_region);
- }
-}
-
-} // namespace gfx
diff --git a/app/gfx/gtk_util.h b/app/gfx/gtk_util.h
deleted file mode 100644
index b33f0e7..0000000
--- a/app/gfx/gtk_util.h
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright (c) 2009 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 APP_GFX_GTK_UTIL_H_
-#define APP_GFX_GTK_UTIL_H_
-
-#include <stdint.h>
-#include <vector>
-
-#include <glib-object.h>
-
-#include "base/scoped_ptr.h"
-
-typedef struct _GdkColor GdkColor;
-typedef struct _GdkPixbuf GdkPixbuf;
-typedef struct _GdkRegion GdkRegion;
-
-class SkBitmap;
-
-const int kSkiaToGDKMultiplier = 257;
-
-// Define a macro for creating GdkColors from RGB values. This is a macro to
-// allow static construction of literals, etc. Use this like:
-// GdkColor white = GDK_COLOR_RGB(0xff, 0xff, 0xff);
-#define GDK_COLOR_RGB(r, g, b) {0, r * kSkiaToGDKMultiplier, \
- g * kSkiaToGDKMultiplier, b * kSkiaToGDKMultiplier}
-
-namespace gfx {
-
-class Rect;
-
-extern const GdkColor kGdkWhite;
-extern const GdkColor kGdkBlack;
-extern const GdkColor kGdkGreen;
-
-// Convert and copy a SkBitmap to a GdkPixbuf. NOTE: this uses BGRAToRGBA, so
-// it is an expensive operation.
-GdkPixbuf* GdkPixbufFromSkBitmap(const SkBitmap* bitmap);
-
-// Modify the given region by subtracting the given rectangles.
-void SubtractRectanglesFromRegion(GdkRegion* region,
- const std::vector<Rect>& cutouts);
-
-} // namespace gfx
-
-namespace {
-// A helper class that will g_object_unref |p| when it goes out of scope.
-// This never adds a ref, it only unrefs.
-template <typename Type>
-struct GObjectUnrefer {
- void operator()(Type* ptr) const {
- if (ptr)
- g_object_unref(ptr);
- }
-};
-} // namespace
-
-// It's not legal C++ to have a templatized typedefs, so we wrap it in a
-// struct. When using this, you need to include ::Type. E.g.,
-// ScopedGObject<GdkPixbufLoader>::Type loader(gdk_pixbuf_loader_new());
-template<class T>
-struct ScopedGObject {
- typedef scoped_ptr_malloc<T, GObjectUnrefer<T> > Type;
-};
-
-#endif // APP_GFX_GTK_UTIL_H_
diff --git a/app/gfx/insets.cc b/app/gfx/insets.cc
deleted file mode 100644
index 7e3da0c..0000000
--- a/app/gfx/insets.cc
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (c) 2009 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 "app/gfx/insets.h"
-
-#include "base/string_util.h"
-
-namespace gfx {
-
-std::string Insets::ToString() const {
- // Print members in the same order of the constructor parameters.
- return StringPrintf("%d,%d,%d,%d", top_, left_, bottom_, right_);
-}
-
-} // namespace gfx
diff --git a/app/gfx/insets.h b/app/gfx/insets.h
deleted file mode 100644
index 9dddbbd..0000000
--- a/app/gfx/insets.h
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright (c) 2006-2008 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 APP_GFX_INSETS_H_
-#define APP_GFX_INSETS_H_
-
-#include "build/build_config.h"
-
-#if defined(OS_POSIX) && !defined(OS_MACOSX)
-#include <gtk/gtkstyle.h>
-#endif
-
-#include <string>
-
-namespace gfx {
-
-//
-// An insets represents the borders of a container (the space the container must
-// leave at each of its edges).
-//
-
-class Insets {
- public:
- Insets() : top_(0), left_(0), bottom_(0), right_(0) {}
- Insets(int top, int left, int bottom, int right)
- : top_(top),
- left_(left),
- bottom_(bottom),
- right_(right) {}
-#if defined(OS_POSIX) && !defined(OS_MACOSX)
- explicit Insets(const GtkBorder& border)
- : top_(border.top),
- left_(border.left),
- bottom_(border.bottom),
- right_(border.right) {}
-#endif
-
- ~Insets() {}
-
- int top() const { return top_; }
- int left() const { return left_; }
- int bottom() const { return bottom_; }
- int right() const { return right_; }
-
- // Returns the total width taken up by the insets, which is the sum of the
- // left and right insets.
- int width() const { return left_ + right_; }
-
- // Returns the total height taken up by the insets, which is the sum of the
- // top and bottom insets.
- int height() const { return top_ + bottom_; }
-
- // Returns true if the insets are empty.
- bool empty() const { return width() == 0 && height() == 0; }
-
- void Set(int top, int left, int bottom, int right) {
- top_ = top;
- left_ = left;
- bottom_ = bottom;
- right_ = right;
- }
-
- bool operator==(const Insets& insets) const {
- return top_ == insets.top_ && left_ == insets.left_ &&
- bottom_ == insets.bottom_ && right_ == insets.right_;
- }
-
- bool operator!=(const Insets& insets) const {
- return !(*this == insets);
- }
-
- Insets& operator+=(const Insets& insets) {
- top_ += insets.top_;
- left_ += insets.left_;
- bottom_ += insets.bottom_;
- right_ += insets.right_;
- return *this;
- }
-
- // Returns a string representation of the insets.
- std::string ToString() const;
-
- private:
- int top_;
- int left_;
- int bottom_;
- int right_;
-};
-
-} // namespace gfx
-
-#endif // APP_GFX_INSETS_H_
diff --git a/app/gfx/insets_unittest.cc b/app/gfx/insets_unittest.cc
deleted file mode 100644
index 9430a09..0000000
--- a/app/gfx/insets_unittest.cc
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright (c) 2009 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 "app/gfx/insets.h"
-
-#include <iostream>
-
-#include "testing/gtest/include/gtest/gtest.h"
-
-TEST(InsetsTest, InsetsDefault) {
- gfx::Insets insets;
- EXPECT_EQ(0, insets.top());
- EXPECT_EQ(0, insets.left());
- EXPECT_EQ(0, insets.bottom());
- EXPECT_EQ(0, insets.right());
- EXPECT_EQ(0, insets.width());
- EXPECT_EQ(0, insets.height());
- EXPECT_TRUE(insets.empty());
-}
-
-TEST(InsetsTest, Insets) {
- gfx::Insets insets(1, 2, 3, 4);
- EXPECT_EQ(1, insets.top());
- EXPECT_EQ(2, insets.left());
- EXPECT_EQ(3, insets.bottom());
- EXPECT_EQ(4, insets.right());
- EXPECT_EQ(6, insets.width()); // Left + right.
- EXPECT_EQ(4, insets.height()); // Top + bottom.
- EXPECT_FALSE(insets.empty());
-}
-
-TEST(InsetsTest, Set) {
- gfx::Insets insets;
- insets.Set(1, 2, 3, 4);
- EXPECT_EQ(1, insets.top());
- EXPECT_EQ(2, insets.left());
- EXPECT_EQ(3, insets.bottom());
- EXPECT_EQ(4, insets.right());
-}
-
-TEST(InsetsTest, Add) {
- gfx::Insets insets;
- insets.Set(1, 2, 3, 4);
- insets += gfx::Insets(5, 6, 7, 8);
- EXPECT_EQ(6, insets.top());
- EXPECT_EQ(8, insets.left());
- EXPECT_EQ(10, insets.bottom());
- EXPECT_EQ(12, insets.right());
-}
-
-TEST(InsetsTest, Equality) {
- gfx::Insets insets1;
- insets1.Set(1, 2, 3, 4);
- gfx::Insets insets2;
- // Test operator== and operator!=.
- EXPECT_FALSE(insets1 == insets2);
- EXPECT_TRUE(insets1 != insets2);
-
- insets2.Set(1, 2, 3, 4);
- EXPECT_TRUE(insets1 == insets2);
- EXPECT_FALSE(insets1 != insets2);
-}
-
-TEST(InsetsTest, ToString) {
- gfx::Insets insets(1, 2, 3, 4);
- EXPECT_EQ("1,2,3,4", insets.ToString());
-}
diff --git a/app/gfx/native_widget_types.h b/app/gfx/native_widget_types.h
deleted file mode 100644
index af5baa9..0000000
--- a/app/gfx/native_widget_types.h
+++ /dev/null
@@ -1,156 +0,0 @@
-// Copyright (c) 2009 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 APP_GFX_NATIVE_WIDGET_TYPES_H_
-#define APP_GFX_NATIVE_WIDGET_TYPES_H_
-
-#include "base/basictypes.h"
-#include "build/build_config.h"
-
-// This file provides cross platform typedefs for native widget types.
-// NativeWindow: this is a handle to a native, top-level window
-// NativeView: this is a handle to a native UI element. It may be the
-// same type as a NativeWindow on some platforms.
-// NativeViewId: Often, in our cross process model, we need to pass around a
-// reference to a "window". This reference will, say, be echoed back from a
-// renderer to the browser when it wishes to query it's size. On Windows, a
-// HWND can be used for this. On other platforms, we may wish to pass
-// around X window ids, or maybe abstract identifiers.
-//
-// As a rule of thumb - if you're in the renderer, you should be dealing
-// with NativeViewIds. This should remind you that you shouldn't be doing
-// direct operations on platform widgets from the renderer process.
-//
-// If you're in the browser, you're probably dealing with NativeViews,
-// unless you're in the IPC layer, which will be translating between
-// NativeViewIds from the renderer and NativeViews.
-//
-// NativeEditView: a handle to a native edit-box. The Mac folks wanted this
-// specific typedef.
-//
-// The name 'View' here meshes with OS X where the UI elements are called
-// 'views' and with our Chrome UI code where the elements are also called
-// 'views'.
-
-#if defined(OS_WIN)
-#include <windows.h>
-#elif defined(OS_MACOSX)
-struct CGContext;
-#ifdef __OBJC__
-@class NSView;
-@class NSWindow;
-@class NSTextField;
-#else
-class NSView;
-class NSWindow;
-class NSTextField;
-#endif // __OBJC__
-#elif defined(USE_X11)
-typedef struct _GdkCursor GdkCursor;
-typedef struct _GdkRegion GdkRegion;
-typedef struct _GtkWidget GtkWidget;
-typedef struct _GtkWindow GtkWindow;
-typedef struct _cairo cairo_t;
-#endif
-
-namespace gfx {
-
-#if defined(OS_WIN)
-typedef HWND NativeView;
-typedef HWND NativeWindow;
-typedef HWND NativeEditView;
-typedef HDC NativeDrawingContext;
-typedef HCURSOR NativeCursor;
-typedef HMENU NativeMenu;
-typedef HRGN NativeRegion;
-#elif defined(OS_MACOSX)
-typedef NSView* NativeView;
-typedef NSWindow* NativeWindow;
-typedef NSTextField* NativeEditView;
-typedef CGContext* NativeDrawingContext;
-typedef void* NativeCursor;
-typedef void* NativeMenu;
-#elif defined(USE_X11)
-typedef GtkWidget* NativeView;
-typedef GtkWindow* NativeWindow;
-typedef GtkWidget* NativeEditView;
-typedef cairo_t* NativeDrawingContext;
-typedef GdkCursor* NativeCursor;
-typedef GtkWidget* NativeMenu;
-typedef GdkRegion* NativeRegion;
-#endif
-
-// Note: for test_shell we're packing a pointer into the NativeViewId. So, if
-// you make it a type which is smaller than a pointer, you have to fix
-// test_shell.
-//
-// See comment at the top of the file for usage.
-typedef intptr_t NativeViewId;
-
-// Convert a NativeViewId to a NativeView.
-// On Windows, these are both HWNDS so it's just a cast.
-// On Mac, for now, we pass the NSView pointer into the renderer
-// On Linux we use an opaque id
-#if defined(OS_WIN)
-static inline NativeView NativeViewFromId(NativeViewId id) {
- return reinterpret_cast<NativeView>(id);
-}
-#elif defined(OS_MACOSX)
-
-// A recent CL removed the need for Mac to actually convert
-// NativeViewId to NativeView. Until other platforms make changes,
-// the platform-independent code cannot be removed. The following is
-// to discourage new platform-independent uses.
-
-#define NativeViewFromId(x) NATIVE_VIEW_FROM_ID_NOT_AVAILABLE_ON_MAC
-
-#elif defined(USE_X11)
-// A NativeView on Linux is a GtkWidget*. However, we can't go directly from an
-// X window ID to a GtkWidget. Thus, functions which handle NativeViewIds from
-// the renderer have to use Xlib. This is fine since these functions are
-// generally performed on the BACKGROUND_X thread which can't use GTK anyway.
-
-#define NativeViewFromId(x) NATIVE_VIEW_FROM_ID_NOT_AVAILIBLE_ON_X11
-
-#endif // defined(USE_X11)
-
-// Convert a NativeView to a NativeViewId. See the comments above
-// NativeViewFromId.
-#if defined(OS_WIN) || defined(OS_MACOSX)
-static inline NativeViewId IdFromNativeView(NativeView view) {
- return reinterpret_cast<NativeViewId>(view);
-}
-#elif defined(USE_X11)
-// Not inlined because it involves pulling too many headers.
-NativeViewId IdFromNativeView(NativeView view);
-#endif // defined(USE_X11)
-
-
-// PluginWindowHandle is an abstraction wrapping "the types of windows
-// used by NPAPI plugins". On Windows it's an HWND, on X it's an X
-// window id.
-#if defined(OS_WIN)
- typedef HWND PluginWindowHandle;
- const PluginWindowHandle kNullPluginWindow = NULL;
-#elif defined(USE_X11)
- typedef unsigned long PluginWindowHandle;
- const PluginWindowHandle kNullPluginWindow = 0;
-#else
- // On OS X we don't have windowed plugins.
- // We use a NULL/0 PluginWindowHandle in shared code to indicate there
- // is no window present, so mirror that behavior here.
- //
- // The GPU plugin is currently an exception to this rule. As of this
- // writing it uses some NPAPI infrastructure, and minimally we need
- // to identify the plugin instance via this window handle. When the
- // GPU plugin becomes a full-on GPU process, this typedef can be
- // returned to a bool. For now we use a type large enough to hold a
- // pointer on 64-bit architectures in case we need this capability.
- typedef uint64 PluginWindowHandle;
- const PluginWindowHandle kNullPluginWindow = 0;
-#endif
-
-} // namespace gfx
-
-#endif // APP_GFX_NATIVE_WIDGET_TYPES_H_
diff --git a/app/gfx/native_widget_types_gtk.cc b/app/gfx/native_widget_types_gtk.cc
deleted file mode 100644
index 34603d9..0000000
--- a/app/gfx/native_widget_types_gtk.cc
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (c) 2009 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 "app/gfx/native_widget_types.h"
-
-#include "app/gfx/gtk_native_view_id_manager.h"
-#include "base/logging.h"
-
-namespace gfx {
-
-NativeViewId IdFromNativeView(NativeView view) {
- return Singleton<GtkNativeViewManager>()->GetIdForWidget(view);
-}
-
-} // namespace gfx
diff --git a/app/gfx/path.cc b/app/gfx/path.cc
deleted file mode 100644
index b5eeeca..0000000
--- a/app/gfx/path.cc
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (c) 2009 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 "app/gfx/path.h"
-
-#include "base/logging.h"
-
-namespace gfx {
-
-Path::Path(const Point* points, size_t count) {
- DCHECK(count > 1);
- moveTo(SkIntToScalar(points[0].x), SkIntToScalar(points[0].y));
- for (size_t i = 1; i < count; ++i)
- lineTo(SkIntToScalar(points[i].x), SkIntToScalar(points[i].y));
-}
-
-} // namespace gfx
diff --git a/app/gfx/path.h b/app/gfx/path.h
deleted file mode 100644
index bc84ca8..0000000
--- a/app/gfx/path.h
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright (c) 2009 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 APP_GFX_PATH_H_
-#define APP_GFX_PATH_H_
-
-#include "app/gfx/native_widget_types.h"
-#include "base/basictypes.h"
-
-#include "third_party/skia/include/core/SkPath.h"
-
-namespace gfx {
-
-class Path : public SkPath {
- public:
- // Used by Path(Point,size_t) constructor.
- struct Point {
- int x;
- int y;
- };
-
- Path() : SkPath() { moveTo(0, 0); }
-
- // Creates a path populated with the specified points.
- Path(const Point* points, size_t count);
-
-#if defined(OS_WIN) || defined(USE_X11)
- // Creates a NativeRegion from the path. The caller is responsible for freeing
- // resources used by this region. This only supports polygon paths.
- NativeRegion CreateNativeRegion() const;
-
- // Returns the intersection of the two regions. The caller owns the returned
- // object.
- static gfx::NativeRegion IntersectRegions(gfx::NativeRegion r1,
- gfx::NativeRegion r2);
-
- // Returns the union of the two regions. The caller owns the returned object.
- static gfx::NativeRegion CombineRegions(gfx::NativeRegion r1,
- gfx::NativeRegion r2);
-
- // Returns the difference of the two regions. The caller owns the returned
- // object.
- static gfx::NativeRegion SubtractRegion(gfx::NativeRegion r1,
- gfx::NativeRegion r2);
-#endif
-
- private:
- DISALLOW_COPY_AND_ASSIGN(Path);
-};
-
-}
-
-#endif // APP_GFX_PATH_H_
diff --git a/app/gfx/path_gtk.cc b/app/gfx/path_gtk.cc
deleted file mode 100644
index e9aee05..0000000
--- a/app/gfx/path_gtk.cc
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright (c) 2006-2008 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 "app/gfx/path.h"
-
-#include <gdk/gdk.h>
-
-#include "base/scoped_ptr.h"
-#include "base/command_line.h"
-
-namespace gfx {
-
-GdkRegion* Path::CreateNativeRegion() const {
- int point_count = getPoints(NULL, 0);
- if (point_count <= 1) {
- // NOTE: ideally this would return gdk_empty_region, but that returns a
- // region with nothing in it.
- return NULL;
- }
-
- scoped_array<SkPoint> points(new SkPoint[point_count]);
- getPoints(points.get(), point_count);
-
- scoped_array<GdkPoint> gdk_points(new GdkPoint[point_count]);
- for (int i = 0; i < point_count; ++i) {
- gdk_points[i].x = SkScalarRound(points[i].fX);
- gdk_points[i].y = SkScalarRound(points[i].fY);
- }
-
- return gdk_region_polygon(gdk_points.get(), point_count, GDK_EVEN_ODD_RULE);
-}
-
-// static
-NativeRegion Path::IntersectRegions(NativeRegion r1, NativeRegion r2) {
- GdkRegion* copy = gdk_region_copy(r1);
- gdk_region_intersect(copy, r2);
- return copy;
-}
-
-// static
-NativeRegion Path::CombineRegions(NativeRegion r1, NativeRegion r2) {
- GdkRegion* copy = gdk_region_copy(r1);
- gdk_region_union(copy, r2);
- return copy;
-}
-
-// static
-NativeRegion Path::SubtractRegion(NativeRegion r1, NativeRegion r2) {
- GdkRegion* copy = gdk_region_copy(r1);
- gdk_region_subtract(copy, r2);
- return copy;
-}
-
-} // namespace gfx
diff --git a/app/gfx/path_win.cc b/app/gfx/path_win.cc
deleted file mode 100644
index 5a337bb..0000000
--- a/app/gfx/path_win.cc
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (c) 2006-2008 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 "app/gfx/path.h"
-
-#include "base/scoped_ptr.h"
-
-namespace gfx {
-
-HRGN Path::CreateNativeRegion() const {
- int point_count = getPoints(NULL, 0);
- scoped_array<SkPoint> points(new SkPoint[point_count]);
- getPoints(points.get(), point_count);
- scoped_array<POINT> windows_points(new POINT[point_count]);
- for (int i = 0; i < point_count; ++i) {
- windows_points[i].x = SkScalarRound(points[i].fX);
- windows_points[i].y = SkScalarRound(points[i].fY);
- }
-
- return ::CreatePolygonRgn(windows_points.get(), point_count, ALTERNATE);
-}
-
-// static
-NativeRegion Path::IntersectRegions(NativeRegion r1, NativeRegion r2) {
- HRGN dest = CreateRectRgn(0, 0, 1, 1);
- CombineRgn(dest, r1, r2, RGN_AND);
- return dest;
-}
-
-// static
-NativeRegion Path::CombineRegions(NativeRegion r1, NativeRegion r2) {
- HRGN dest = CreateRectRgn(0, 0, 1, 1);
- CombineRgn(dest, r1, r2, RGN_OR);
- return dest;
-}
-
-// static
-NativeRegion Path::SubtractRegion(NativeRegion r1, NativeRegion r2) {
- HRGN dest = CreateRectRgn(0, 0, 1, 1);
- CombineRgn(dest, r1, r2, RGN_DIFF);
- return dest;
-}
-
-} // namespace gfx
diff --git a/app/gfx/scrollbar_size.cc b/app/gfx/scrollbar_size.cc
deleted file mode 100644
index 0413d8a..0000000
--- a/app/gfx/scrollbar_size.cc
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (c) 2009 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 "app/gfx/scrollbar_size.h"
-
-#include "base/compiler_specific.h"
-
-#if defined(OS_WIN)
-#include <windows.h>
-#endif
-
-namespace gfx {
-
-int scrollbar_size() {
-#if defined(OS_WIN)
- return GetSystemMetrics(SM_CXVSCROLL);
-#else
- return 15;
-#endif
-}
-
-} // namespace gfx
diff --git a/app/gfx/scrollbar_size.h b/app/gfx/scrollbar_size.h
deleted file mode 100644
index aa993e3..0000000
--- a/app/gfx/scrollbar_size.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) 2009 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 APP_GFX_SCROLLBAR_SIZE_H_
-#define APP_GFX_SCROLLBAR_SIZE_H_
-
-namespace gfx {
-
-// This should return the thickness, in pixels, of a scrollbar in web content.
-// This needs to match the values in WebCore's
-// ScrollbarThemeChromiumXXX.cpp::scrollbarThickness().
-int scrollbar_size();
-
-} // namespace gfx
-
-#endif // APP_GFX_SCROLLBAR_SIZE_H_
diff --git a/app/menus/menu_model.h b/app/menus/menu_model.h
index 6a522d7..50f2e54 100644
--- a/app/menus/menu_model.h
+++ b/app/menus/menu_model.h
@@ -5,9 +5,9 @@
#ifndef APP_MENUS_MENU_MODEL_H_
#define APP_MENUS_MENU_MODEL_H_
-#include "app/gfx/native_widget_types.h"
#include "base/scoped_ptr.h"
#include "base/string16.h"
+#include "gfx/native_widget_types.h"
class SkBitmap;
diff --git a/app/resource_bundle_linux.cc b/app/resource_bundle_linux.cc
index fb78e02..49c271a 100644
--- a/app/resource_bundle_linux.cc
+++ b/app/resource_bundle_linux.cc
@@ -8,7 +8,6 @@
#include "app/app_paths.h"
#include "app/gfx/font.h"
-#include "app/gfx/gtk_util.h"
#include "app/l10n_util.h"
#include "base/base_paths.h"
#include "base/data_pack.h"
@@ -18,6 +17,7 @@
#include "base/path_service.h"
#include "base/string_piece.h"
#include "base/string_util.h"
+#include "gfx/gtk_util.h"
#include "third_party/skia/include/core/SkBitmap.h"
namespace {
diff --git a/app/win/window_impl.h b/app/win/window_impl.h
index b4ba830..ad1fc87 100644
--- a/app/win/window_impl.h
+++ b/app/win/window_impl.h
@@ -12,8 +12,8 @@
#include <string>
-#include "app/gfx/native_widget_types.h"
#include "base/logging.h"
+#include "gfx/native_widget_types.h"
#include "gfx/rect.h"
namespace app {