Index: ui/snapshot/snapshot_gtk.cc |
diff --git a/ui/snapshot/snapshot_gtk.cc b/ui/snapshot/snapshot_gtk.cc |
deleted file mode 100644 |
index 2ec86f3f8c523ddb65ff1ce095e85cfeb8ea1e5f..0000000000000000000000000000000000000000 |
--- a/ui/snapshot/snapshot_gtk.cc |
+++ /dev/null |
@@ -1,112 +0,0 @@ |
-// Copyright (c) 2012 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/snapshot/snapshot.h" |
- |
-#include <gdk/gdkx.h> |
-#include <gtk/gtk.h> |
- |
-#include "base/callback.h" |
-#include "base/logging.h" |
-#include "ui/base/x/x11_util.h" |
-#include "ui/gfx/image/image.h" |
-#include "ui/gfx/rect.h" |
- |
-namespace { |
- |
-cairo_status_t SnapshotCallback(void* closure, |
- const unsigned char* data, |
- unsigned int length) { |
- std::vector<unsigned char>* png_representation = |
- static_cast<std::vector<unsigned char>*>(closure); |
- |
- size_t old_size = png_representation->size(); |
- png_representation->resize(old_size + length); |
- memcpy(&(*png_representation)[old_size], data, length); |
- return CAIRO_STATUS_SUCCESS; |
-} |
- |
-} // namespace |
- |
-namespace ui { |
- |
-bool GrabViewSnapshot(gfx::NativeView view_handle, |
- std::vector<unsigned char>* png_representation, |
- const gfx::Rect& snapshot_bounds) { |
- GdkWindow* gdk_window = gtk_widget_get_window(view_handle); |
- Display* display = GDK_WINDOW_XDISPLAY(gdk_window); |
- XID win = GDK_WINDOW_XID(gdk_window); |
- |
- gfx::Rect window_bounds; |
- if (ui::GetWindowRect(win, &window_bounds) == 0) { |
- LOG(ERROR) << "Couldn't get window bounds"; |
- return false; |
- } |
- |
- DCHECK_LE(snapshot_bounds.right(), window_bounds.width()); |
- DCHECK_LE(snapshot_bounds.bottom(), window_bounds.height()); |
- |
- ui::XScopedImage image(XGetImage( |
- display, win, snapshot_bounds.x(), snapshot_bounds.y(), |
- snapshot_bounds.width(), snapshot_bounds.height(), AllPlanes, ZPixmap)); |
- if (!image.get()) { |
- LOG(ERROR) << "Couldn't get image"; |
- return false; |
- } |
- if (image->depth != 24) { |
- LOG(ERROR)<< "Unsupported image depth " << image->depth; |
- return false; |
- } |
- cairo_surface_t* surface = |
- cairo_image_surface_create_for_data( |
- reinterpret_cast<unsigned char*>(image->data), |
- CAIRO_FORMAT_RGB24, |
- image->width, |
- image->height, |
- image->bytes_per_line); |
- |
- if (!surface) { |
- LOG(ERROR) << "Unable to create Cairo surface from XImage data"; |
- return false; |
- } |
- cairo_surface_write_to_png_stream( |
- surface, SnapshotCallback, png_representation); |
- cairo_surface_destroy(surface); |
- |
- return true; |
-} |
- |
-bool GrabWindowSnapshot(gfx::NativeWindow window_handle, |
- std::vector<unsigned char>* png_representation, |
- const gfx::Rect& snapshot_bounds) { |
- return GrabViewSnapshot(GTK_WIDGET(window_handle), png_representation, |
- snapshot_bounds); |
-} |
- |
-void GrabWindowSnapshotAndScaleAsync( |
- gfx::NativeWindow window, |
- const gfx::Rect& snapshot_bounds, |
- const gfx::Size& target_size, |
- scoped_refptr<base::TaskRunner> background_task_runner, |
- GrabWindowSnapshotAsyncCallback callback) { |
- callback.Run(gfx::Image()); |
-} |
- |
-void GrabViewSnapshotAsync( |
- gfx::NativeView view, |
- const gfx::Rect& source_rect, |
- scoped_refptr<base::TaskRunner> background_task_runner, |
- const GrabWindowSnapshotAsyncPNGCallback& callback) { |
- callback.Run(scoped_refptr<base::RefCountedBytes>()); |
-} |
- |
-void GrabWindowSnapshotAsync( |
- gfx::NativeWindow window, |
- const gfx::Rect& source_rect, |
- scoped_refptr<base::TaskRunner> background_task_runner, |
- const GrabWindowSnapshotAsyncPNGCallback& callback) { |
- callback.Run(scoped_refptr<base::RefCountedBytes>()); |
-} |
- |
-} // namespace ui |