<?xml version="1.0" standalone="no"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">

<refentry id="class-gtkoffscreenwindow">
  <refnamediv>
    <refname>gtk.OffscreenWindow</refname>
    <refpurpose>a toplevel container widget used to manage offscreen rendering of child widgets (new in PyGTK 2.22)</refpurpose>
  </refnamediv>

  <refsect1>
    <title>Synopsis</title>

    <classsynopsis language="python">
      <ooclass><classname>gtk.OffscreenWindow</classname></ooclass>
      <ooclass><classname><link linkend="class-gtkwindow">gtk.Window</link></classname></ooclass>
      <constructorsynopsis language="python">
        <methodname><link linkend="constructor-gtkoffscreenwindow">gtk.OffscreenWindow</link></methodname>
        <methodparam></methodparam>
      </constructorsynopsis>
      <methodsynopsis language="python">
        <methodname><link linkend="method-gtkoffscreenwindow--get-pixmap">get_pixmap</link></methodname>
        <methodparam></methodparam>
      </methodsynopsis>
      <methodsynopsis language="python">
        <methodname><link linkend="method-gtkoffscreenwindow--get-pixbuf">get_pixbuf</link></methodname>
        <methodparam></methodparam>
      </methodsynopsis>
    </classsynopsis>

  </refsect1>

  <refsect1>
    <title>Ancestry</title>

<synopsis>+-- <link linkend="class-gobject">GObject</link>
  +-- <link linkend="class-gtkobject">gtk.Object</link>
    +-- <link linkend="class-gtkwidget">gtk.Widget</link>
      +-- <link linkend="class-gtkcontainer">gtk.Container</link>
        +-- <link linkend="class-gtkbin">gtk.Bin</link>
          +-- <link linkend="class-gtkwindow">gtk.Window</link>
            +-- <link linkend="class-gtkoffscreenwindow">gtk.OffscreenWindow</link>
</synopsis>

  </refsect1>

  <refsect1>
    <title>Implemented Interfaces</title>
    <para>
      <link linkend="class-gtkoffscreenwindow"><classname>gtk.OffscreenWindow</classname></link>
      implements
      <link linkend="class-gtkbuildable"><classname>gtk.Buildable</classname></link>
      <link linkend="class-atkimplementor"><classname>atk.ImplementorIFace</classname></link>
    </para>
  </refsect1>

  <refsect1 id="properties-gtkoffscreenwindow">
    <title>gtk.OffscreenWindow Properties</title>

    <para><link linkend="properties-gtkobject">gtk.Object Properties</link></para>
    <para><link linkend="properties-gtkwidget">gtk.Widget Properties</link></para>
    <para><link linkend="properties-gtkcontainer">gtk.Container Properties</link></para>
    <para><link linkend="properties-gtkwindow">gtk.Window Properties</link></para>

  </refsect1>

  <refsect1 id="style-properties-gtkoffscreenwindow">
    <title>gtk.OffscreenWindow Style Properties</title>

    <para><link linkend="style-properties-gtkwidget">gtk.Widget Style Properties</link></para>

  </refsect1>

  <refsect1 id="signal-prototypes-gtkoffscreenwindow">
    <title>gtk.OffscreenWindow Signal Prototypes</title>

    <para><link linkend="signal-prototypes-gobject">gobject.GObject Signal Prototypes</link></para>
    <para><link linkend="signal-prototypes-gtkobject">gtk.Object Signal Prototypes</link></para>
    <para><link linkend="signal-prototypes-gtkwidget">gtk.Widget Signal Prototypes</link></para>
    <para><link linkend="signal-prototypes-gtkcontainer">gtk.Container Signal Prototypes</link></para>
    <para><link linkend="signal-prototypes-gtkwindow">gtk.Window Signal Prototypes</link></para>

  </refsect1>

  <refsect1>
    <title>Description</title>

    <note>
      <para>This widget is available in PyGTK 2.22 and above.</para>
    </note>

    <para><link linkend="class-gtkoffscreenwindow"><classname>gtk.OffscreenWindow</classname></link> is strictly
    intended to be used for obtaining snapshots of widgets that are not part of a normal widget hierarchy.
    It differs from <link linkend="method-gtkwidget--get-snapshot"><methodname>gtk.Widget.get_snapshot</methodname></link>()
    in that the widget you want to get a snapshot of need not be displayed on the user's screen as a part
    of a widget hierarchy. However, since <link linkend="class-gtkoffscreenwindow"><classname>gtk.OffscreenWindow</classname></link>
    is a toplevel widget you cannot obtain snapshots of a full window with it since you cannot pack a
    toplevel widget in another toplevel.</para>

    <para>The idea is to take a widget and manually set the state of it, add it to a
    <link linkend="class-gtkoffscreenwindow"><classname>gtk.OffscreenWindow</classname></link> and then retrieve
    the snapshot as a <link linkend="class-gdkpixmap"><classname>gtk.gdk.Pixmap</classname></link> or
    <link linkend="class-gdkpixbuf"><classname>gtk.gdk.Pixbuf</classname></link>.</para>

    <para><link linkend="class-gtkoffscreenwindow"><classname>gtk.OffscreenWindow</classname></link> derives
    from <link linkend="class-gtkwindow"><classname>gtk.Window</classname></link> only as an implementation
    detail. Applications should not use any API specific to <link linkend="class-gtkwindow"><classname>gtk.Window</classname></link>
    to operate on this object. It should be treated as a <link linkend="class-gtkbin"><classname>gtk.Bin</classname></link>
    that has no parent widget.</para>

    <para>When contained offscreen widgets are redrawn,
    <link linkend="class-gtkoffscreenwindow"><classname>gtk.OffscreenWindow</classname></link> will emit a
    "<link linkend="signal-gtkwidget--damage-event">damage-event</link>" signal.</para>

  </refsect1>

  <refsect1>
    <title>Constructor</title>

    <programlisting><constructorsynopsis language="python">
        <methodname><link linkend="constructor-gtkoffscreenwindow">gtk.OffscreenWindow</link></methodname>
        <methodparam></methodparam>
      </constructorsynopsis></programlisting>
    <variablelist>
      <varlistentry>
        <term><emphasis>Returns</emphasis>&nbsp;:</term>
        <listitem><simpara>A pointer to a <link linkend="class-gtkwidget"><classname>gtk.Widget</classname></link></simpara></listitem>
      </varlistentry>
    </variablelist>
    <note>
      <para>This constructor is available in PyGTK 2.22 and above.</para>
    </note>

    <para>Creates a toplevel container widget that is used to retrieve
snapshots of widgets without showing them on the screen.  For
widgets that are on the screen and part of a normal widget
hierarchy, <link linkend="method-gtkwidget--get-snapshot"><methodname>gtk.Widget.get_snapshot</methodname></link> can be used instead.</para>


  </refsect1>

  <refsect1>
    <title>Methods</title>

    <refsect2 id="method-gtkoffscreenwindow--get-pixmap">
      <title>gtk.OffscreenWindow.get_pixmap</title>

      <programlisting><methodsynopsis language="python">
          <methodname>get_pixmap</methodname>
          <methodparam></methodparam>
        </methodsynopsis></programlisting>
      <variablelist>
        <varlistentry>
          <term><emphasis>Returns</emphasis>&nbsp;:</term>
          <listitem><simpara>A <link linkend="class-gdkpixmap"><classname>gtk.gdk.Pixmap</classname></link>, or <literal>None</literal>.</simpara></listitem>
        </varlistentry>
      </variablelist>
      <note>
        <para>This method is available in PyGTK 2.22 and above.</para>
      </note>

      <para>Retrieves a snapshot of the contained widget in the form of a
      <link linkend="class-gdkpixmap"><classname>gtk.gdk.Pixmap</classname></link>.</para>
    </refsect2>

    <refsect2 id="method-gtkoffscreenwindow--get-pixbuf">
      <title>gtk.OffscreenWindow.get_pixbuf</title>

      <programlisting><methodsynopsis language="python">
          <methodname>get_pixbuf</methodname>
          <methodparam></methodparam>
        </methodsynopsis></programlisting>
      <variablelist>
        <varlistentry>
          <term><emphasis>Returns</emphasis>&nbsp;:</term>
          <listitem><simpara>A <link linkend="class-gdkpixbuf"><classname>gtk.gdk.Pixbuf</classname></link>, or <literal>None</literal>.</simpara></listitem>
        </varlistentry>
      </variablelist>
      <note>
        <para>This method is available in PyGTK 2.22 and above.</para>
      </note>

      <para>Retrieves a snapshot of the contained widget in the form of a
      <link linkend="class-gdkpixbuf"><classname>gtk.gdk.Pixbuf</classname></link>.</para>
    </refsect2>

  </refsect1>

</refentry>
