[gtk+/gtk-2-22] API: Add gdk_window_create_similar_surface()
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-22] API: Add gdk_window_create_similar_surface()
- Date: Thu, 12 Aug 2010 21:38:52 +0000 (UTC)
commit 997d3aada688cc5b4c8c3cc401ad4560cc14b4bc
Author: Benjamin Otte <otte redhat com>
Date: Thu Aug 12 23:30:19 2010 +0200
API: Add gdk_window_create_similar_surface()
docs/reference/gdk/gdk-sections.txt | 1 +
gdk/gdk.symbols | 1 +
gdk/gdkwindow.c | 48 +++++++++++++++++++++++++++++++++++
gdk/gdkwindow.h | 6 ++++
4 files changed, 56 insertions(+), 0 deletions(-)
---
diff --git a/docs/reference/gdk/gdk-sections.txt b/docs/reference/gdk/gdk-sections.txt
index 5343449..0f42329 100644
--- a/docs/reference/gdk/gdk-sections.txt
+++ b/docs/reference/gdk/gdk-sections.txt
@@ -922,6 +922,7 @@ GdkPangoRendererPrivate
<SECTION>
<TITLE>Cairo Interaction</TITLE>
<FILE>cairo_interaction</FILE>
+gdk_window_create_similar_surface
gdk_cairo_create
gdk_cairo_set_source_color
gdk_cairo_set_source_pixbuf
diff --git a/gdk/gdk.symbols b/gdk/gdk.symbols
index 68fd406..28065a3 100644
--- a/gdk/gdk.symbols
+++ b/gdk/gdk.symbols
@@ -709,6 +709,7 @@ gdk_window_clear_area_e
gdk_window_constrain_size
gdk_window_coords_from_parent
gdk_window_coords_to_parent
+gdk_window_create_similar_surface
gdk_window_destroy
gdk_window_end_paint
gdk_window_flush
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 73416fd..036f8c2 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -11037,6 +11037,54 @@ _gdk_window_get_input_window_for_event (GdkWindow *native_window,
return event_win;
}
+/**
+ * gdk_window_create_similar_surface:
+ * @window: window to make new surface similar to
+ * @content: the content for the new surface
+ * @width: width of the new surface
+ * @height: height of the new surface
+ *
+ * Create a new surface that is as compatible as possible with the
+ * given @window. For example the new surface will have the same
+ * fallback resolution and font options as @window. Generally, the new
+ * surface will also use the same backend as @window, unless that is
+ * not possible for some reason. The type of the returned surface may
+ * be examined with cairo_surface_get_type().
+ *
+ * Initially the surface contents are all 0 (transparent if contents
+ * have transparency, black otherwise.)
+ *
+ * Returns: a pointer to the newly allocated surface. The caller
+ * owns the surface and should call cairo_surface_destroy() when done
+ * with it.
+ *
+ * This function always returns a valid pointer, but it will return a
+ * pointer to a "nil" surface if @other is already in an error state
+ * or any other error occurs.
+ *
+ * Since: 2.22
+ **/
+cairo_surface_t *
+gdk_window_create_similar_surface (GdkWindow * window,
+ cairo_content_t content,
+ int width,
+ int height)
+{
+ cairo_surface_t *window_surface, *surface;
+
+ g_return_val_if_fail (GDK_IS_WINDOW (window), NULL);
+
+ window_surface = _gdk_drawable_ref_cairo_surface (window);
+
+ surface = cairo_surface_create_similar (window_surface,
+ content,
+ width, height);
+
+ cairo_surface_destroy (window_surface);
+
+ return surface;
+}
+
#define __GDK_WINDOW_C__
#include "gdkaliasdef.c"
diff --git a/gdk/gdkwindow.h b/gdk/gdkwindow.h
index 4fa75d9..70dd1d2 100644
--- a/gdk/gdkwindow.h
+++ b/gdk/gdkwindow.h
@@ -618,6 +618,12 @@ void gdk_window_set_functions (GdkWindow *window,
GList * gdk_window_get_toplevels (void);
#endif
+cairo_surface_t *
+ gdk_window_create_similar_surface (GdkWindow *window,
+ cairo_content_t content,
+ int width,
+ int height);
+
void gdk_window_beep (GdkWindow *window);
void gdk_window_iconify (GdkWindow *window);
void gdk_window_deiconify (GdkWindow *window);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]