#include "gtkoffscreenwindow.h"
#include "gtkalias.h"
+/**
+ * SECTION:gtkoffscreenwindow
+ * @short_description: A toplevel container widget used to manage offscreen
+ * rendering of child widgets.
+ * @title: GtkOffscreenWindow
+ *
+ * #GtkOffscreenWindow is strictly intended to be used for obtaining
+ * snapshots of widgets that are not part of a normal widget hierarchy.
+ * It differs from gtk_widget_get_snapshot() 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 #GtkOffscreenWindow
+ * is a toplevel widget you cannot obtain snapshots of a full window
+ * with it since you cannot pack a toplevel widget in another toplevel.
+ *
+ * The idea is to take a widget and manually set the state of it,
+ * add it to a #GtkOffscreenWindow and then retrieve the snapshot
+ * as a #GdkPixmap or #GdkPixbuf.
+ *
+ * #GtkOffscreenWindow derives from #GtkWindow only as an implementation
+ * detail. Applications should not use any API specific to #GtkWindow
+ * to operate on this object. It should be treated as a #GtkBin that
+ * has no parent widget.
+ *
+ * When contained offscreen widgets are redrawn, #GtkOffscreenWindow
+ * will emit a #GtkWidget::damage-event signal.
+ */
+
G_DEFINE_TYPE (GtkOffscreenWindow, gtk_offscreen_window, GTK_TYPE_WINDOW);
static void
requisition->width = border_width * 2;
requisition->height = border_width * 2;
- if (bin->child && GTK_WIDGET_VISIBLE (bin->child))
+ if (bin->child && gtk_widget_get_visible (bin->child))
{
GtkRequisition child_req;
allocation->width,
allocation->height);
- if (bin->child && GTK_WIDGET_VISIBLE (bin->child))
+ if (bin->child && gtk_widget_get_visible (bin->child))
{
GtkAllocation child_alloc;
{
GtkWidget *widget = GTK_WIDGET (container);
- if (GTK_WIDGET_VISIBLE (widget))
+ if (gtk_widget_get_visible (widget))
gtk_offscreen_window_resize (widget);
}
{
}
+/* --- functions --- */
/**
* gtk_offscreen_window_new:
*
* hierarchy, gtk_widget_get_snapshot() can be used instead.
*
* Return value: A pointer to a #GtkWidget
- **/
+ *
+ * Since: 2.20
+ */
GtkWidget *
gtk_offscreen_window_new (void)
{
/**
* gtk_offscreen_window_get_pixmap:
+ * @offscreen: the #GtkOffscreenWindow contained widget.
*
* Retrieves a snapshot of the contained widget in the form of
* a #GdkPixmap. If you need to keep this around over window
* resizes then you should add a reference to it.
*
* Returns: A #GdkPixmap pointer to the offscreen pixmap, or %NULL.
- **/
+ *
+ * Since: 2.20
+ */
GdkPixmap *
gtk_offscreen_window_get_pixmap (GtkOffscreenWindow *offscreen)
{
/**
* gtk_offscreen_window_get_pixbuf:
+ * @offscreen: the #GtkOffscreenWindow contained widget.
*
* Retrieves a snapshot of the contained widget in the form of
* a #GdkPixbuf. This is a new pixbuf with a reference count of 1,
* needed.
*
* Returns: A #GdkPixbuf pointer, or %NULL.
- **/
+ *
+ * Since: 2.20
+ */
GdkPixbuf *
gtk_offscreen_window_get_pixbuf (GtkOffscreenWindow *offscreen)
{