Home | History | Annotate | Download | only in window_snapshot
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_UI_WINDOW_SNAPSHOT_WINDOW_SNAPSHOT_H_
      6 #define CHROME_BROWSER_UI_WINDOW_SNAPSHOT_WINDOW_SNAPSHOT_H_
      7 
      8 #include <vector>
      9 
     10 #include "ui/gfx/native_widget_types.h"
     11 
     12 class PrefRegistrySimple;
     13 
     14 namespace gfx {
     15 class Rect;
     16 }
     17 
     18 namespace chrome {
     19 
     20 void RegisterScreenshotPrefs(PrefRegistrySimple* registry);
     21 
     22 // Grabs a snapshot of the rectangle area |snapshot_bounds| with respect to the
     23 // top left corner of the designated window and stores a PNG representation
     24 // into a byte vector. On Windows, |window| may be NULL to grab a snapshot of
     25 // the primary monitor. This takes into account calling user context (ie. checks
     26 // policy settings if taking screenshots is allowed), and is intended to be used
     27 // by browser code. If you need to take a screenshot for debugging purposes,
     28 // consider using ui::GrabWindowSnapshot.
     29 // Returns true if the operation is successful (ie. permitted).
     30 bool GrabWindowSnapshotForUser(
     31     gfx::NativeWindow window,
     32     std::vector<unsigned char>* png_representation,
     33     const gfx::Rect& snapshot_bounds);
     34 
     35 }  // namespace chrome
     36 
     37 #endif  // CHROME_BROWSER_UI_WINDOW_SNAPSHOT_WINDOW_SNAPSHOT_H_
     38