summaryrefslogtreecommitdiff
path: root/docs/reference/gdk
diff options
context:
space:
mode:
Diffstat (limited to 'docs/reference/gdk')
-rw-r--r--docs/reference/gdk/Makefile.am50
-rw-r--r--docs/reference/gdk/gdk-decl.txt2919
-rw-r--r--docs/reference/gdk/gdk-docs.sgml59
-rw-r--r--docs/reference/gdk/gdk-overrides.txt23
-rw-r--r--docs/reference/gdk/gdk-sections.txt572
-rw-r--r--docs/reference/gdk/tmpl/color_contexts.sgml202
-rw-r--r--docs/reference/gdk/tmpl/colors.sgml390
-rw-r--r--docs/reference/gdk/tmpl/cursors.sgml98
-rw-r--r--docs/reference/gdk/tmpl/dnd.sgml187
-rw-r--r--docs/reference/gdk/tmpl/drawing.sgml260
-rw-r--r--docs/reference/gdk/tmpl/event_structs.sgml257
-rw-r--r--docs/reference/gdk/tmpl/events.sgml185
-rw-r--r--docs/reference/gdk/tmpl/fonts.sgml581
-rw-r--r--docs/reference/gdk/tmpl/gcs.sgml314
-rw-r--r--docs/reference/gdk/tmpl/gdk-unused.sgml0
-rw-r--r--docs/reference/gdk/tmpl/general.sgml265
-rw-r--r--docs/reference/gdk/tmpl/images.sgml107
-rw-r--r--docs/reference/gdk/tmpl/input.sgml130
-rw-r--r--docs/reference/gdk/tmpl/input_contexts.sgml154
-rw-r--r--docs/reference/gdk/tmpl/input_devices.sgml198
-rw-r--r--docs/reference/gdk/tmpl/input_methods.sgml101
-rw-r--r--docs/reference/gdk/tmpl/keys.sgml93
-rw-r--r--docs/reference/gdk/tmpl/pixmaps.sgml196
-rw-r--r--docs/reference/gdk/tmpl/properties.sgml152
-rw-r--r--docs/reference/gdk/tmpl/regions.sgml217
-rw-r--r--docs/reference/gdk/tmpl/rgb.sgml216
-rw-r--r--docs/reference/gdk/tmpl/selections.sgml94
-rw-r--r--docs/reference/gdk/tmpl/threads.sgml50
-rw-r--r--docs/reference/gdk/tmpl/visuals.sgml391
-rw-r--r--docs/reference/gdk/tmpl/windows.sgml777
30 files changed, 9238 insertions, 0 deletions
diff --git a/docs/reference/gdk/Makefile.am b/docs/reference/gdk/Makefile.am
new file mode 100644
index 000000000..0b0b0eacf
--- /dev/null
+++ b/docs/reference/gdk/Makefile.am
@@ -0,0 +1,50 @@
+## Process this file with automake to produce Makefile.in
+
+# The name of the module.
+DOC_MODULE=gdk
+
+# The top-level SGML file.
+DOC_MAIN_SGML_FILE=gdk-docs.sgml
+
+# We could alternatively use this for using installed headers.
+INCLUDE_DIR=`gtk-config --prefix`/include/gdk
+
+
+TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
+
+scan:
+ gtkdoc-scan --module=$(DOC_MODULE) $(INCLUDE_DIR)/gdk.h $(INCLUDE_DIR)/gdktypes.h $(INCLUDE_DIR)/gdkrgb.h
+
+templates: scan
+ gtkdoc-mktmpl --module=$(DOC_MODULE)
+
+sgml:
+ gtkdoc-mkdb --module=$(DOC_MODULE)
+
+html:
+ if ! test -d html ; then mkdir html ; fi
+ -cd html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+
+clean-local:
+ rm -f *~ *.bak *.hierarchy *.signals *.args *-unused.txt
+
+maintainer-clean-local: clean
+ rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+
+install-data-local:
+ install -d -m 0755 $(TARGET_DIR)
+ install -m 0644 html/*.html $(TARGET_DIR)
+ install -m 0644 html/index.sgml $(TARGET_DIR)
+ gtkdoc-fixxref --module=$(DOC_MODULE) --html-dir=$(HTML_DIR)
+
+EXTRA_DIST = \
+ $(DOC_MAIN_SGML_FILE) \
+ $(DOC_MODULE)-sections.txt \
+ gdk-overrides.txt \
+ gdk-decl.txt
+
+dist-hook:
+ mkdir $(distdir)/tmpl
+ cp -p tmpl/*.sgml $(distdir)/tmpl
+
+.PHONY : html sgml templates scan
diff --git a/docs/reference/gdk/gdk-decl.txt b/docs/reference/gdk/gdk-decl.txt
new file mode 100644
index 000000000..9bfb10e8a
--- /dev/null
+++ b/docs/reference/gdk/gdk-decl.txt
@@ -0,0 +1,2919 @@
+<MACRO>
+<NAME>GDK_PRIORITY_EVENTS</NAME>
+#define GDK_PRIORITY_EVENTS (G_PRIORITY_DEFAULT)
+</MACRO>
+<FUNCTION>
+<NAME>gdk_init</NAME>
+<RETURNS>void </RETURNS>
+gint *argc,gchar ***argv
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_init_check</NAME>
+<RETURNS>gboolean </RETURNS>
+gint *argc,gchar ***argv
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_exit</NAME>
+<RETURNS>void </RETURNS>
+gint error_code
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_set_locale</NAME>
+<RETURNS>gchar *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_error_trap_push</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_error_trap_pop</NAME>
+<RETURNS>gint </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_events_pending</NAME>
+<RETURNS>gboolean </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_event_get</NAME>
+<RETURNS>GdkEvent *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_event_peek</NAME>
+<RETURNS>GdkEvent *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_event_get_graphics_expose</NAME>
+<RETURNS>GdkEvent *</RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_event_put</NAME>
+<RETURNS>void </RETURNS>
+GdkEvent *event
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_event_copy</NAME>
+<RETURNS>GdkEvent *</RETURNS>
+GdkEvent *event
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_event_free</NAME>
+<RETURNS>void </RETURNS>
+GdkEvent *event
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_event_get_time</NAME>
+<RETURNS>guint32 </RETURNS>
+GdkEvent *event
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_event_handler_set</NAME>
+<RETURNS>void </RETURNS>
+GdkEventFunc func,gpointer data,GDestroyNotify notify
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_set_show_events</NAME>
+<RETURNS>void </RETURNS>
+gint show_events
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_set_use_xshm</NAME>
+<RETURNS>void </RETURNS>
+gint use_xshm
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_get_show_events</NAME>
+<RETURNS>gint </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_get_use_xshm</NAME>
+<RETURNS>gint </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_get_display</NAME>
+<RETURNS>gchar *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_time_get</NAME>
+<RETURNS>guint32 </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_timer_get</NAME>
+<RETURNS>guint32 </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_timer_set</NAME>
+<RETURNS>void </RETURNS>
+guint32 milliseconds
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_timer_enable</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_timer_disable</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_input_add_full</NAME>
+<RETURNS>gint </RETURNS>
+gint source,GdkInputCondition condition,GdkInputFunction function,gpointer data,GdkDestroyNotify destroy
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_input_add</NAME>
+<RETURNS>gint </RETURNS>
+gint source,GdkInputCondition condition,GdkInputFunction function,gpointer data
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_input_remove</NAME>
+<RETURNS>void </RETURNS>
+gint tag
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_pointer_grab</NAME>
+<RETURNS>gint </RETURNS>
+GdkWindow * window,gint owner_events,GdkEventMask event_mask,GdkWindow * confine_to,GdkCursor * cursor,guint32 time
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_pointer_ungrab</NAME>
+<RETURNS>void </RETURNS>
+guint32 time
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_keyboard_grab</NAME>
+<RETURNS>gint </RETURNS>
+GdkWindow * window,gint owner_events,guint32 time
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_keyboard_ungrab</NAME>
+<RETURNS>void </RETURNS>
+guint32 time
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_pointer_is_grabbed</NAME>
+<RETURNS>gint </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_screen_width</NAME>
+<RETURNS>gint </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_screen_height</NAME>
+<RETURNS>gint </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_screen_width_mm</NAME>
+<RETURNS>gint </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_screen_height_mm</NAME>
+<RETURNS>gint </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_flush</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_beep</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_key_repeat_disable</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_key_repeat_restore</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_visual_get_best_depth</NAME>
+<RETURNS>gint </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_visual_get_best_type</NAME>
+<RETURNS>GdkVisualType </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_visual_get_system</NAME>
+<RETURNS>GdkVisual *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_visual_get_best</NAME>
+<RETURNS>GdkVisual *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_visual_get_best_with_depth</NAME>
+<RETURNS>GdkVisual *</RETURNS>
+gint depth
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_visual_get_best_with_type</NAME>
+<RETURNS>GdkVisual *</RETURNS>
+GdkVisualType visual_type
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_visual_get_best_with_both</NAME>
+<RETURNS>GdkVisual *</RETURNS>
+gint depth,GdkVisualType visual_type
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_visual_ref</NAME>
+<RETURNS>GdkVisual *</RETURNS>
+GdkVisual *visual
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_visual_unref</NAME>
+<RETURNS>void </RETURNS>
+GdkVisual *visual
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_query_depths</NAME>
+<RETURNS>void </RETURNS>
+gint **depths,gint *count
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_query_visual_types</NAME>
+<RETURNS>void </RETURNS>
+GdkVisualType **visual_types,gint *count
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_list_visuals</NAME>
+<RETURNS>GList *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_new</NAME>
+<RETURNS>GdkWindow *</RETURNS>
+GdkWindow *parent,GdkWindowAttr *attributes,gint attributes_mask
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_destroy</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_ref</NAME>
+<RETURNS>GdkWindow *</RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_unref</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_at_pointer</NAME>
+<RETURNS>GdkWindow *</RETURNS>
+gint *win_x,gint *win_y
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_show</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_hide</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_withdraw</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_move</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,gint x,gint y
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_resize</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,gint width,gint height
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_move_resize</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,gint x,gint y,gint width,gint height
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_reparent</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkWindow *new_parent,gint x,gint y
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_clear</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_clear_area</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,gint x,gint y,gint width,gint height
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_clear_area_e</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,gint x,gint y,gint width,gint height
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_copy_area</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkGC *gc,gint x,gint y,GdkWindow *source_window,gint source_x,gint source_y,gint width,gint height
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_raise</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_lower</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_user_data</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,gpointer user_data
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_override_redirect</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,gboolean override_redirect
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_add_filter</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkFilterFunc function,gpointer data
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_remove_filter</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkFilterFunc function,gpointer data
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_shape_combine_mask</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkBitmap *shape_mask,gint offset_x,gint offset_y
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_child_shapes</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_merge_child_shapes</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_is_visible</NAME>
+<RETURNS>gboolean </RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_is_viewable</NAME>
+<RETURNS>gboolean </RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_static_gravities</NAME>
+<RETURNS>gboolean </RETURNS>
+GdkWindow *window,gboolean use_static
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_add_client_message_filter</NAME>
+<RETURNS>void </RETURNS>
+GdkAtom message_type,GdkFilterFunc func,gpointer data
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_drag_context_new</NAME>
+<RETURNS>GdkDragContext *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_drag_context_ref</NAME>
+<RETURNS>void </RETURNS>
+GdkDragContext *context
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_drag_context_unref</NAME>
+<RETURNS>void </RETURNS>
+GdkDragContext *context
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_drag_status</NAME>
+<RETURNS>void </RETURNS>
+GdkDragContext *context,GdkDragAction action,guint32 time
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_drop_reply</NAME>
+<RETURNS>void </RETURNS>
+GdkDragContext *context,gboolean ok,guint32 time
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_drop_finish</NAME>
+<RETURNS>void </RETURNS>
+GdkDragContext *context,gboolean success,guint32 time
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_drag_get_selection</NAME>
+<RETURNS>GdkAtom </RETURNS>
+GdkDragContext *context
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_drag_begin</NAME>
+<RETURNS>GdkDragContext *</RETURNS>
+GdkWindow *window,GList *targets
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_drag_get_protocol</NAME>
+<RETURNS>guint32 </RETURNS>
+guint32 xid,GdkDragProtocol *protocol
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_drag_find_window</NAME>
+<RETURNS>void </RETURNS>
+GdkDragContext *context,GdkWindow *drag_window,gint x_root,gint y_root,GdkWindow **dest_window,GdkDragProtocol *protocol
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_drag_motion</NAME>
+<RETURNS>gboolean </RETURNS>
+GdkDragContext *context,GdkWindow *dest_window,GdkDragProtocol protocol,gint x_root,gint y_root,GdkDragAction suggested_action,GdkDragAction possible_actions,guint32 time
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_drag_drop</NAME>
+<RETURNS>void </RETURNS>
+GdkDragContext *context,guint32 time
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_drag_abort</NAME>
+<RETURNS>void </RETURNS>
+GdkDragContext *context,guint32 time
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_drag_get_selection</NAME>
+<RETURNS>GdkAtom </RETURNS>
+GdkDragContext *context
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_hints</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,gint x,gint y,gint min_width,gint min_height,gint max_width,gint max_height,gint flags
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_geometry_hints</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkGeometry *geometry,GdkWindowHints flags
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_set_sm_client_id</NAME>
+<RETURNS>void </RETURNS>
+const gchar *sm_client_id
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_title</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,const gchar *title
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_role</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,const gchar *role
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_transient_for</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkWindow *leader
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_background</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkColor *color
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_back_pixmap</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkPixmap *pixmap,gint parent_relative
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_cursor</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkCursor *cursor
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_colormap</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkColormap *colormap
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_user_data</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,gpointer *data
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_geometry</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,gint *x,gint *y,gint *width,gint *height,gint *depth
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_position</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,gint *x,gint *y
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_size</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,gint *width,gint *height
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_visual</NAME>
+<RETURNS>GdkVisual *</RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_colormap</NAME>
+<RETURNS>GdkColormap *</RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_type</NAME>
+<RETURNS>GdkWindowType </RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_origin</NAME>
+<RETURNS>gint </RETURNS>
+GdkWindow *window,gint *x,gint *y
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_deskrelative_origin</NAME>
+<RETURNS>gboolean </RETURNS>
+GdkWindow *window,gint *x,gint *y
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_root_origin</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,gint *x,gint *y
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_pointer</NAME>
+<RETURNS>GdkWindow *</RETURNS>
+GdkWindow *window,gint *x,gint *y,GdkModifierType *mask
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_parent</NAME>
+<RETURNS>GdkWindow *</RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_toplevel</NAME>
+<RETURNS>GdkWindow *</RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_children</NAME>
+<RETURNS>GList *</RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_events</NAME>
+<RETURNS>GdkEventMask </RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_events</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkEventMask event_mask
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_icon</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkWindow *icon_window,GdkPixmap *pixmap,GdkBitmap *mask
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_icon_name</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,gchar *name
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_group</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkWindow *leader
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_decorations</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkWMDecoration decorations
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_set_functions</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkWMFunction functions
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_get_toplevels</NAME>
+<RETURNS>GList *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_window_register_dnd</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_drawable_set_data</NAME>
+<RETURNS>void </RETURNS>
+GdkDrawable *drawable,const gchar *key,gpointer data,GDestroyNotify destroy_func
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_cursor_new</NAME>
+<RETURNS>GdkCursor *</RETURNS>
+GdkCursorType cursor_type
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_cursor_new_from_pixmap</NAME>
+<RETURNS>GdkCursor *</RETURNS>
+GdkPixmap *source,GdkPixmap *mask,GdkColor *fg,GdkColor *bg,gint x,gint y
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_cursor_destroy</NAME>
+<RETURNS>void </RETURNS>
+GdkCursor *cursor
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_new</NAME>
+<RETURNS>GdkGC *</RETURNS>
+GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_new_with_values</NAME>
+<RETURNS>GdkGC *</RETURNS>
+GdkWindow *window,GdkGCValues *values,GdkGCValuesMask values_mask
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_ref</NAME>
+<RETURNS>GdkGC *</RETURNS>
+GdkGC *gc
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_unref</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_destroy</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_get_values</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,GdkGCValues *values
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_foreground</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,GdkColor *color
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_background</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,GdkColor *color
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_font</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,GdkFont *font
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_function</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,GdkFunction function
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_fill</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,GdkFill fill
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_tile</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,GdkPixmap *tile
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_stipple</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,GdkPixmap *stipple
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_ts_origin</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,gint x,gint y
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_clip_origin</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,gint x,gint y
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_clip_mask</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,GdkBitmap *mask
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_clip_rectangle</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,GdkRectangle *rectangle
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_clip_region</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,GdkRegion *region
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_subwindow</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,GdkSubwindowMode mode
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_exposures</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,gint exposures
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_line_attributes</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,gint line_width,GdkLineStyle line_style,GdkCapStyle cap_style,GdkJoinStyle join_style
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_set_dashes</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *gc,gint dash_offset,gchar dash_list[],gint n
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_gc_copy</NAME>
+<RETURNS>void </RETURNS>
+GdkGC *dst_gc,GdkGC *src_gc
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_pixmap_new</NAME>
+<RETURNS>GdkPixmap *</RETURNS>
+GdkWindow *window,gint width,gint height,gint depth
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_bitmap_create_from_data</NAME>
+<RETURNS>GdkBitmap *</RETURNS>
+GdkWindow *window,const gchar *data,gint width,gint height
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_pixmap_create_from_data</NAME>
+<RETURNS>GdkPixmap *</RETURNS>
+GdkWindow *window,const gchar *data,gint width,gint height,gint depth,GdkColor *fg,GdkColor *bg
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_pixmap_create_from_xpm</NAME>
+<RETURNS>GdkPixmap *</RETURNS>
+GdkWindow *window,GdkBitmap **mask,GdkColor *transparent_color,const gchar *filename
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_pixmap_colormap_create_from_xpm</NAME>
+<RETURNS>GdkPixmap *</RETURNS>
+GdkWindow *window,GdkColormap *colormap,GdkBitmap **mask,GdkColor *transparent_color,const gchar *filename
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_pixmap_create_from_xpm_d</NAME>
+<RETURNS>GdkPixmap *</RETURNS>
+GdkWindow *window,GdkBitmap **mask,GdkColor *transparent_color,gchar **data
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_pixmap_colormap_create_from_xpm_d</NAME>
+<RETURNS>GdkPixmap *</RETURNS>
+GdkWindow *window,GdkColormap *colormap,GdkBitmap **mask,GdkColor *transparent_color,gchar **data
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_pixmap_ref</NAME>
+<RETURNS>GdkPixmap *</RETURNS>
+GdkPixmap *pixmap
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_pixmap_unref</NAME>
+<RETURNS>void </RETURNS>
+GdkPixmap *pixmap
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_bitmap_ref</NAME>
+<RETURNS>GdkBitmap *</RETURNS>
+GdkBitmap *pixmap
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_bitmap_unref</NAME>
+<RETURNS>void </RETURNS>
+GdkBitmap *pixmap
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_image_new_bitmap</NAME>
+<RETURNS>GdkImage *</RETURNS>
+GdkVisual *visual,gpointer data,gint width,gint height
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_image_new</NAME>
+<RETURNS>GdkImage *</RETURNS>
+GdkImageType type,GdkVisual *visual,gint width,gint height
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_image_get</NAME>
+<RETURNS>GdkImage *</RETURNS>
+GdkWindow *window,gint x,gint y,gint width,gint height
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_image_put_pixel</NAME>
+<RETURNS>void </RETURNS>
+GdkImage *image,gint x,gint y,guint32 pixel
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_image_get_pixel</NAME>
+<RETURNS>guint32 </RETURNS>
+GdkImage *image,gint x,gint y
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_image_destroy</NAME>
+<RETURNS>void </RETURNS>
+GdkImage *image
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_colormap_new</NAME>
+<RETURNS>GdkColormap *</RETURNS>
+GdkVisual *visual,gint allocate
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_colormap_ref</NAME>
+<RETURNS>GdkColormap *</RETURNS>
+GdkColormap *cmap
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_colormap_unref</NAME>
+<RETURNS>void </RETURNS>
+GdkColormap *cmap
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_colormap_get_system</NAME>
+<RETURNS>GdkColormap *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_colormap_get_system_size</NAME>
+<RETURNS>gint </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_colormap_change</NAME>
+<RETURNS>void </RETURNS>
+GdkColormap *colormap,gint ncolors
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_colormap_alloc_colors</NAME>
+<RETURNS>gint </RETURNS>
+GdkColormap *colormap,GdkColor *colors,gint ncolors,gboolean writeable,gboolean best_match,gboolean *success
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_colormap_alloc_color</NAME>
+<RETURNS>gboolean </RETURNS>
+GdkColormap *colormap,GdkColor *color,gboolean writeable,gboolean best_match
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_colormap_free_colors</NAME>
+<RETURNS>void </RETURNS>
+GdkColormap *colormap,GdkColor *colors,gint ncolors
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_colormap_get_visual</NAME>
+<RETURNS>GdkVisual *</RETURNS>
+GdkColormap *colormap
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_copy</NAME>
+<RETURNS>GdkColor *</RETURNS>
+GdkColor *color
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_free</NAME>
+<RETURNS>void </RETURNS>
+GdkColor *color
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_parse</NAME>
+<RETURNS>gint </RETURNS>
+const gchar *spec,GdkColor *color
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_hash</NAME>
+<RETURNS>guint </RETURNS>
+const GdkColor *colora,const GdkColor *colorb
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_equal</NAME>
+<RETURNS>gint </RETURNS>
+const GdkColor *colora,const GdkColor *colorb
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_colors_store</NAME>
+<RETURNS>void </RETURNS>
+GdkColormap *colormap,GdkColor *colors,gint ncolors
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_colors_alloc</NAME>
+<RETURNS>gint </RETURNS>
+GdkColormap *colormap,gint contiguous,gulong *planes,gint nplanes,gulong *pixels,gint npixels
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_colors_free</NAME>
+<RETURNS>void </RETURNS>
+GdkColormap *colormap,gulong *pixels,gint npixels,gulong planes
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_white</NAME>
+<RETURNS>gint </RETURNS>
+GdkColormap *colormap,GdkColor *color
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_black</NAME>
+<RETURNS>gint </RETURNS>
+GdkColormap *colormap,GdkColor *color
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_alloc</NAME>
+<RETURNS>gint </RETURNS>
+GdkColormap *colormap,GdkColor *color
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_change</NAME>
+<RETURNS>gint </RETURNS>
+GdkColormap *colormap,GdkColor *color
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_font_load</NAME>
+<RETURNS>GdkFont *</RETURNS>
+const gchar *font_name
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_fontset_load</NAME>
+<RETURNS>GdkFont *</RETURNS>
+gchar *fontset_name
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_font_ref</NAME>
+<RETURNS>GdkFont *</RETURNS>
+GdkFont *font
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_font_unref</NAME>
+<RETURNS>void </RETURNS>
+GdkFont *font
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_font_id</NAME>
+<RETURNS>gint </RETURNS>
+const GdkFont *font
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_font_equal</NAME>
+<RETURNS>gint </RETURNS>
+const GdkFont *fonta,const GdkFont *fontb
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_string_width</NAME>
+<RETURNS>gint </RETURNS>
+GdkFont *font,const gchar *string
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_text_width</NAME>
+<RETURNS>gint </RETURNS>
+GdkFont *font,const gchar *text,gint text_length
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_text_width_wc</NAME>
+<RETURNS>gint </RETURNS>
+GdkFont *font,const GdkWChar *text,gint text_length
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_char_width</NAME>
+<RETURNS>gint </RETURNS>
+GdkFont *font,gchar character
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_char_width_wc</NAME>
+<RETURNS>gint </RETURNS>
+GdkFont *font,GdkWChar character
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_string_measure</NAME>
+<RETURNS>gint </RETURNS>
+GdkFont *font,const gchar *string
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_text_measure</NAME>
+<RETURNS>gint </RETURNS>
+GdkFont *font,const gchar *text,gint text_length
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_char_measure</NAME>
+<RETURNS>gint </RETURNS>
+GdkFont *font,gchar character
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_string_height</NAME>
+<RETURNS>gint </RETURNS>
+GdkFont *font,const gchar *string
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_text_height</NAME>
+<RETURNS>gint </RETURNS>
+GdkFont *font,const gchar *text,gint text_length
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_char_height</NAME>
+<RETURNS>gint </RETURNS>
+GdkFont *font,gchar character
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_text_extents</NAME>
+<RETURNS>void </RETURNS>
+GdkFont *font,const gchar *text,gint text_length,gint *lbearing,gint *rbearing,gint *width,gint *ascent,gint *descent
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_text_extents_wc</NAME>
+<RETURNS>void </RETURNS>
+GdkFont *font,const GdkWChar *text,gint text_length,gint *lbearing,gint *rbearing,gint *width,gint *ascent,gint *descent
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_string_extents</NAME>
+<RETURNS>void </RETURNS>
+GdkFont *font,const gchar *string,gint *lbearing,gint *rbearing,gint *width,gint *ascent,gint *descent
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_point</NAME>
+<RETURNS>void </RETURNS>
+GdkDrawable *drawable,GdkGC *gc,gint x,gint y
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_line</NAME>
+<RETURNS>void </RETURNS>
+GdkDrawable *drawable,GdkGC *gc,gint x1,gint y1,gint x2,gint y2
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_rectangle</NAME>
+<RETURNS>void </RETURNS>
+GdkDrawable *drawable,GdkGC *gc,gint filled,gint x,gint y,gint width,gint height
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_arc</NAME>
+<RETURNS>void </RETURNS>
+GdkDrawable *drawable,GdkGC *gc,gint filled,gint x,gint y,gint width,gint height,gint angle1,gint angle2
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_polygon</NAME>
+<RETURNS>void </RETURNS>
+GdkDrawable *drawable,GdkGC *gc,gint filled,GdkPoint *points,gint npoints
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_string</NAME>
+<RETURNS>void </RETURNS>
+GdkDrawable *drawable,GdkFont *font,GdkGC *gc,gint x,gint y,const gchar *string
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_text</NAME>
+<RETURNS>void </RETURNS>
+GdkDrawable *drawable,GdkFont *font,GdkGC *gc,gint x,gint y,const gchar *text,gint text_length
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_text_wc</NAME>
+<RETURNS>void </RETURNS>
+GdkDrawable *drawable,GdkFont *font,GdkGC *gc,gint x,gint y,const GdkWChar *text,gint text_length
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_pixmap</NAME>
+<RETURNS>void </RETURNS>
+GdkDrawable *drawable,GdkGC *gc,GdkDrawable *src,gint xsrc,gint ysrc,gint xdest,gint ydest,gint width,gint height
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_bitmap</NAME>
+<RETURNS>void </RETURNS>
+GdkDrawable *drawable,GdkGC *gc,GdkDrawable *src,gint xsrc,gint ysrc,gint xdest,gint ydest,gint width,gint height
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_image</NAME>
+<RETURNS>void </RETURNS>
+GdkDrawable *drawable,GdkGC *gc,GdkImage *image,gint xsrc,gint ysrc,gint xdest,gint ydest,gint width,gint height
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_points</NAME>
+<RETURNS>void </RETURNS>
+GdkDrawable *drawable,GdkGC *gc,GdkPoint *points,gint npoints
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_segments</NAME>
+<RETURNS>void </RETURNS>
+GdkDrawable *drawable,GdkGC *gc,GdkSegment *segs,gint nsegs
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_lines</NAME>
+<RETURNS>void </RETURNS>
+GdkDrawable *drawable,GdkGC *gc,GdkPoint *points,gint npoints
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_selection_owner_set</NAME>
+<RETURNS>gint </RETURNS>
+GdkWindow *owner,GdkAtom selection,guint32 time,gint send_event
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_selection_owner_get</NAME>
+<RETURNS>GdkWindow *</RETURNS>
+GdkAtom selection
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_selection_convert</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *requestor,GdkAtom selection,GdkAtom target,guint32 time
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_selection_property_get</NAME>
+<RETURNS>gint </RETURNS>
+GdkWindow *requestor,guchar **data,GdkAtom *prop_type,gint *prop_format
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_selection_send_notify</NAME>
+<RETURNS>void </RETURNS>
+guint32 requestor,GdkAtom selection,GdkAtom target,GdkAtom property,guint32 time
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_text_property_to_text_list</NAME>
+<RETURNS>gint </RETURNS>
+GdkAtom encoding, gint format,guchar *text, gint length,gchar ***list
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_free_text_list</NAME>
+<RETURNS>void </RETURNS>
+gchar **list
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_string_to_compound_text</NAME>
+<RETURNS>gint </RETURNS>
+gchar *str,GdkAtom *encoding, gint *format,guchar **ctext, gint *length
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_free_compound_text</NAME>
+<RETURNS>void </RETURNS>
+guchar *ctext
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_atom_intern</NAME>
+<RETURNS>GdkAtom </RETURNS>
+const gchar *atom_name,gint only_if_exists
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_atom_name</NAME>
+<RETURNS>gchar *</RETURNS>
+GdkAtom atom
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_property_get</NAME>
+<RETURNS>gint </RETURNS>
+GdkWindow *window,GdkAtom property,GdkAtom type,gulong offset,gulong length,gint pdelete,GdkAtom *actual_property_type,gint *actual_format,gint *actual_length,guchar **data
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_property_change</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkAtom property,GdkAtom type,gint format,GdkPropMode mode,guchar *data,gint nelements
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_property_delete</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,GdkAtom property
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_rectangle_intersect</NAME>
+<RETURNS>gint </RETURNS>
+GdkRectangle *src1,GdkRectangle *src2,GdkRectangle *dest
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_rectangle_union</NAME>
+<RETURNS>void </RETURNS>
+GdkRectangle *src1,GdkRectangle *src2,GdkRectangle *dest
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_input_init</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_input_exit</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_input_list_devices</NAME>
+<RETURNS>GList *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_input_set_extension_events</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,gint mask,GdkExtensionMode mode
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_input_set_source</NAME>
+<RETURNS>void </RETURNS>
+guint32 deviceid,GdkInputSource source
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_input_set_mode</NAME>
+<RETURNS>gint </RETURNS>
+guint32 deviceid,GdkInputMode mode
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_input_set_axes</NAME>
+<RETURNS>void </RETURNS>
+guint32 deviceid,GdkAxisUse *axes
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_input_set_key</NAME>
+<RETURNS>void </RETURNS>
+guint32 deviceid,guint index,guint keyval,GdkModifierType modifiers
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_input_window_get_pointer</NAME>
+<RETURNS>void </RETURNS>
+GdkWindow *window,guint32 deviceid,gdouble *x,gdouble *y,gdouble *pressure,gdouble *xtilt,gdouble *ytilt,GdkModifierType *mask
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_input_motion_events</NAME>
+<RETURNS>GdkTimeCoord *</RETURNS>
+GdkWindow *window,guint32 deviceid,guint32 start,guint32 stop,gint *nevents_return
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_im_ready</NAME>
+<RETURNS>gint </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_im_begin</NAME>
+<RETURNS>void </RETURNS>
+GdkIC *ic,GdkWindow *window
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_im_end</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_im_decide_style</NAME>
+<RETURNS>GdkIMStyle </RETURNS>
+GdkIMStyle supported_style
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_im_set_best_style</NAME>
+<RETURNS>GdkIMStyle </RETURNS>
+GdkIMStyle best_allowed_style
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_ic_new</NAME>
+<RETURNS>GdkIC *</RETURNS>
+GdkICAttr *attr,GdkICAttributesType mask
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_ic_destroy</NAME>
+<RETURNS>void </RETURNS>
+GdkIC *ic
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_ic_get_style</NAME>
+<RETURNS>GdkIMStyle </RETURNS>
+GdkIC *ic
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_ic_get_events</NAME>
+<RETURNS>GdkEventMask </RETURNS>
+GdkIC *ic
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_ic_attr_new</NAME>
+<RETURNS>GdkICAttr *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_ic_attr_destroy</NAME>
+<RETURNS>void </RETURNS>
+GdkICAttr *attr
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_ic_set_attr</NAME>
+<RETURNS>GdkICAttributesType </RETURNS>
+GdkIC *ic,GdkICAttr *attr,GdkICAttributesType mask
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_ic_get_attr</NAME>
+<RETURNS>GdkICAttributesType </RETURNS>
+GdkIC *ic,GdkICAttr *attr,GdkICAttributesType mask
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_wcstombs</NAME>
+<RETURNS>gchar *</RETURNS>
+const GdkWChar *src
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_mbstowcs</NAME>
+<RETURNS>gint </RETURNS>
+GdkWChar *dest,const gchar *src,gint dest_max
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_context_new</NAME>
+<RETURNS>GdkColorContext *</RETURNS>
+GdkVisual *visual,GdkColormap *colormap
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_context_new_mono</NAME>
+<RETURNS>GdkColorContext *</RETURNS>
+GdkVisual *visual,GdkColormap *colormap
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_context_free</NAME>
+<RETURNS>void </RETURNS>
+GdkColorContext *cc
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_context_get_pixel</NAME>
+<RETURNS>gulong </RETURNS>
+GdkColorContext *cc,gushort red,gushort green,gushort blue,gint *failed
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_context_get_pixels</NAME>
+<RETURNS>void </RETURNS>
+GdkColorContext *cc,gushort *reds,gushort *greens,gushort *blues,gint ncolors,gulong *colors,gint *nallocated
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_context_get_pixels_incremental</NAME>
+<RETURNS>void </RETURNS>
+GdkColorContext *cc,gushort *reds,gushort *greens,gushort *blues,gint ncolors,gint *used,gulong *colors,gint *nallocated
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_context_query_color</NAME>
+<RETURNS>gint </RETURNS>
+GdkColorContext *cc,GdkColor *color
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_context_query_colors</NAME>
+<RETURNS>gint </RETURNS>
+GdkColorContext *cc,GdkColor *colors,gint num_colors
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_context_add_palette</NAME>
+<RETURNS>gint </RETURNS>
+GdkColorContext *cc,GdkColor *palette,gint num_palette
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_context_init_dither</NAME>
+<RETURNS>void </RETURNS>
+GdkColorContext *cc
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_context_free_dither</NAME>
+<RETURNS>void </RETURNS>
+GdkColorContext *cc
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_context_get_pixel_from_palette</NAME>
+<RETURNS>gulong </RETURNS>
+GdkColorContext *cc,gushort *red,gushort *green,gushort *blue,gint *failed
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_color_context_get_index_from_palette</NAME>
+<RETURNS>guchar </RETURNS>
+GdkColorContext *cc,gint *red,gint *green,gint *blue,gint *failed
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_region_new</NAME>
+<RETURNS>GdkRegion *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_region_destroy</NAME>
+<RETURNS>void </RETURNS>
+GdkRegion *region
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_region_get_clipbox</NAME>
+<RETURNS>void </RETURNS>
+GdkRegion *region,GdkRectangle *rectangle
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_region_empty</NAME>
+<RETURNS>gboolean </RETURNS>
+GdkRegion *region
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_region_equal</NAME>
+<RETURNS>gboolean </RETURNS>
+GdkRegion *region1,GdkRegion *region2
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_region_point_in</NAME>
+<RETURNS>gboolean </RETURNS>
+GdkRegion *region,int x,int y
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_region_rect_in</NAME>
+<RETURNS>GdkOverlapType </RETURNS>
+GdkRegion *region,GdkRectangle *rect
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_region_polygon</NAME>
+<RETURNS>GdkRegion *</RETURNS>
+GdkPoint *points,gint npoints,GdkFillRule fill_rule
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_region_offset</NAME>
+<RETURNS>void </RETURNS>
+GdkRegion *region,gint dx,gint dy
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_region_shrink</NAME>
+<RETURNS>void </RETURNS>
+GdkRegion *region,gint dx,gint dy
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_region_union_with_rect</NAME>
+<RETURNS>GdkRegion *</RETURNS>
+GdkRegion *region,GdkRectangle *rect
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_regions_intersect</NAME>
+<RETURNS>GdkRegion *</RETURNS>
+GdkRegion *source1,GdkRegion *source2
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_regions_union</NAME>
+<RETURNS>GdkRegion *</RETURNS>
+GdkRegion *source1,GdkRegion *source2
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_regions_subtract</NAME>
+<RETURNS>GdkRegion *</RETURNS>
+GdkRegion *source1,GdkRegion *source2
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_regions_xor</NAME>
+<RETURNS>GdkRegion *</RETURNS>
+GdkRegion *source1,GdkRegion *source2
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_event_send_clientmessage_toall</NAME>
+<RETURNS>void </RETURNS>
+GdkEvent *event
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_event_send_client_message</NAME>
+<RETURNS>gboolean </RETURNS>
+GdkEvent *event,guint32 xid
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_keyval_name</NAME>
+<RETURNS>gchar *</RETURNS>
+guint keyval
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_keyval_from_name</NAME>
+<RETURNS>guint </RETURNS>
+const gchar *keyval_name
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_keyval_to_upper</NAME>
+<RETURNS>guint </RETURNS>
+guint keyval
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_keyval_to_lower</NAME>
+<RETURNS>guint </RETURNS>
+guint keyval
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_keyval_is_upper</NAME>
+<RETURNS>gboolean </RETURNS>
+guint keyval
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_keyval_is_lower</NAME>
+<RETURNS>gboolean </RETURNS>
+guint keyval
+</FUNCTION>
+<VARIABLE>
+<NAME>gdk_threads_mutex</NAME>
+extern GMutex *gdk_threads_mutex;
+</VARIABLE>
+<FUNCTION>
+<NAME>gdk_threads_enter</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_threads_leave</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<MACRO>
+<NAME>GDK_THREADS_ENTER</NAME>
+# define GDK_THREADS_ENTER() G_STMT_START { \
+ if (gdk_threads_mutex) \
+ g_mutex_lock (gdk_threads_mutex); \
+ } G_STMT_END
+</MACRO>
+<MACRO>
+<NAME>GDK_THREADS_LEAVE</NAME>
+# define GDK_THREADS_LEAVE() G_STMT_START { \
+ if (gdk_threads_mutex) \
+ g_mutex_unlock (gdk_threads_mutex); \
+ } G_STMT_END
+</MACRO>
+<MACRO>
+<NAME>GDK_THREADS_ENTER</NAME>
+# define GDK_THREADS_ENTER()
+</MACRO>
+<MACRO>
+<NAME>GDK_THREADS_LEAVE</NAME>
+# define GDK_THREADS_LEAVE()
+</MACRO>
+<MACRO>
+<NAME>GDK_NONE</NAME>
+#define GDK_NONE 0L
+</MACRO>
+<MACRO>
+<NAME>GDK_CURRENT_TIME</NAME>
+#define GDK_CURRENT_TIME 0L
+</MACRO>
+<MACRO>
+<NAME>GDK_PARENT_RELATIVE</NAME>
+#define GDK_PARENT_RELATIVE 1L
+</MACRO>
+<MACRO>
+<NAME>GDK_CORE_POINTER</NAME>
+#define GDK_CORE_POINTER 0xfedc
+</MACRO>
+<TYPEDEF>
+<NAME>GdkAtom</NAME>
+typedef gulong GdkAtom;
+</TYPEDEF>
+<STRUCT>
+<NAME>GdkColor</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkColormap</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkVisual</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkWindowAttr</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkWindow</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkGeometry</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkImage</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkGCValues</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkGC</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkPoint</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkRectangle</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkSegment</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkFont</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkCursor</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkColorContextDither</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkColorContext</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkDragContext</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventAny</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventExpose</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventNoExpose</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventVisibility</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventMotion</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventButton</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventKey</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventFocus</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventCrossing</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventConfigure</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventProperty</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventSelection</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventProximity</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventClient</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventDND</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkDeviceKey</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkDeviceInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkTimeCoord</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkRegion</NAME>
+</STRUCT>
+<USER_FUNCTION>
+<NAME>GdkEventFunc</NAME>
+<RETURNS>void </RETURNS>
+GdkEvent *event,
+ gpointer data
+</USER_FUNCTION>
+<STRUCT>
+<NAME>GdkIC</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkICAttr</NAME>
+</STRUCT>
+<TYPEDEF>
+<NAME>GdkWChar</NAME>
+typedef guint32 GdkWChar;
+</TYPEDEF>
+<ENUM>
+<NAME>GdkWindowType</NAME>
+typedef enum
+{
+ GDK_WINDOW_ROOT,
+ GDK_WINDOW_TOPLEVEL,
+ GDK_WINDOW_CHILD,
+ GDK_WINDOW_DIALOG,
+ GDK_WINDOW_TEMP,
+ GDK_WINDOW_PIXMAP,
+ GDK_WINDOW_FOREIGN
+} GdkWindowType;
+</ENUM>
+<ENUM>
+<NAME>GdkWindowClass</NAME>
+typedef enum
+{
+ GDK_INPUT_OUTPUT,
+ GDK_INPUT_ONLY
+} GdkWindowClass;
+</ENUM>
+<ENUM>
+<NAME>GdkImageType</NAME>
+typedef enum
+{
+ GDK_IMAGE_NORMAL,
+ GDK_IMAGE_SHARED,
+ GDK_IMAGE_FASTEST
+} GdkImageType;
+</ENUM>
+<ENUM>
+<NAME>GdkVisualType</NAME>
+typedef enum
+{
+ GDK_VISUAL_STATIC_GRAY,
+ GDK_VISUAL_GRAYSCALE,
+ GDK_VISUAL_STATIC_COLOR,
+ GDK_VISUAL_PSEUDO_COLOR,
+ GDK_VISUAL_TRUE_COLOR,
+ GDK_VISUAL_DIRECT_COLOR
+} GdkVisualType;
+</ENUM>
+<ENUM>
+<NAME>GdkFontType</NAME>
+typedef enum
+{
+ GDK_FONT_FONT,
+ GDK_FONT_FONTSET
+} GdkFontType;
+</ENUM>
+<ENUM>
+<NAME>GdkWindowAttributesType</NAME>
+typedef enum
+{
+ GDK_WA_TITLE = 1 << 1,
+ GDK_WA_X = 1 << 2,
+ GDK_WA_Y = 1 << 3,
+ GDK_WA_CURSOR = 1 << 4,
+ GDK_WA_COLORMAP = 1 << 5,
+ GDK_WA_VISUAL = 1 << 6,
+ GDK_WA_WMCLASS = 1 << 7,
+ GDK_WA_NOREDIR = 1 << 8
+} GdkWindowAttributesType;
+</ENUM>
+<ENUM>
+<NAME>GdkWindowHints</NAME>
+typedef enum
+{
+ GDK_HINT_POS = 1 << 0,
+ GDK_HINT_MIN_SIZE = 1 << 1,
+ GDK_HINT_MAX_SIZE = 1 << 2,
+ GDK_HINT_BASE_SIZE = 1 << 3,
+ GDK_HINT_ASPECT = 1 << 4,
+ GDK_HINT_RESIZE_INC = 1 << 5
+} GdkWindowHints;
+</ENUM>
+<ENUM>
+<NAME>GdkFunction</NAME>
+typedef enum
+{
+ GDK_COPY,
+ GDK_INVERT,
+ GDK_XOR,
+ GDK_CLEAR,
+ GDK_AND,
+ GDK_AND_REVERSE,
+ GDK_AND_INVERT,
+ GDK_NOOP,
+ GDK_OR,
+ GDK_EQUIV,
+ GDK_OR_REVERSE,
+ GDK_COPY_INVERT,
+ GDK_OR_INVERT,
+ GDK_NAND,
+ GDK_SET
+} GdkFunction;
+</ENUM>
+<ENUM>
+<NAME>GdkFill</NAME>
+typedef enum
+{
+ GDK_SOLID,
+ GDK_TILED,
+ GDK_STIPPLED,
+ GDK_OPAQUE_STIPPLED
+} GdkFill;
+</ENUM>
+<ENUM>
+<NAME>GdkFillRule</NAME>
+typedef enum
+{
+ GDK_EVEN_ODD_RULE,
+ GDK_WINDING_RULE
+} GdkFillRule;
+</ENUM>
+<ENUM>
+<NAME>GdkLineStyle</NAME>
+typedef enum
+{
+ GDK_LINE_SOLID,
+ GDK_LINE_ON_OFF_DASH,
+ GDK_LINE_DOUBLE_DASH
+} GdkLineStyle;
+</ENUM>
+<ENUM>
+<NAME>GdkCapStyle</NAME>
+typedef enum
+{
+ GDK_CAP_NOT_LAST,
+ GDK_CAP_BUTT,
+ GDK_CAP_ROUND,
+ GDK_CAP_PROJECTING
+} GdkCapStyle;
+</ENUM>
+<ENUM>
+<NAME>GdkJoinStyle</NAME>
+typedef enum
+{
+ GDK_JOIN_MITER,
+ GDK_JOIN_ROUND,
+ GDK_JOIN_BEVEL
+} GdkJoinStyle;
+</ENUM>
+<ENUM>
+<NAME>GdkCursorType</NAME>
+typedef enum
+{
+#include <gdk/gdkcursors.h>
+ GDK_LAST_CURSOR,
+ GDK_CURSOR_IS_PIXMAP = -1
+} GdkCursorType;
+</ENUM>
+<ENUM>
+<NAME>GdkFilterReturn</NAME>
+typedef enum {
+ GDK_FILTER_CONTINUE, /* Event not handled, continue processesing */
+ GDK_FILTER_TRANSLATE, /* Translated event stored */
+ GDK_FILTER_REMOVE /* Terminate processing, removing event */
+} GdkFilterReturn;
+</ENUM>
+<ENUM>
+<NAME>GdkVisibilityState</NAME>
+typedef enum {
+ GDK_VISIBILITY_UNOBSCURED,
+ GDK_VISIBILITY_PARTIAL,
+ GDK_VISIBILITY_FULLY_OBSCURED
+} GdkVisibilityState;
+</ENUM>
+<ENUM>
+<NAME>GdkEventType</NAME>
+typedef enum
+{
+ GDK_NOTHING = -1,
+ GDK_DELETE = 0,
+ GDK_DESTROY = 1,
+ GDK_EXPOSE = 2,
+ GDK_MOTION_NOTIFY = 3,
+ GDK_BUTTON_PRESS = 4,
+ GDK_2BUTTON_PRESS = 5,
+ GDK_3BUTTON_PRESS = 6,
+ GDK_BUTTON_RELEASE = 7,
+ GDK_KEY_PRESS = 8,
+ GDK_KEY_RELEASE = 9,
+ GDK_ENTER_NOTIFY = 10,
+ GDK_LEAVE_NOTIFY = 11,
+ GDK_FOCUS_CHANGE = 12,
+ GDK_CONFIGURE = 13,
+ GDK_MAP = 14,
+ GDK_UNMAP = 15,
+ GDK_PROPERTY_NOTIFY = 16,
+ GDK_SELECTION_CLEAR = 17,
+ GDK_SELECTION_REQUEST = 18,
+ GDK_SELECTION_NOTIFY = 19,
+ GDK_PROXIMITY_IN = 20,
+ GDK_PROXIMITY_OUT = 21,
+ GDK_DRAG_ENTER = 22,
+ GDK_DRAG_LEAVE = 23,
+ GDK_DRAG_MOTION = 24,
+ GDK_DRAG_STATUS = 25,
+ GDK_DROP_START = 26,
+ GDK_DROP_FINISHED = 27,
+ GDK_CLIENT_EVENT = 28,
+ GDK_VISIBILITY_NOTIFY = 29,
+ GDK_NO_EXPOSE = 30
+} GdkEventType;
+</ENUM>
+<ENUM>
+<NAME>GdkEventMask</NAME>
+typedef enum
+{
+ GDK_EXPOSURE_MASK = 1 << 1,
+ GDK_POINTER_MOTION_MASK = 1 << 2,
+ GDK_POINTER_MOTION_HINT_MASK = 1 << 3,
+ GDK_BUTTON_MOTION_MASK = 1 << 4,
+ GDK_BUTTON1_MOTION_MASK = 1 << 5,
+ GDK_BUTTON2_MOTION_MASK = 1 << 6,
+ GDK_BUTTON3_MOTION_MASK = 1 << 7,
+ GDK_BUTTON_PRESS_MASK = 1 << 8,
+ GDK_BUTTON_RELEASE_MASK = 1 << 9,
+ GDK_KEY_PRESS_MASK = 1 << 10,
+ GDK_KEY_RELEASE_MASK = 1 << 11,
+ GDK_ENTER_NOTIFY_MASK = 1 << 12,
+ GDK_LEAVE_NOTIFY_MASK = 1 << 13,
+ GDK_FOCUS_CHANGE_MASK = 1 << 14,
+ GDK_STRUCTURE_MASK = 1 << 15,
+ GDK_PROPERTY_CHANGE_MASK = 1 << 16,
+ GDK_VISIBILITY_NOTIFY_MASK = 1 << 17,
+ GDK_PROXIMITY_IN_MASK = 1 << 18,
+ GDK_PROXIMITY_OUT_MASK = 1 << 19,
+ GDK_SUBSTRUCTURE_MASK = 1 << 20,
+ GDK_ALL_EVENTS_MASK = 0x0FFFFF
+} GdkEventMask;
+</ENUM>
+<ENUM>
+<NAME>GdkNotifyType</NAME>
+typedef enum
+{
+ GDK_NOTIFY_ANCESTOR = 0,
+ GDK_NOTIFY_VIRTUAL = 1,
+ GDK_NOTIFY_INFERIOR = 2,
+ GDK_NOTIFY_NONLINEAR = 3,
+ GDK_NOTIFY_NONLINEAR_VIRTUAL = 4,
+ GDK_NOTIFY_UNKNOWN = 5
+} GdkNotifyType;
+</ENUM>
+<ENUM>
+<NAME>GdkCrossingMode</NAME>
+typedef enum
+{
+ GDK_CROSSING_NORMAL,
+ GDK_CROSSING_GRAB,
+ GDK_CROSSING_UNGRAB
+} GdkCrossingMode;
+</ENUM>
+<ENUM>
+<NAME>GdkModifierType</NAME>
+typedef enum
+{
+ GDK_SHIFT_MASK = 1 << 0,
+ GDK_LOCK_MASK = 1 << 1,
+ GDK_CONTROL_MASK = 1 << 2,
+ GDK_MOD1_MASK = 1 << 3,
+ GDK_MOD2_MASK = 1 << 4,
+ GDK_MOD3_MASK = 1 << 5,
+ GDK_MOD4_MASK = 1 << 6,
+ GDK_MOD5_MASK = 1 << 7,
+ GDK_BUTTON1_MASK = 1 << 8,
+ GDK_BUTTON2_MASK = 1 << 9,
+ GDK_BUTTON3_MASK = 1 << 10,
+ GDK_BUTTON4_MASK = 1 << 11,
+ GDK_BUTTON5_MASK = 1 << 12,
+ GDK_RELEASE_MASK = 1 << 13,
+ GDK_MODIFIER_MASK = 0x3fff
+} GdkModifierType;
+</ENUM>
+<ENUM>
+<NAME>GdkSubwindowMode</NAME>
+typedef enum
+{
+ GDK_CLIP_BY_CHILDREN = 0,
+ GDK_INCLUDE_INFERIORS = 1
+} GdkSubwindowMode;
+</ENUM>
+<ENUM>
+<NAME>GdkInputCondition</NAME>
+typedef enum
+{
+ GDK_INPUT_READ = 1 << 0,
+ GDK_INPUT_WRITE = 1 << 1,
+ GDK_INPUT_EXCEPTION = 1 << 2
+} GdkInputCondition;
+</ENUM>
+<ENUM>
+<NAME>GdkStatus</NAME>
+typedef enum
+{
+ GDK_OK = 0,
+ GDK_ERROR = -1,
+ GDK_ERROR_PARAM = -2,
+ GDK_ERROR_FILE = -3,
+ GDK_ERROR_MEM = -4
+} GdkStatus;
+</ENUM>
+<ENUM>
+<NAME>GdkByteOrder</NAME>
+typedef enum
+{
+ GDK_LSB_FIRST,
+ GDK_MSB_FIRST
+} GdkByteOrder;
+</ENUM>
+<ENUM>
+<NAME>GdkGCValuesMask</NAME>
+typedef enum
+{
+ GDK_GC_FOREGROUND = 1 << 0,
+ GDK_GC_BACKGROUND = 1 << 1,
+ GDK_GC_FONT = 1 << 2,
+ GDK_GC_FUNCTION = 1 << 3,
+ GDK_GC_FILL = 1 << 4,
+ GDK_GC_TILE = 1 << 5,
+ GDK_GC_STIPPLE = 1 << 6,
+ GDK_GC_CLIP_MASK = 1 << 7,
+ GDK_GC_SUBWINDOW = 1 << 8,
+ GDK_GC_TS_X_ORIGIN = 1 << 9,
+ GDK_GC_TS_Y_ORIGIN = 1 << 10,
+ GDK_GC_CLIP_X_ORIGIN = 1 << 11,
+ GDK_GC_CLIP_Y_ORIGIN = 1 << 12,
+ GDK_GC_EXPOSURES = 1 << 13,
+ GDK_GC_LINE_WIDTH = 1 << 14,
+ GDK_GC_LINE_STYLE = 1 << 15,
+ GDK_GC_CAP_STYLE = 1 << 16,
+ GDK_GC_JOIN_STYLE = 1 << 17
+} GdkGCValuesMask;
+</ENUM>
+<ENUM>
+<NAME>GdkSelection</NAME>
+typedef enum
+{
+ GDK_SELECTION_PRIMARY = 1,
+ GDK_SELECTION_SECONDARY = 2
+} GdkSelection;
+</ENUM>
+<ENUM>
+<NAME>GdkPropertyState</NAME>
+typedef enum
+{
+ GDK_PROPERTY_NEW_VALUE,
+ GDK_PROPERTY_DELETE
+} GdkPropertyState;
+</ENUM>
+<ENUM>
+<NAME>GdkPropMode</NAME>
+typedef enum
+{
+ GDK_PROP_MODE_REPLACE,
+ GDK_PROP_MODE_PREPEND,
+ GDK_PROP_MODE_APPEND
+} GdkPropMode;
+</ENUM>
+<ENUM>
+<NAME>GdkInputSource</NAME>
+typedef enum
+{
+ GDK_SOURCE_MOUSE,
+ GDK_SOURCE_PEN,
+ GDK_SOURCE_ERASER,
+ GDK_SOURCE_CURSOR
+} GdkInputSource;
+</ENUM>
+<ENUM>
+<NAME>GdkInputMode</NAME>
+typedef enum
+{
+ GDK_MODE_DISABLED,
+ GDK_MODE_SCREEN,
+ GDK_MODE_WINDOW
+} GdkInputMode;
+</ENUM>
+<ENUM>
+<NAME>GdkAxisUse</NAME>
+typedef enum
+{
+ GDK_AXIS_IGNORE,
+ GDK_AXIS_X,
+ GDK_AXIS_Y,
+ GDK_AXIS_PRESSURE,
+ GDK_AXIS_XTILT,
+ GDK_AXIS_YTILT,
+ GDK_AXIS_LAST
+} GdkAxisUse;
+</ENUM>
+<ENUM>
+<NAME>GdkTarget</NAME>
+typedef enum
+{
+ GDK_TARGET_BITMAP = 5,
+ GDK_TARGET_COLORMAP = 7,
+ GDK_TARGET_DRAWABLE = 17,
+ GDK_TARGET_PIXMAP = 20,
+ GDK_TARGET_STRING = 31
+} GdkTarget;
+</ENUM>
+<ENUM>
+<NAME>GdkSelectionType</NAME>
+typedef enum
+{
+ GDK_SELECTION_TYPE_ATOM = 4,
+ GDK_SELECTION_TYPE_BITMAP = 5,
+ GDK_SELECTION_TYPE_COLORMAP = 7,
+ GDK_SELECTION_TYPE_DRAWABLE = 17,
+ GDK_SELECTION_TYPE_INTEGER = 19,
+ GDK_SELECTION_TYPE_PIXMAP = 20,
+ GDK_SELECTION_TYPE_WINDOW = 33,
+ GDK_SELECTION_TYPE_STRING = 31
+} GdkSelectionType;
+</ENUM>
+<ENUM>
+<NAME>GdkExtensionMode</NAME>
+typedef enum
+{
+ GDK_EXTENSION_EVENTS_NONE,
+ GDK_EXTENSION_EVENTS_ALL,
+ GDK_EXTENSION_EVENTS_CURSOR
+} GdkExtensionMode;
+</ENUM>
+<ENUM>
+<NAME>GdkIMStyle</NAME>
+typedef enum /*< flags >*/
+{
+ GDK_IM_PREEDIT_AREA = 0x0001,
+ GDK_IM_PREEDIT_CALLBACKS = 0x0002,
+ GDK_IM_PREEDIT_POSITION = 0x0004,
+ GDK_IM_PREEDIT_NOTHING = 0x0008,
+ GDK_IM_PREEDIT_NONE = 0x0010,
+ GDK_IM_PREEDIT_MASK = 0x001f,
+
+ GDK_IM_STATUS_AREA = 0x0100,
+ GDK_IM_STATUS_CALLBACKS = 0x0200,
+ GDK_IM_STATUS_NOTHING = 0x0400,
+ GDK_IM_STATUS_NONE = 0x0800,
+ GDK_IM_STATUS_MASK = 0x0f00
+} GdkIMStyle;
+</ENUM>
+<ENUM>
+<NAME>GdkICAttributesType</NAME>
+typedef enum
+{
+ GDK_IC_STYLE = 1 << 0,
+ GDK_IC_CLIENT_WINDOW = 1 << 1,
+ GDK_IC_FOCUS_WINDOW = 1 << 2,
+ GDK_IC_FILTER_EVENTS = 1 << 3,
+ GDK_IC_SPOT_LOCATION = 1 << 4,
+ GDK_IC_LINE_SPACING = 1 << 5,
+ GDK_IC_CURSOR = 1 << 6,
+
+ GDK_IC_PREEDIT_FONTSET = 1 << 10,
+ GDK_IC_PREEDIT_AREA = 1 << 11,
+ GDK_IC_PREEDIT_AREA_NEEDED = 1 << 12,
+ GDK_IC_PREEDIT_FOREGROUND = 1 << 13,
+ GDK_IC_PREEDIT_BACKGROUND = 1 << 14,
+ GDK_IC_PREEDIT_PIXMAP = 1 << 15,
+ GDK_IC_PREEDIT_COLORMAP = 1 << 16,
+
+ GDK_IC_STATUS_FONTSET = 1 << 21,
+ GDK_IC_STATUS_AREA = 1 << 22,
+ GDK_IC_STATUS_AREA_NEEDED = 1 << 23,
+ GDK_IC_STATUS_FOREGROUND = 1 << 24,
+ GDK_IC_STATUS_BACKGROUND = 1 << 25,
+ GDK_IC_STATUS_PIXMAP = 1 << 26,
+ GDK_IC_STATUS_COLORMAP = 1 << 27,
+
+ GDK_IC_ALL_REQ = GDK_IC_STYLE |
+ GDK_IC_CLIENT_WINDOW,
+
+ GDK_IC_PREEDIT_AREA_REQ = GDK_IC_PREEDIT_AREA |
+ GDK_IC_PREEDIT_FONTSET,
+ GDK_IC_PREEDIT_POSITION_REQ = GDK_IC_PREEDIT_AREA | GDK_IC_SPOT_LOCATION |
+ GDK_IC_PREEDIT_FONTSET,
+
+ GDK_IC_STATUS_AREA_REQ = GDK_IC_STATUS_AREA |
+ GDK_IC_STATUS_FONTSET
+} GdkICAttributesType;
+</ENUM>
+<ENUM>
+<NAME>GdkWMDecoration</NAME>
+typedef enum
+{
+ GDK_DECOR_ALL = 1 << 0,
+ GDK_DECOR_BORDER = 1 << 1,
+ GDK_DECOR_RESIZEH = 1 << 2,
+ GDK_DECOR_TITLE = 1 << 3,
+ GDK_DECOR_MENU = 1 << 4,
+ GDK_DECOR_MINIMIZE = 1 << 5,
+ GDK_DECOR_MAXIMIZE = 1 << 6
+} GdkWMDecoration;
+</ENUM>
+<ENUM>
+<NAME>GdkWMFunction</NAME>
+typedef enum
+{
+ GDK_FUNC_ALL = 1 << 0,
+ GDK_FUNC_RESIZE = 1 << 1,
+ GDK_FUNC_MOVE = 1 << 2,
+ GDK_FUNC_MINIMIZE = 1 << 3,
+ GDK_FUNC_MAXIMIZE = 1 << 4,
+ GDK_FUNC_CLOSE = 1 << 5
+} GdkWMFunction;
+</ENUM>
+<USER_FUNCTION>
+<NAME>GdkInputFunction</NAME>
+<RETURNS>void </RETURNS>
+gpointer data,
+ gint source,
+ GdkInputCondition condition
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GdkDestroyNotify</NAME>
+<RETURNS>void </RETURNS>
+gpointer data
+</USER_FUNCTION>
+<ENUM>
+<NAME>GdkColorContextMode</NAME>
+typedef enum
+{
+ GDK_CC_MODE_UNDEFINED,
+ GDK_CC_MODE_BW,
+ GDK_CC_MODE_STD_CMAP,
+ GDK_CC_MODE_TRUE,
+ GDK_CC_MODE_MY_GRAY,
+ GDK_CC_MODE_PALETTE
+} GdkColorContextMode;
+</ENUM>
+<ENUM>
+<NAME>GdkOverlapType</NAME>
+typedef enum
+{
+ GDK_OVERLAP_RECTANGLE_IN,
+ GDK_OVERLAP_RECTANGLE_OUT,
+ GDK_OVERLAP_RECTANGLE_PART
+} GdkOverlapType;
+</ENUM>
+<ENUM>
+<NAME>GdkDragAction</NAME>
+typedef enum {
+ GDK_ACTION_DEFAULT = 1 << 0,
+ GDK_ACTION_COPY = 1 << 1,
+ GDK_ACTION_MOVE = 1 << 2,
+ GDK_ACTION_LINK = 1 << 3,
+ GDK_ACTION_PRIVATE = 1 << 4,
+ GDK_ACTION_ASK = 1 << 5
+} GdkDragAction;
+</ENUM>
+<ENUM>
+<NAME>GdkDragProtocol</NAME>
+typedef enum {
+ GDK_DRAG_PROTO_MOTIF,
+ GDK_DRAG_PROTO_XDND,
+ GDK_DRAG_PROTO_ROOTWIN, /* A root window with nobody claiming
+ * drags */
+ GDK_DRAG_PROTO_NONE /* Not a valid drag window */
+} GdkDragProtocol;
+</ENUM>
+<STRUCT>
+<NAME>GdkColor</NAME>
+struct GdkColor
+{
+ gulong pixel;
+ gushort red;
+ gushort green;
+ gushort blue;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkColormap</NAME>
+struct GdkColormap
+{
+ gint size;
+ GdkColor *colors;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkVisual</NAME>
+struct GdkVisual
+{
+ GdkVisualType type;
+ gint depth;
+ GdkByteOrder byte_order;
+ gint colormap_size;
+ gint bits_per_rgb;
+
+ guint32 red_mask;
+ gint red_shift;
+ gint red_prec;
+
+ guint32 green_mask;
+ gint green_shift;
+ gint green_prec;
+
+ guint32 blue_mask;
+ gint blue_shift;
+ gint blue_prec;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkWindowAttr</NAME>
+struct GdkWindowAttr
+{
+ gchar *title;
+ gint event_mask;
+ gint16 x, y;
+ gint16 width;
+ gint16 height;
+ GdkWindowClass wclass;
+ GdkVisual *visual;
+ GdkColormap *colormap;
+ GdkWindowType window_type;
+ GdkCursor *cursor;
+ gchar *wmclass_name;
+ gchar *wmclass_class;
+ gboolean override_redirect;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkWindow</NAME>
+struct GdkWindow
+{
+ gpointer user_data;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkGeometry</NAME>
+struct GdkGeometry {
+ gint min_width;
+ gint min_height;
+ gint max_width;
+ gint max_height;
+ gint base_width;
+ gint base_height;
+ gint width_inc;
+ gint height_inc;
+ gdouble min_aspect;
+ gdouble max_aspect;
+ /* GdkGravity gravity; */
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkImage</NAME>
+struct GdkImage
+{
+ GdkImageType type;
+ GdkVisual *visual; /* visual used to create the image */
+ GdkByteOrder byte_order;
+ guint16 width;
+ guint16 height;
+ guint16 depth;
+ guint16 bpp; /* bytes per pixel */
+ guint16 bpl; /* bytes per line */
+ gpointer mem;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkGCValues</NAME>
+struct GdkGCValues
+{
+ GdkColor foreground;
+ GdkColor background;
+ GdkFont *font;
+ GdkFunction function;
+ GdkFill fill;
+ GdkPixmap *tile;
+ GdkPixmap *stipple;
+ GdkPixmap *clip_mask;
+ GdkSubwindowMode subwindow_mode;
+ gint ts_x_origin;
+ gint ts_y_origin;
+ gint clip_x_origin;
+ gint clip_y_origin;
+ gint graphics_exposures;
+ gint line_width;
+ GdkLineStyle line_style;
+ GdkCapStyle cap_style;
+ GdkJoinStyle join_style;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkGC</NAME>
+struct GdkGC
+{
+ gint dummy_var;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkPoint</NAME>
+struct GdkPoint
+{
+ gint16 x;
+ gint16 y;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkRectangle</NAME>
+struct GdkRectangle
+{
+ gint16 x;
+ gint16 y;
+ guint16 width;
+ guint16 height;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkSegment</NAME>
+struct GdkSegment
+{
+ gint16 x1;
+ gint16 y1;
+ gint16 x2;
+ gint16 y2;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkFont</NAME>
+struct GdkFont
+{
+ GdkFontType type;
+ gint ascent;
+ gint descent;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkCursor</NAME>
+struct GdkCursor
+{
+ GdkCursorType type;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkColorContextDither</NAME>
+struct GdkColorContextDither
+{
+ gint fast_rgb[32][32][32]; /* quick look-up table for faster rendering */
+ gint fast_err[32][32][32]; /* internal RGB error information */
+ gint fast_erg[32][32][32];
+ gint fast_erb[32][32][32];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkColorContext</NAME>
+struct GdkColorContext
+{
+ GdkVisual *visual;
+ GdkColormap *colormap;
+
+ gint num_colors; /* available no. of colors in colormap */
+ gint max_colors; /* maximum no. of colors */
+ gint num_allocated; /* no. of allocated colors */
+
+ GdkColorContextMode mode;
+ gint need_to_free_colormap;
+ GdkAtom std_cmap_atom;
+
+ gulong *clut; /* color look-up table */
+ GdkColor *cmap; /* colormap */
+
+ GHashTable *color_hash; /* hash table of allocated colors */
+ GdkColor *palette; /* preallocated palette */
+ gint num_palette; /* size of palette */
+
+ GdkColorContextDither *fast_dither; /* fast dither matrix */
+
+ struct
+ {
+ gint red;
+ gint green;
+ gint blue;
+ } shifts;
+
+</STRUCT>
+<STRUCT>
+<NAME>GdkDeviceKey</NAME>
+struct GdkDeviceKey
+{
+ guint keyval;
+ GdkModifierType modifiers;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkDeviceInfo</NAME>
+struct GdkDeviceInfo
+{
+ guint32 deviceid;
+ gchar *name;
+ GdkInputSource source;
+ GdkInputMode mode;
+ gint has_cursor; /* TRUE if the X pointer follows device motion */
+ gint num_axes;
+ GdkAxisUse *axes; /* Specifies use for each axis */
+ gint num_keys;
+ GdkDeviceKey *keys;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkTimeCoord</NAME>
+struct GdkTimeCoord
+{
+ guint32 time;
+ gdouble x;
+ gdouble y;
+ gdouble pressure;
+ gdouble xtilt;
+ gdouble ytilt;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkDragContext</NAME>
+struct GdkDragContext {
+ GdkDragProtocol protocol;
+
+ gboolean is_source;
+
+ GdkWindow *source_window;
+ GdkWindow *dest_window;
+
+ GList *targets;
+ GdkDragAction actions;
+ GdkDragAction suggested_action;
+ GdkDragAction action;
+
+ guint32 start_time;
+};
+</STRUCT>
+<TYPEDEF>
+<NAME>GdkXEvent</NAME>
+typedef void GdkXEvent; /* Can be cast to XEvent */
+</TYPEDEF>
+<USER_FUNCTION>
+<NAME>GdkFilterFunc</NAME>
+<RETURNS>GdkFilterReturn </RETURNS>
+GdkXEvent *xevent,
+ GdkEvent *event,
+ gpointer data
+</USER_FUNCTION>
+<STRUCT>
+<NAME>GdkEventAny</NAME>
+struct GdkEventAny
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventExpose</NAME>
+struct GdkEventExpose
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ GdkRectangle area;
+ gint count; /* If non-zero, how many more events follow. */
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventNoExpose</NAME>
+struct GdkEventNoExpose
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ /* XXX: does anyone need the X major_code or minor_code fields? */
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventVisibility</NAME>
+struct GdkEventVisibility
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ GdkVisibilityState state;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventMotion</NAME>
+struct GdkEventMotion
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ guint32 time;
+ gdouble x;
+ gdouble y;
+ gdouble pressure;
+ gdouble xtilt;
+ gdouble ytilt;
+ guint state;
+ gint16 is_hint;
+ GdkInputSource source;
+ guint32 deviceid;
+ gdouble x_root, y_root;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventButton</NAME>
+struct GdkEventButton
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ guint32 time;
+ gdouble x;
+ gdouble y;
+ gdouble pressure;
+ gdouble xtilt;
+ gdouble ytilt;
+ guint state;
+ guint button;
+ GdkInputSource source;
+ guint32 deviceid;
+ gdouble x_root, y_root;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventKey</NAME>
+struct GdkEventKey
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ guint32 time;
+ guint state;
+ guint keyval;
+ gint length;
+ gchar *string;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventCrossing</NAME>
+struct GdkEventCrossing
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ GdkWindow *subwindow;
+ guint32 time;
+ gdouble x;
+ gdouble y;
+ gdouble x_root;
+ gdouble y_root;
+ GdkCrossingMode mode;
+ GdkNotifyType detail;
+ gboolean focus;
+ guint state;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventFocus</NAME>
+struct GdkEventFocus
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ gint16 in;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventConfigure</NAME>
+struct GdkEventConfigure
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ gint16 x, y;
+ gint16 width;
+ gint16 height;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventProperty</NAME>
+struct GdkEventProperty
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ GdkAtom atom;
+ guint32 time;
+ guint state;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventSelection</NAME>
+struct GdkEventSelection
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ GdkAtom selection;
+ GdkAtom target;
+ GdkAtom property;
+ guint32 requestor;
+ guint32 time;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventProximity</NAME>
+struct GdkEventProximity
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ guint32 time;
+ GdkInputSource source;
+ guint32 deviceid;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventClient</NAME>
+struct GdkEventClient
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ GdkAtom message_type;
+ gushort data_format;
+ union {
+ char b[20];
+ short s[10];
+ long l[5];
+ } data;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkEventDND</NAME>
+struct GdkEventDND {
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ GdkDragContext *context;
+
+ guint32 time;
+ gshort x_root, y_root;
+};
+</STRUCT>
+<UNION>
+<NAME>GdkEvent</NAME>
+union GdkEvent
+{
+ GdkEventType type;
+ GdkEventAny any;
+ GdkEventExpose expose;
+ GdkEventNoExpose no_expose;
+ GdkEventVisibility visibility;
+ GdkEventMotion motion;
+ GdkEventButton button;
+ GdkEventKey key;
+ GdkEventCrossing crossing;
+ GdkEventFocus focus_change;
+ GdkEventConfigure configure;
+ GdkEventProperty property;
+ GdkEventSelection selection;
+ GdkEventProximity proximity;
+ GdkEventClient client;
+ GdkEventDND dnd;
+};
+</UNION>
+<STRUCT>
+<NAME>GdkRegion</NAME>
+struct GdkRegion
+{
+ gpointer user_data;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkICAttr</NAME>
+struct GdkICAttr
+{
+ GdkIMStyle style;
+ GdkWindow *client_window;
+ GdkWindow *focus_window;
+ GdkEventMask filter_events;
+ GdkPoint spot_location;
+ gint line_spacing;
+ GdkCursor *cursor;
+
+ GdkFont *preedit_fontset;
+ GdkRectangle preedit_area;
+ GdkRectangle preedit_area_needed;
+ GdkColor preedit_foreground;
+ GdkColor preedit_background;
+ GdkPixmap *preedit_pixmap;
+ GdkColormap *preedit_colormap;
+
+ GdkFont *status_fontset;
+ GdkRectangle status_area;
+ GdkRectangle status_area_needed;
+ GdkColor status_foreground;
+ GdkColor status_background;
+ GdkPixmap *status_pixmap;
+ GdkColormap *status_colormap;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkRgbCmap</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GdkRgbCmap</NAME>
+struct GdkRgbCmap {
+ guint32 colors[256];
+ guchar lut[256]; /* for 8-bit modes */
+};
+</STRUCT>
+<FUNCTION>
+<NAME>gdk_rgb_init</NAME>
+<RETURNS>void</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_rgb_xpixel_from_rgb</NAME>
+<RETURNS>gulong</RETURNS>
+guint32 rgb
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_rgb_gc_set_foreground</NAME>
+<RETURNS>void</RETURNS>
+GdkGC *gc, guint32 rgb
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_rgb_gc_set_background</NAME>
+<RETURNS>void</RETURNS>
+GdkGC *gc, guint32 rgb
+</FUNCTION>
+<ENUM>
+<NAME>GdkRgbDither</NAME>
+typedef enum
+{
+ GDK_RGB_DITHER_NONE,
+ GDK_RGB_DITHER_NORMAL,
+ GDK_RGB_DITHER_MAX
+} GdkRgbDither;
+</ENUM>
+<FUNCTION>
+<NAME>gdk_draw_rgb_image</NAME>
+<RETURNS>void</RETURNS>
+GdkDrawable *drawable,GdkGC *gc,gint x,gint y,gint width,gint height,GdkRgbDither dith,guchar *rgb_buf,gint rowstride
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_rgb_image_dithalign</NAME>
+<RETURNS>void</RETURNS>
+GdkDrawable *drawable,GdkGC *gc,gint x,gint y,gint width,gint height,GdkRgbDither dith,guchar *rgb_buf,gint rowstride,gint xdith,gint ydith
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_rgb_32_image</NAME>
+<RETURNS>void</RETURNS>
+GdkDrawable *drawable,GdkGC *gc,gint x,gint y,gint width,gint height,GdkRgbDither dith,guchar *buf,gint rowstride
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_gray_image</NAME>
+<RETURNS>void</RETURNS>
+GdkDrawable *drawable,GdkGC *gc,gint x,gint y,gint width,gint height,GdkRgbDither dith,guchar *buf,gint rowstride
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_rgb_cmap_new</NAME>
+<RETURNS>GdkRgbCmap *</RETURNS>
+guint32 *colors, gint n_colors
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_rgb_cmap_free</NAME>
+<RETURNS>void</RETURNS>
+GdkRgbCmap *cmap
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_draw_indexed_image</NAME>
+<RETURNS>void</RETURNS>
+GdkDrawable *drawable,GdkGC *gc,gint x,gint y,gint width,gint height,GdkRgbDither dith,guchar *buf,gint rowstride,GdkRgbCmap *cmap
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_rgb_ditherable</NAME>
+<RETURNS>gboolean</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_rgb_set_verbose</NAME>
+<RETURNS>void</RETURNS>
+gboolean verbose
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_rgb_set_install</NAME>
+<RETURNS>void</RETURNS>
+gboolean install
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_rgb_set_min_colors</NAME>
+<RETURNS>void</RETURNS>
+gint min_colors
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_rgb_get_cmap</NAME>
+<RETURNS>GdkColormap *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>gdk_rgb_get_visual</NAME>
+<RETURNS>GdkVisual *</RETURNS>
+void
+</FUNCTION>
diff --git a/docs/reference/gdk/gdk-docs.sgml b/docs/reference/gdk/gdk-docs.sgml
new file mode 100644
index 000000000..022ded73b
--- /dev/null
+++ b/docs/reference/gdk/gdk-docs.sgml
@@ -0,0 +1,59 @@
+<!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
+<!entity gdk-General SYSTEM "sgml/general.sgml">
+<!entity gdk-Bitmaps-and-Pixmaps SYSTEM "sgml/pixmaps.sgml">
+<!entity gdk-Images SYSTEM "sgml/images.sgml">
+<!entity gdk-GdkRGB SYSTEM "sgml/rgb.sgml">
+<!entity gdk-Colormaps-and-Colors SYSTEM "sgml/colors.sgml">
+<!entity gdk-Fonts SYSTEM "sgml/fonts.sgml">
+<!entity gdk-Drawing-Primitives SYSTEM "sgml/drawing.sgml">
+<!entity gdk-Graphics-Contexts SYSTEM "sgml/gcs.sgml">
+<!entity gdk-Visuals SYSTEM "sgml/visuals.sgml">
+<!entity gdk-Windows SYSTEM "sgml/windows.sgml">
+<!entity gdk-Selections SYSTEM "sgml/selections.sgml">
+<!entity gdk-Properties-and-Atoms SYSTEM "sgml/properties.sgml">
+<!entity gdk-Input-Methods SYSTEM "sgml/input_methods.sgml">
+<!entity gdk-Input-Contexts SYSTEM "sgml/input_contexts.sgml">
+<!entity gdk-Color-Contexts SYSTEM "sgml/color_contexts.sgml">
+<!entity gdk-Points-Rectangles-and-Regions SYSTEM "sgml/regions.sgml">
+<!entity gdk-Threads SYSTEM "sgml/threads.sgml">
+<!entity gdk-Key-Values SYSTEM "sgml/keys.sgml">
+<!entity gdk-Input-Devices SYSTEM "sgml/input_devices.sgml">
+<!entity gdk-Events SYSTEM "sgml/events.sgml">
+<!entity gdk-Event-Structures SYSTEM "sgml/event_structs.sgml">
+<!entity gdk-Cursors SYSTEM "sgml/cursors.sgml">
+<!entity gdk-Input SYSTEM "sgml/input.sgml">
+<!entity gdk-Drag-and-Drop SYSTEM "sgml/dnd.sgml">
+]>
+<book id="index">
+ <bookinfo>
+ <title>GDK Reference Manual</title>
+ </bookinfo>
+
+ <chapter id="gdk">
+ <title>GDK</title>
+ &gdk-General;
+ &gdk-Bitmaps-and-Pixmaps;
+ &gdk-Images;
+ &gdk-GdkRGB;
+ &gdk-Colormaps-and-Colors;
+ &gdk-Fonts;
+ &gdk-Drawing-Primitives;
+ &gdk-Graphics-Contexts;
+ &gdk-Visuals;
+ &gdk-Windows;
+ &gdk-Selections;
+ &gdk-Properties-and-Atoms;
+ &gdk-Input-Methods;
+ &gdk-Input-Contexts;
+ &gdk-Color-Contexts;
+ &gdk-Points-Rectangles-and-Regions;
+ &gdk-Threads;
+ &gdk-Key-Values;
+ &gdk-Input-Devices;
+ &gdk-Events;
+ &gdk-Event-Structures;
+ &gdk-Cursors;
+ &gdk-Input;
+ &gdk-Drag-and-Drop;
+ </chapter>
+</book>
diff --git a/docs/reference/gdk/gdk-overrides.txt b/docs/reference/gdk/gdk-overrides.txt
new file mode 100644
index 000000000..939122e78
--- /dev/null
+++ b/docs/reference/gdk/gdk-overrides.txt
@@ -0,0 +1,23 @@
+
+# GdkPixmap, GdkBitmap and GdkDrawable are the same as GdkWindow.
+<STRUCT>
+<NAME>GdkPixmap</NAME>
+struct GdkPixmap
+{
+ gpointer user_data;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkBitmap</NAME>
+struct GdkBitmap
+{
+ gpointer user_data;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GdkDrawable</NAME>
+struct GdkDrawable
+{
+ gpointer user_data;
+};
+</STRUCT>
diff --git a/docs/reference/gdk/gdk-sections.txt b/docs/reference/gdk/gdk-sections.txt
new file mode 100644
index 000000000..ec4626814
--- /dev/null
+++ b/docs/reference/gdk/gdk-sections.txt
@@ -0,0 +1,572 @@
+
+<INCLUDE>gdk/gdk.h</INCLUDE>
+
+<SECTION>
+<TITLE>General</TITLE>
+<FILE>general</FILE>
+gdk_init
+gdk_init_check
+gdk_exit
+GdkStatus
+GDK_NONE
+GDK_CURRENT_TIME
+GDK_PRIORITY_EVENTS
+gdk_set_locale
+gdk_get_show_events
+gdk_set_show_events
+gdk_add_client_message_filter
+gdk_set_sm_client_id
+gdk_get_use_xshm
+gdk_set_use_xshm
+gdk_get_display
+gdk_screen_width
+gdk_screen_height
+gdk_screen_width_mm
+gdk_screen_height_mm
+gdk_pointer_grab
+gdk_pointer_ungrab
+gdk_keyboard_grab
+gdk_keyboard_ungrab
+gdk_pointer_is_grabbed
+gdk_flush
+gdk_beep
+gdk_key_repeat_disable
+gdk_key_repeat_restore
+gdk_error_trap_push
+gdk_error_trap_pop
+
+<SUBSECTION Private>
+gdk_time_get
+gdk_timer_get
+gdk_timer_set
+gdk_timer_enable
+gdk_timer_disable
+</SECTION>
+
+<SECTION>
+<TITLE>Bitmaps and Pixmaps</TITLE>
+<FILE>pixmaps</FILE>
+GdkPixmap
+gdk_pixmap_new
+gdk_bitmap_create_from_data
+gdk_pixmap_create_from_data
+gdk_pixmap_create_from_xpm
+gdk_pixmap_colormap_create_from_xpm
+gdk_pixmap_create_from_xpm_d
+gdk_pixmap_colormap_create_from_xpm_d
+gdk_pixmap_ref
+gdk_pixmap_unref
+GdkBitmap
+gdk_bitmap_ref
+gdk_bitmap_unref
+</SECTION>
+
+<SECTION>
+<TITLE>Images</TITLE>
+<FILE>images</FILE>
+GdkImage
+GdkImageType
+gdk_image_new_bitmap
+gdk_image_new
+gdk_image_get
+gdk_image_put_pixel
+gdk_image_get_pixel
+gdk_image_destroy
+</SECTION>
+
+<SECTION>
+<TITLE>GdkRGB</TITLE>
+<FILE>rgb</FILE>
+GdkRgbCmap
+GdkRgbDither
+
+gdk_rgb_init
+gdk_rgb_cmap_new
+gdk_rgb_cmap_free
+
+gdk_rgb_gc_set_foreground
+gdk_rgb_gc_set_background
+
+gdk_draw_rgb_image
+gdk_draw_indexed_image
+gdk_draw_gray_image
+gdk_draw_rgb_32_image
+gdk_draw_rgb_image_dithalign
+gdk_rgb_xpixel_from_rgb
+
+gdk_rgb_set_verbose
+gdk_rgb_ditherable
+gdk_rgb_set_install
+gdk_rgb_set_min_colors
+gdk_rgb_get_visual
+gdk_rgb_get_cmap
+</SECTION>
+
+<SECTION>
+<TITLE>Colormaps and Colors</TITLE>
+<FILE>colors</FILE>
+GdkColor
+GdkColormap
+gdk_colormap_new
+gdk_colormap_ref
+gdk_colormap_unref
+gdk_colormap_get_system
+gdk_colormap_get_system_size
+gdk_colormap_change
+gdk_colormap_alloc_colors
+gdk_colormap_alloc_color
+gdk_colormap_free_colors
+gdk_colormap_get_visual
+gdk_colors_store
+gdk_color_copy
+gdk_color_free
+gdk_colors_alloc
+gdk_colors_free
+gdk_color_white
+gdk_color_black
+gdk_color_parse
+gdk_color_alloc
+gdk_color_change
+gdk_color_equal
+gdk_color_hash
+</SECTION>
+
+<SECTION>
+<TITLE>Fonts</TITLE>
+<FILE>fonts</FILE>
+GdkFont
+GdkFontType
+gdk_font_load
+gdk_fontset_load
+gdk_font_ref
+gdk_font_unref
+gdk_font_id
+gdk_font_equal
+
+<SUBSECTION>
+gdk_string_extents
+gdk_text_extents
+gdk_text_extents_wc
+gdk_string_width
+gdk_text_width
+gdk_text_width_wc
+gdk_char_width
+gdk_char_width_wc
+gdk_string_measure
+gdk_text_measure
+gdk_char_measure
+gdk_string_height
+gdk_text_height
+gdk_char_height
+</SECTION>
+
+<SECTION>
+<TITLE>Drawing Primitives</TITLE>
+<FILE>drawing</FILE>
+GdkFill
+GdkFillRule
+GdkLineStyle
+GdkCapStyle
+GdkJoinStyle
+
+gdk_draw_point
+gdk_draw_line
+gdk_draw_rectangle
+gdk_draw_arc
+gdk_draw_polygon
+gdk_draw_string
+gdk_draw_text
+gdk_draw_text_wc
+gdk_draw_pixmap
+gdk_draw_bitmap
+gdk_draw_image
+gdk_draw_points
+gdk_draw_segments
+GdkSegment
+gdk_draw_lines
+</SECTION>
+
+<SECTION>
+<TITLE>Graphics Contexts</TITLE>
+<FILE>gcs</FILE>
+GdkGC
+GdkGCValues
+GdkGCValuesMask
+
+GdkFunction
+
+gdk_gc_new
+gdk_gc_new_with_values
+gdk_gc_ref
+gdk_gc_unref
+gdk_gc_destroy
+gdk_gc_get_values
+gdk_gc_set_foreground
+gdk_gc_set_background
+gdk_gc_set_font
+gdk_gc_set_function
+gdk_gc_set_fill
+gdk_gc_set_tile
+gdk_gc_set_stipple
+gdk_gc_set_ts_origin
+gdk_gc_set_clip_origin
+gdk_gc_set_clip_mask
+gdk_gc_set_clip_rectangle
+gdk_gc_set_clip_region
+gdk_gc_set_subwindow
+GdkSubwindowMode
+gdk_gc_set_exposures
+gdk_gc_set_line_attributes
+gdk_gc_set_dashes
+gdk_gc_copy
+</SECTION>
+
+<SECTION>
+<TITLE>Visuals</TITLE>
+<FILE>visuals</FILE>
+GdkVisual
+GdkVisualType
+GdkByteOrder
+gdk_query_depths
+gdk_query_visual_types
+gdk_list_visuals
+
+gdk_visual_get_best_depth
+gdk_visual_get_best_type
+gdk_visual_get_system
+gdk_visual_get_best
+gdk_visual_get_best_with_depth
+gdk_visual_get_best_with_type
+gdk_visual_get_best_with_both
+gdk_visual_ref
+gdk_visual_unref
+</SECTION>
+
+<SECTION>
+<TITLE>Windows</TITLE>
+<FILE>windows</FILE>
+GdkWindowAttr
+GdkWindow
+GdkWindowType
+GdkWindowClass
+GdkWindowAttributesType
+GdkWindowHints
+GdkGeometry
+
+gdk_window_new
+gdk_window_destroy
+gdk_window_ref
+gdk_window_unref
+gdk_window_at_pointer
+gdk_window_show
+gdk_window_hide
+gdk_window_is_visible
+gdk_window_is_viewable
+gdk_window_withdraw
+gdk_window_move
+gdk_window_resize
+gdk_window_move_resize
+gdk_window_reparent
+gdk_window_clear
+gdk_window_clear_area
+gdk_window_clear_area_e
+gdk_window_copy_area
+gdk_window_raise
+gdk_window_lower
+gdk_window_register_dnd
+gdk_window_set_user_data
+gdk_window_set_override_redirect
+gdk_window_add_filter
+gdk_window_remove_filter
+GdkFilterFunc
+GdkFilterReturn
+gdk_window_shape_combine_mask
+gdk_window_set_child_shapes
+gdk_window_merge_child_shapes
+gdk_window_set_static_gravities
+gdk_window_set_hints
+gdk_window_set_title
+gdk_window_set_background
+gdk_window_set_back_pixmap
+GDK_PARENT_RELATIVE
+gdk_window_set_cursor
+gdk_window_set_colormap
+gdk_window_get_user_data
+gdk_window_get_geometry
+gdk_window_set_geometry_hints
+gdk_window_get_position
+gdk_window_get_root_origin
+gdk_window_get_size
+gdk_window_get_visual
+gdk_window_get_colormap
+gdk_window_get_type
+gdk_window_get_origin
+gdk_window_get_deskrelative_origin
+gdk_window_get_pointer
+GdkModifierType
+gdk_window_get_parent
+gdk_window_get_toplevel
+gdk_window_get_children
+gdk_window_get_events
+gdk_window_set_events
+gdk_window_set_icon
+gdk_window_set_icon_name
+gdk_window_set_transient_for
+gdk_window_set_role
+gdk_window_set_group
+gdk_window_set_decorations
+GdkWMDecoration
+gdk_window_set_functions
+GdkWMFunction
+gdk_window_get_toplevels
+GdkDrawable
+gdk_drawable_set_data
+</SECTION>
+
+<SECTION>
+<TITLE>Selections</TITLE>
+<FILE>selections</FILE>
+GdkSelection
+GdkSelectionType
+gdk_selection_owner_set
+gdk_selection_owner_get
+gdk_selection_convert
+gdk_selection_property_get
+gdk_selection_send_notify
+</SECTION>
+
+<SECTION>
+<TITLE>Properties and Atoms</TITLE>
+<FILE>properties</FILE>
+GdkAtom
+GdkPropertyState
+GdkPropMode
+GdkTarget
+gdk_text_property_to_text_list
+gdk_free_text_list
+gdk_string_to_compound_text
+gdk_free_compound_text
+gdk_atom_intern
+gdk_atom_name
+gdk_property_get
+gdk_property_change
+gdk_property_delete
+</SECTION>
+
+<SECTION>
+<TITLE>Input Methods</TITLE>
+<FILE>input_methods</FILE>
+GdkIMStyle
+GdkWChar
+gdk_im_ready
+gdk_im_begin
+gdk_im_end
+gdk_im_decide_style
+gdk_im_set_best_style
+
+gdk_wcstombs
+gdk_mbstowcs
+</SECTION>
+
+<SECTION>
+<TITLE>Input Contexts</TITLE>
+<FILE>input_contexts</FILE>
+GdkIC
+GdkICAttr
+GdkICAttributesType
+gdk_ic_new
+gdk_ic_destroy
+gdk_ic_get_style
+gdk_ic_set_attr
+gdk_ic_get_attr
+gdk_ic_get_events
+gdk_ic_attr_new
+gdk_ic_attr_destroy
+</SECTION>
+
+<SECTION>
+<TITLE>Color Contexts</TITLE>
+<FILE>color_contexts</FILE>
+GdkColorContext
+GdkColorContextDither
+GdkColorContextMode
+
+gdk_color_context_new
+gdk_color_context_new_mono
+gdk_color_context_free
+gdk_color_context_get_pixel
+gdk_color_context_get_pixels
+gdk_color_context_get_pixels_incremental
+gdk_color_context_query_color
+gdk_color_context_query_colors
+gdk_color_context_add_palette
+gdk_color_context_init_dither
+gdk_color_context_free_dither
+gdk_color_context_get_pixel_from_palette
+gdk_color_context_get_index_from_palette
+</SECTION>
+
+<SECTION>
+<TITLE>Points, Rectangles and Regions</TITLE>
+<FILE>regions</FILE>
+GdkPoint
+
+GdkRectangle
+gdk_rectangle_intersect
+gdk_rectangle_union
+
+GdkRegion
+gdk_region_new
+gdk_region_destroy
+gdk_region_get_clipbox
+gdk_region_empty
+gdk_region_equal
+gdk_region_point_in
+gdk_region_rect_in
+GdkOverlapType
+gdk_region_polygon
+gdk_region_offset
+gdk_region_shrink
+gdk_region_union_with_rect
+gdk_regions_intersect
+gdk_regions_union
+gdk_regions_subtract
+gdk_regions_xor
+</SECTION>
+
+<SECTION>
+<TITLE>Threads</TITLE>
+<FILE>threads</FILE>
+gdk_threads_mutex
+GDK_THREADS_ENTER
+GDK_THREADS_LEAVE
+gdk_threads_enter
+gdk_threads_leave
+</SECTION>
+
+<SECTION>
+<TITLE>Key Values</TITLE>
+<FILE>keys</FILE>
+gdk_keyval_name
+gdk_keyval_from_name
+
+<SUBSECTION>
+gdk_keyval_is_upper
+gdk_keyval_is_lower
+
+<SUBSECTION>
+gdk_keyval_to_upper
+gdk_keyval_to_lower
+</SECTION>
+
+<SECTION>
+<TITLE>Input Devices</TITLE>
+<FILE>input_devices</FILE>
+GDK_CORE_POINTER
+GdkExtensionMode
+GdkDeviceKey
+GdkDeviceInfo
+gdk_input_init
+gdk_input_exit
+gdk_input_list_devices
+gdk_input_set_extension_events
+gdk_input_set_source
+GdkInputSource
+gdk_input_set_mode
+GdkInputMode
+gdk_input_set_axes
+GdkAxisUse
+gdk_input_set_key
+gdk_input_window_get_pointer
+gdk_input_motion_events
+GdkTimeCoord
+</SECTION>
+
+<SECTION>
+<TITLE>Events</TITLE>
+<FILE>events</FILE>
+GdkEventType
+GdkEventMask
+
+gdk_events_pending
+gdk_event_peek
+gdk_event_get
+gdk_event_get_graphics_expose
+gdk_event_put
+gdk_event_copy
+gdk_event_free
+gdk_event_get_time
+gdk_event_handler_set
+gdk_event_send_client_message
+
+GdkEventFunc
+
+gdk_event_send_clientmessage_toall
+</SECTION>
+
+<SECTION>
+<TITLE>Event Structures</TITLE>
+<FILE>event_structs</FILE>
+GdkEventAny
+GdkEventExpose
+GdkEventNoExpose
+GdkEventVisibility
+GdkVisibilityState
+GdkEventMotion
+GdkEventButton
+GdkEventKey
+GdkEventCrossing
+GdkCrossingMode
+GdkNotifyType
+GdkEventFocus
+GdkEventConfigure
+GdkEventProperty
+GdkEventSelection
+GdkEventProximity
+GdkEventClient
+GdkEventDND
+GdkEvent
+GdkXEvent
+</SECTION>
+
+<SECTION>
+<TITLE>Cursors</TITLE>
+<FILE>cursors</FILE>
+GdkCursor
+GdkCursorType
+gdk_cursor_new
+gdk_cursor_new_from_pixmap
+gdk_cursor_destroy
+</SECTION>
+
+<SECTION>
+<TITLE>Input</TITLE>
+<FILE>input</FILE>
+gdk_input_add_full
+GdkInputCondition
+GdkInputFunction
+GdkDestroyNotify
+gdk_input_add
+gdk_input_remove
+</SECTION>
+
+<SECTION>
+<TITLE>Drag and Drop</TITLE>
+<FILE>dnd</FILE>
+gdk_drag_get_selection
+gdk_drag_abort
+gdk_drop_reply
+gdk_drag_context_new
+gdk_drag_drop
+gdk_drag_find_window
+gdk_drag_context_ref
+gdk_drag_begin
+gdk_drag_motion
+gdk_drop_finish
+gdk_drag_get_protocol
+GdkDragProtocol
+gdk_drag_context_unref
+GdkDragContext
+GdkDragAction
+gdk_drag_status
+</SECTION>
diff --git a/docs/reference/gdk/tmpl/color_contexts.sgml b/docs/reference/gdk/tmpl/color_contexts.sgml
new file mode 100644
index 000000000..506b77f51
--- /dev/null
+++ b/docs/reference/gdk/tmpl/color_contexts.sgml
@@ -0,0 +1,202 @@
+<!-- ##### SECTION Title ##### -->
+Color Contexts
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GdkColorContext ##### -->
+<para>
+
+</para>
+
+@visual:
+@colormap:
+@num_colors:
+@max_colors:
+@num_allocated:
+@mode:
+@need_to_free_colormap:
+@std_cmap_atom:
+@clut:
+@cmap:
+@color_hash:
+@palette:
+@num_palette:
+@fast_dither:
+
+<!-- ##### STRUCT GdkColorContextDither ##### -->
+<para>
+
+</para>
+
+@fast_rgb:
+@fast_err:
+@fast_erg:
+@fast_erb:
+
+<!-- ##### ENUM GdkColorContextMode ##### -->
+<para>
+
+</para>
+
+@GDK_CC_MODE_UNDEFINED:
+@GDK_CC_MODE_BW:
+@GDK_CC_MODE_STD_CMAP:
+@GDK_CC_MODE_TRUE:
+@GDK_CC_MODE_MY_GRAY:
+@GDK_CC_MODE_PALETTE:
+
+<!-- ##### FUNCTION gdk_color_context_new ##### -->
+<para>
+
+</para>
+
+@visual:
+@colormap:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_color_context_new_mono ##### -->
+<para>
+
+</para>
+
+@visual:
+@colormap:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_color_context_free ##### -->
+<para>
+
+</para>
+
+@cc:
+
+
+<!-- ##### FUNCTION gdk_color_context_get_pixel ##### -->
+<para>
+
+</para>
+
+@cc:
+@red:
+@green:
+@blue:
+@failed:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_color_context_get_pixels ##### -->
+<para>
+
+</para>
+
+@cc:
+@reds:
+@greens:
+@blues:
+@ncolors:
+@colors:
+@nallocated:
+
+
+<!-- ##### FUNCTION gdk_color_context_get_pixels_incremental ##### -->
+<para>
+
+</para>
+
+@cc:
+@reds:
+@greens:
+@blues:
+@ncolors:
+@used:
+@colors:
+@nallocated:
+
+
+<!-- ##### FUNCTION gdk_color_context_query_color ##### -->
+<para>
+
+</para>
+
+@cc:
+@color:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_color_context_query_colors ##### -->
+<para>
+
+</para>
+
+@cc:
+@colors:
+@num_colors:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_color_context_add_palette ##### -->
+<para>
+
+</para>
+
+@cc:
+@palette:
+@num_palette:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_color_context_init_dither ##### -->
+<para>
+
+</para>
+
+@cc:
+
+
+<!-- ##### FUNCTION gdk_color_context_free_dither ##### -->
+<para>
+
+</para>
+
+@cc:
+
+
+<!-- ##### FUNCTION gdk_color_context_get_pixel_from_palette ##### -->
+<para>
+
+</para>
+
+@cc:
+@red:
+@green:
+@blue:
+@failed:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_color_context_get_index_from_palette ##### -->
+<para>
+
+</para>
+
+@cc:
+@red:
+@green:
+@blue:
+@failed:
+@Returns:
+
+
diff --git a/docs/reference/gdk/tmpl/colors.sgml b/docs/reference/gdk/tmpl/colors.sgml
new file mode 100644
index 000000000..f9050d698
--- /dev/null
+++ b/docs/reference/gdk/tmpl/colors.sgml
@@ -0,0 +1,390 @@
+<!-- ##### SECTION Title ##### -->
+Colormaps and Colors
+
+<!-- ##### SECTION Short_Description ##### -->
+manipulation of colors and colormaps.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+These functions are used to modify colormaps.
+A colormap is an object that contains the mapping
+between the color values stored in memory and
+the RGB values that are used to display color
+values. In general, colormaps only contain
+significant information for pseudo-color visuals,
+but even for other visual types, a colormap object
+is required in some circumstances.
+</para>
+
+<para>
+There are a couple of special colormaps that can
+be retrieved. The system colormap (retrieved
+with gdk_colormap_get_system()) is the default
+colormap of the system. If you are using GdkRGB,
+there is another colormap that is important - the
+colormap in which GdkRGB works, retrieved with
+gdk_rgb_get_cmap(). However, when using GdkRGB,
+it is not generally necessary to allocate colors
+directly.
+</para>
+
+<para>
+In previous revisions of this interface, a number
+of functions that take a #GdkColormap parameter
+were replaced with functions whose names began
+with "gdk_colormap_". This process will probably
+be extended somewhat in the future -
+gdk_color_white(), gdk_color_black(), and
+gdk_color_change() will probably become aliases.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GdkColor ##### -->
+<para>
+The #GdkColor structure is used to describe an
+allocated or unallocated color.
+
+<informaltable pgwide=1 frame="none" role="struct">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry><structfield>pixel</structfield></entry>
+<entry>For allocated colors, the value used to
+draw this color on the screen.</entry>
+</row>
+
+<row>
+<entry><structfield>red</structfield></entry>
+<entry>The red component of the color. This is
+a value between 0 and 65535, with 65535 indicating
+full intensitiy.</entry>
+</row>
+
+<row>
+<entry><structfield>green</structfield></entry>
+<entry>the blue component of the color.</entry>
+</row>
+
+<row>
+<entry><structfield>blue</structfield></entry>
+<entry>the green component of the color..</entry>
+</row>
+
+</tbody></tgroup></informaltable>
+</para>
+
+@pixel:
+@red:
+@green:
+@blue:
+
+<!-- ##### STRUCT GdkColormap ##### -->
+<para>
+The colormap structure contains the following public
+fields.
+
+<informaltable pgwide=1 frame="none" role="struct">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry><structfield>size</structfield></entry>
+<entry>For pseudo-color colormaps, the number of colors
+in the colormap..</entry>
+</row>
+
+<row>
+<entry><structfield>colors</structfield></entry>
+<entry>An array containing the current values in the
+colormap. This can be used to map from pixel values
+back to RGB values. This is only meaningful for
+pseudo-color colormaps.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
+</para>
+
+@size:
+@colors:
+
+<!-- ##### FUNCTION gdk_colormap_new ##### -->
+<para>
+Create a new colormap for the given visual.
+</para>
+
+@visual: a #GdkVisual.
+@allocate: if %TRUE, the newly created colormap will be
+ a private colormap, and all colors in it will be
+ allocated for the applications use.
+@Returns: the new #GdkColormap.
+
+
+<!-- ##### FUNCTION gdk_colormap_ref ##### -->
+<para>
+Increase the reference count of a colormap.
+</para>
+
+@cmap: a #GdkColormap.
+@Returns: @cmap
+
+
+<!-- ##### FUNCTION gdk_colormap_unref ##### -->
+<para>
+Decrease the reference count of a colormap. If the
+resulting reference count is zero, destroys the colormap.
+</para>
+
+@cmap: a #GdkColormap.
+
+
+<!-- ##### FUNCTION gdk_colormap_get_system ##### -->
+<para>
+Returns the system's default colormap.
+</para>
+
+@Returns: the default colormap.
+
+
+<!-- ##### FUNCTION gdk_colormap_get_system_size ##### -->
+<para>
+Returns the size of the system's default colormap.
+(See the description of struct #GdkColormap for an
+explanation of the size of a colormap.)
+</para>
+
+@Returns: the size of the system's default colormap.
+
+
+<!-- ##### FUNCTION gdk_colormap_change ##### -->
+<para>
+Change the value of the first @ncolors in a private colormap
+to match the values in the <structfield>colors</structfield>
+array in the color map. This function is obsolete and
+should not be used. See gdk_color_change().
+</para>
+
+@colormap: a #GdkColormap.
+@ncolors: the number of colors to change.
+
+
+<!-- ##### FUNCTION gdk_colormap_alloc_colors ##### -->
+<para>
+Allocates colors from a colormap.
+</para>
+
+@colormap: a #GdkColormap.
+@colors: The color values to allocate. On return, the pixel
+ values for allocated colors will be filled in.
+@ncolors: The number of colors in @colors.
+@writeable: If %TRUE, the colors are allocated writeable
+ (their values can later be changed using gdk_color_change()).
+ Writeable colors cannot be shared between applications.
+@best_match: If %TRUE, GDK will attempt to do matching against
+ existing colors if the colors cannot be allocated as
+ requested.
+@success: An array of length @ncolors. On return, this
+ indicates whether the corresponding color in @colors was
+ sucessfully allocated or not.
+@Returns: The number of colors that were not sucessfully
+ allocated.
+
+
+<!-- ##### FUNCTION gdk_colormap_alloc_color ##### -->
+<para>
+Allocate a single color from a colormap.
+</para>
+
+@colormap: a #GdkColormap.
+@color: the color to allocate. On return the
+<structfield>pixel</structfield> field will be
+filled in if allocation succeeds.
+@writeable: If %TRUE, the color is allocated writeable
+ (their values can later be changed using gdk_color_change()).
+ Writeable colors cannot be shared between applications.
+@best_match: If %TRUE, GDK will attempt to do matching against
+ existing colors if the color cannot be allocated as
+ requested.
+@Returns: %TRUE if the allocation succeeded.
+
+
+<!-- ##### FUNCTION gdk_colormap_free_colors ##### -->
+<para>
+Free previously allocated colors.
+</para>
+
+@colormap: a #GdkColormap.
+@colors: the colors to free.
+@ncolors: the number of colors in @colors.
+
+
+<!-- ##### FUNCTION gdk_colormap_get_visual ##### -->
+<para>
+Return the visual for which a given colormap was created.
+</para>
+
+@colormap: a #GdkColormap.
+@Returns: the visual of the colormap.
+
+
+<!-- ##### FUNCTION gdk_colors_store ##### -->
+<para>
+Change the value of the first @ncolors colors in
+a private colormap. This function is obsolete and
+should not be used. See gdk_color_change().
+</para>
+
+@colormap: a #GdkColormap.
+@colors: the new color values.
+@ncolors: the number of colors to change.
+
+
+<!-- ##### FUNCTION gdk_color_copy ##### -->
+<para>
+Make a copy of a color structure. The result
+must be freed using gdk_color_free().
+</para>
+
+@color: a #GdkColor.
+@Returns: a copy of @color.
+
+
+<!-- ##### FUNCTION gdk_color_free ##### -->
+<para>
+Free a color structure created with
+gdk_color_copy().
+</para>
+
+@color: a #GdkColor.
+
+
+<!-- ##### FUNCTION gdk_colors_alloc ##### -->
+<para>
+Allocate colors from a colormap. This function
+is obsolete. See gdk_colormap_alloc_colors().
+For full documentation of the fields, see
+the Xlib documentation for XAllocColorCells.
+</para>
+
+@colormap: a #GdkColormap.
+@contiguous: if %TRUE, the colors should be allocated
+ in contiguous color cells.
+@planes: an array in which to store the plane masks.
+@nplanes: the number of planes to allocate. (Or zero,
+ to indicate that the color allocation should not be
+ planar.)
+@pixels: an array into which to store allocated pixel
+ values.
+@npixels: the number of pixels in each plane to allocate.
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_colors_free ##### -->
+<para>
+Free colors allocated with gdk_colors_alloc(). This
+function is obsolete. See gdk_colormap_free_colors().
+</para>
+
+@colormap: a #GdkColormap.
+@pixels: the pixel values of the colors to free.
+@npixels: the number of values in @pixels.
+@planes: the plane masks for all planes to free, OR'd
+ together.
+
+
+<!-- ##### FUNCTION gdk_color_white ##### -->
+<para>
+Return the white color for a given colormap. The resulting
+value has already allocated been allocated.
+</para>
+
+@colormap: a #GdkColormap.
+@color: the location to store the color.
+@Returns: %TRUE if the allocation succeeded.
+
+
+<!-- ##### FUNCTION gdk_color_black ##### -->
+<para>
+Return the black color for a given colormap. The resulting
+value has already benn allocated.
+</para>
+
+@colormap: a #GdkColormap.
+@color: the location to store the color.
+@Returns: %TRUE if the allocation succeeded.
+
+
+<!-- ##### FUNCTION gdk_color_parse ##### -->
+<para>
+Parse a textual specification of a color and fill in
+the <structfield>red</structfield>,
+<structfield>green</structfield>, and
+<structfield>blue</structfield> fields of a
+#GdkColor structure. The color is <emphasis>not</emphasis>
+allocated, you must call gdk_colormap_alloc_color() yourself.
+The text string can be in any of the forms accepted
+by <function>XParseColor</function>; these include
+name for a color from <filename>rgb.txt</filename>, such as
+<literal>DarkSlateGray</literal>, or a hex specification
+such as <literal>305050</literal>.
+</para>
+
+@spec: the string specifying the color.
+@color: the #GdkColor to fill in
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_color_alloc ##### -->
+<para>
+Allocate a single color from a colormap.
+This function is obsolete. See gdk_colormap_alloc_color().
+</para>
+
+@colormap: a #GdkColormap.
+@color: The color to allocate. On return, the
+<structfield>pixel</structfield> field will be
+filled in.
+@Returns: %TRUE if the allocation succeeded.
+
+
+<!-- ##### FUNCTION gdk_color_change ##### -->
+<para>
+Change the value of a color that has already
+been allocated. If @colormap is not a private
+colormap, then the color must have been allocated
+using gdk_colormap_alloc_colors() with the
+@writeable set to %TRUE.
+</para>
+
+@colormap: a #GdkColormap.
+@color: a #GdkColor, with the color to change
+in the <structfield>pixel</structfield> field,
+and the new value in the remaining fields.
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_color_equal ##### -->
+<para>
+Compare two colors.
+</para>
+
+@colora: a #GdkColor.
+@colorb: another #GdkColor.
+@Returns: %TRUE if the two colors compare equal
+
+
+<!-- ##### FUNCTION gdk_color_hash ##### -->
+<para>
+A hash function suitable for using for a hash
+table that stores #GdkColor's.
+</para>
+
+@colora: a #GdkColor.
+@colorb: NOT USED.
+@Returns: The hash function appled to @colora
+
+
diff --git a/docs/reference/gdk/tmpl/cursors.sgml b/docs/reference/gdk/tmpl/cursors.sgml
new file mode 100644
index 000000000..3757f955c
--- /dev/null
+++ b/docs/reference/gdk/tmpl/cursors.sgml
@@ -0,0 +1,98 @@
+<!-- ##### SECTION Title ##### -->
+Cursors
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GdkCursor ##### -->
+<para>
+
+</para>
+
+@type:
+
+<!-- ##### ENUM GdkCursorType ##### -->
+<para>
+The standard cursors available.
+</para>
+
+
+<!-- ##### FUNCTION gdk_cursor_new ##### -->
+<para>
+Creates a new standard cursor.
+</para>
+
+@cursor_type: the type of the cursor.
+@Returns: a new #GdkCursor.
+
+
+<!-- ##### FUNCTION gdk_cursor_new_from_pixmap ##### -->
+<para>
+Creates a new cursor from a given pixmap and mask. Both the pixmap and mask
+must have a depth of 1 (i.e. each pixel has only 2 values - on or off).
+</para>
+<example><title>Creating a custom cursor.</title>
+<programlisting>
+/* This data is in X bitmap format, and can be created with the 'bitmap'
+ utility. */
+#define cursor1_width 16
+#define cursor1_height 16
+static unsigned char cursor1_bits[] = {
+ 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x08, 0x08, 0x10, 0x04, 0x20,
+ 0x82, 0x41, 0x41, 0x82, 0x41, 0x82, 0x82, 0x41, 0x04, 0x20, 0x08, 0x10,
+ 0x10, 0x08, 0x20, 0x04, 0x40, 0x02, 0x80, 0x01};
+
+static unsigned char cursor1mask_bits[] = {
+ 0x80, 0x01, 0xc0, 0x03, 0x60, 0x06, 0x30, 0x0c, 0x18, 0x18, 0x8c, 0x31,
+ 0xc6, 0x63, 0x63, 0xc6, 0x63, 0xc6, 0xc6, 0x63, 0x8c, 0x31, 0x18, 0x18,
+ 0x30, 0x0c, 0x60, 0x06, 0xc0, 0x03, 0x80, 0x01};
+
+
+ GdkCursor *cursor;
+ GdkPixmap *source, *mask;
+ GdkColor fg = { 0, 65535, 0, 0 }; /* Red. */
+ GdkColor bg = { 0, 0, 0, 65535 }; /* Blue. */
+
+
+ source = gdk_bitmap_create_from_data (NULL, cursor1_bits,
+ cursor1_width, cursor1_height);
+ mask = gdk_bitmap_create_from_data (NULL, cursor1mask_bits,
+ cursor1_width, cursor1_height);
+ cursor = gdk_cursor_new_from_pixmap (source, mask, &amp;fg, &amp;bg, 8, 8);
+ gdk_pixmap_unref (source);
+ gdk_pixmap_unref (mask);
+
+
+ gdk_window_set_cursor (widget->window, cursor);
+</programlisting>
+</example>
+
+@source: the pixmap specifying the cursor.
+@mask: the pixmap specifying the mask, which must be the same size as @source.
+@fg: the foreground color, used for the bits in the source which are 1.
+The color does not have to be allocated first.
+@bg: the background color, used for the bits in the source which are 0.
+The color does not have to be allocated first.
+@x: the horizontal offset of the 'hotspot' of the cursor.
+@y: the vertical offset of the 'hotspot' of the cursor.
+@Returns: a new #GdkCursor.
+
+
+<!-- ##### FUNCTION gdk_cursor_destroy ##### -->
+<para>
+Destroys a cursor, freeing any resources allocated for it.
+</para>
+
+@cursor: a #GdkCursor.
+
+
diff --git a/docs/reference/gdk/tmpl/dnd.sgml b/docs/reference/gdk/tmpl/dnd.sgml
new file mode 100644
index 000000000..1d7110169
--- /dev/null
+++ b/docs/reference/gdk/tmpl/dnd.sgml
@@ -0,0 +1,187 @@
+<!-- ##### SECTION Title ##### -->
+Drag and Drop
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION gdk_drag_get_selection ##### -->
+<para>
+
+</para>
+
+@context:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_drag_abort ##### -->
+<para>
+
+</para>
+
+@context:
+@time:
+
+
+<!-- ##### FUNCTION gdk_drop_reply ##### -->
+<para>
+
+</para>
+
+@context:
+@ok:
+@time:
+
+
+<!-- ##### FUNCTION gdk_drag_context_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_drag_drop ##### -->
+<para>
+
+</para>
+
+@context:
+@time:
+
+
+<!-- ##### FUNCTION gdk_drag_find_window ##### -->
+<para>
+
+</para>
+
+@context:
+@drag_window:
+@x_root:
+@y_root:
+@dest_window:
+@protocol:
+
+
+<!-- ##### FUNCTION gdk_drag_context_ref ##### -->
+<para>
+
+</para>
+
+@context:
+
+
+<!-- ##### FUNCTION gdk_drag_begin ##### -->
+<para>
+
+</para>
+
+@window:
+@targets:
+@Returns:
+<!-- # Unused Parameters # -->
+@actions:
+
+
+<!-- ##### FUNCTION gdk_drag_motion ##### -->
+<para>
+
+</para>
+
+@context:
+@dest_window:
+@protocol:
+@x_root:
+@y_root:
+@suggested_action:
+@possible_actions:
+@time:
+@Returns:
+<!-- # Unused Parameters # -->
+@action:
+
+
+<!-- ##### FUNCTION gdk_drop_finish ##### -->
+<para>
+
+</para>
+
+@context:
+@success:
+@time:
+
+
+<!-- ##### FUNCTION gdk_drag_get_protocol ##### -->
+<para>
+
+</para>
+
+@xid:
+@protocol:
+@Returns:
+
+
+<!-- ##### ENUM GdkDragProtocol ##### -->
+<para>
+
+</para>
+
+@GDK_DRAG_PROTO_MOTIF:
+@GDK_DRAG_PROTO_XDND:
+@GDK_DRAG_PROTO_ROOTWIN:
+@GDK_DRAG_PROTO_NONE:
+
+<!-- ##### FUNCTION gdk_drag_context_unref ##### -->
+<para>
+
+</para>
+
+@context:
+
+
+<!-- ##### STRUCT GdkDragContext ##### -->
+<para>
+
+</para>
+
+@protocol:
+@is_source:
+@source_window:
+@dest_window:
+@targets:
+@actions:
+@suggested_action:
+@action:
+@start_time:
+
+<!-- ##### ENUM GdkDragAction ##### -->
+<para>
+
+</para>
+
+@GDK_ACTION_DEFAULT:
+@GDK_ACTION_COPY:
+@GDK_ACTION_MOVE:
+@GDK_ACTION_LINK:
+@GDK_ACTION_PRIVATE:
+@GDK_ACTION_ASK:
+
+<!-- ##### FUNCTION gdk_drag_status ##### -->
+<para>
+
+</para>
+
+@context:
+@action:
+@time:
+
+
diff --git a/docs/reference/gdk/tmpl/drawing.sgml b/docs/reference/gdk/tmpl/drawing.sgml
new file mode 100644
index 000000000..159690bac
--- /dev/null
+++ b/docs/reference/gdk/tmpl/drawing.sgml
@@ -0,0 +1,260 @@
+<!-- ##### SECTION Title ##### -->
+Drawing Primitives
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ENUM GdkFill ##### -->
+<para>
+
+</para>
+
+@GDK_SOLID:
+@GDK_TILED:
+@GDK_STIPPLED:
+@GDK_OPAQUE_STIPPLED:
+
+<!-- ##### ENUM GdkFillRule ##### -->
+<para>
+
+</para>
+
+@GDK_EVEN_ODD_RULE:
+@GDK_WINDING_RULE:
+
+<!-- ##### ENUM GdkLineStyle ##### -->
+<para>
+
+</para>
+
+@GDK_LINE_SOLID:
+@GDK_LINE_ON_OFF_DASH:
+@GDK_LINE_DOUBLE_DASH:
+
+<!-- ##### ENUM GdkCapStyle ##### -->
+<para>
+
+</para>
+
+@GDK_CAP_NOT_LAST:
+@GDK_CAP_BUTT:
+@GDK_CAP_ROUND:
+@GDK_CAP_PROJECTING:
+
+<!-- ##### ENUM GdkJoinStyle ##### -->
+<para>
+
+</para>
+
+@GDK_JOIN_MITER:
+@GDK_JOIN_ROUND:
+@GDK_JOIN_BEVEL:
+
+<!-- ##### FUNCTION gdk_draw_point ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@x:
+@y:
+
+
+<!-- ##### FUNCTION gdk_draw_line ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@x1:
+@y1:
+@x2:
+@y2:
+
+
+<!-- ##### FUNCTION gdk_draw_rectangle ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@filled:
+@x:
+@y:
+@width:
+@height:
+
+
+<!-- ##### FUNCTION gdk_draw_arc ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@filled:
+@x:
+@y:
+@width:
+@height:
+@angle1:
+@angle2:
+
+
+<!-- ##### FUNCTION gdk_draw_polygon ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@filled:
+@points:
+@npoints:
+
+
+<!-- ##### FUNCTION gdk_draw_string ##### -->
+<para>
+
+</para>
+
+@drawable:
+@font:
+@gc:
+@x:
+@y:
+@string:
+
+
+<!-- ##### FUNCTION gdk_draw_text ##### -->
+<para>
+
+</para>
+
+@drawable:
+@font:
+@gc:
+@x:
+@y:
+@text:
+@text_length:
+
+
+<!-- ##### FUNCTION gdk_draw_text_wc ##### -->
+<para>
+
+</para>
+
+@drawable:
+@font:
+@gc:
+@x:
+@y:
+@text:
+@text_length:
+
+
+<!-- ##### FUNCTION gdk_draw_pixmap ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@src:
+@xsrc:
+@ysrc:
+@xdest:
+@ydest:
+@width:
+@height:
+
+
+<!-- ##### FUNCTION gdk_draw_bitmap ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@src:
+@xsrc:
+@ysrc:
+@xdest:
+@ydest:
+@width:
+@height:
+
+
+<!-- ##### FUNCTION gdk_draw_image ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@image:
+@xsrc:
+@ysrc:
+@xdest:
+@ydest:
+@width:
+@height:
+
+
+<!-- ##### FUNCTION gdk_draw_points ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@points:
+@npoints:
+
+
+<!-- ##### FUNCTION gdk_draw_segments ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@segs:
+@nsegs:
+
+
+<!-- ##### STRUCT GdkSegment ##### -->
+<para>
+
+</para>
+
+@x1:
+@y1:
+@x2:
+@y2:
+
+<!-- ##### FUNCTION gdk_draw_lines ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@points:
+@npoints:
+
+
diff --git a/docs/reference/gdk/tmpl/event_structs.sgml b/docs/reference/gdk/tmpl/event_structs.sgml
new file mode 100644
index 000000000..e2dac3942
--- /dev/null
+++ b/docs/reference/gdk/tmpl/event_structs.sgml
@@ -0,0 +1,257 @@
+<!-- ##### SECTION Title ##### -->
+Event Structures
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GdkEventAny ##### -->
+<para>
+
+</para>
+
+@type:
+@window:
+@send_event:
+
+<!-- ##### STRUCT GdkEventExpose ##### -->
+<para>
+
+</para>
+
+@type:
+@window:
+@send_event:
+@area:
+@count:
+
+<!-- ##### STRUCT GdkEventNoExpose ##### -->
+<para>
+
+</para>
+
+@type:
+@window:
+@send_event:
+
+<!-- ##### STRUCT GdkEventVisibility ##### -->
+<para>
+
+</para>
+
+@type:
+@window:
+@send_event:
+@state:
+
+<!-- ##### ENUM GdkVisibilityState ##### -->
+<para>
+
+</para>
+
+@GDK_VISIBILITY_UNOBSCURED:
+@GDK_VISIBILITY_PARTIAL:
+@GDK_VISIBILITY_FULLY_OBSCURED:
+
+<!-- ##### STRUCT GdkEventMotion ##### -->
+<para>
+
+</para>
+
+@type:
+@window:
+@send_event:
+@time:
+@x:
+@y:
+@pressure:
+@xtilt:
+@ytilt:
+@state:
+@is_hint:
+@source:
+@deviceid:
+@x_root:
+@y_root:
+
+<!-- ##### STRUCT GdkEventButton ##### -->
+<para>
+
+</para>
+
+@type:
+@window:
+@send_event:
+@time:
+@x:
+@y:
+@pressure:
+@xtilt:
+@ytilt:
+@state:
+@button:
+@source:
+@deviceid:
+@x_root:
+@y_root:
+
+<!-- ##### STRUCT GdkEventKey ##### -->
+<para>
+
+</para>
+
+@type:
+@window:
+@send_event:
+@time:
+@state:
+@keyval:
+@length:
+@string:
+
+<!-- ##### STRUCT GdkEventCrossing ##### -->
+<para>
+
+</para>
+
+@type:
+@window:
+@send_event:
+@subwindow:
+@time:
+@x:
+@y:
+@x_root:
+@y_root:
+@mode:
+@detail:
+@focus:
+@state:
+
+<!-- ##### ENUM GdkCrossingMode ##### -->
+<para>
+
+</para>
+
+@GDK_CROSSING_NORMAL:
+@GDK_CROSSING_GRAB:
+@GDK_CROSSING_UNGRAB:
+
+<!-- ##### ENUM GdkNotifyType ##### -->
+<para>
+
+</para>
+
+@GDK_NOTIFY_ANCESTOR:
+@GDK_NOTIFY_VIRTUAL:
+@GDK_NOTIFY_INFERIOR:
+@GDK_NOTIFY_NONLINEAR:
+@GDK_NOTIFY_NONLINEAR_VIRTUAL:
+@GDK_NOTIFY_UNKNOWN:
+
+<!-- ##### STRUCT GdkEventFocus ##### -->
+<para>
+
+</para>
+
+@type:
+@window:
+@send_event:
+@in:
+
+<!-- ##### STRUCT GdkEventConfigure ##### -->
+<para>
+
+</para>
+
+@type:
+@window:
+@send_event:
+@x:
+@y:
+@width:
+@height:
+
+<!-- ##### STRUCT GdkEventProperty ##### -->
+<para>
+
+</para>
+
+@type:
+@window:
+@send_event:
+@atom:
+@time:
+@state:
+
+<!-- ##### STRUCT GdkEventSelection ##### -->
+<para>
+
+</para>
+
+@type:
+@window:
+@send_event:
+@selection:
+@target:
+@property:
+@requestor:
+@time:
+
+<!-- ##### STRUCT GdkEventProximity ##### -->
+<para>
+
+</para>
+
+@type:
+@window:
+@send_event:
+@time:
+@source:
+@deviceid:
+
+<!-- ##### STRUCT GdkEventClient ##### -->
+<para>
+
+</para>
+
+@type:
+@window:
+@send_event:
+@message_type:
+@data_format:
+
+<!-- ##### STRUCT GdkEventDND ##### -->
+<para>
+
+</para>
+
+@type:
+@window:
+@send_event:
+@context:
+@time:
+@x_root:
+@y_root:
+
+<!-- ##### UNION GdkEvent ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### TYPEDEF GdkXEvent ##### -->
+<para>
+
+</para>
+
+
diff --git a/docs/reference/gdk/tmpl/events.sgml b/docs/reference/gdk/tmpl/events.sgml
new file mode 100644
index 000000000..126950238
--- /dev/null
+++ b/docs/reference/gdk/tmpl/events.sgml
@@ -0,0 +1,185 @@
+<!-- ##### SECTION Title ##### -->
+Events
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ENUM GdkEventType ##### -->
+<para>
+
+</para>
+
+@GDK_NOTHING:
+@GDK_DELETE:
+@GDK_DESTROY:
+@GDK_EXPOSE:
+@GDK_MOTION_NOTIFY:
+@GDK_BUTTON_PRESS:
+@GDK_2BUTTON_PRESS:
+@GDK_3BUTTON_PRESS:
+@GDK_BUTTON_RELEASE:
+@GDK_KEY_PRESS:
+@GDK_KEY_RELEASE:
+@GDK_ENTER_NOTIFY:
+@GDK_LEAVE_NOTIFY:
+@GDK_FOCUS_CHANGE:
+@GDK_CONFIGURE:
+@GDK_MAP:
+@GDK_UNMAP:
+@GDK_PROPERTY_NOTIFY:
+@GDK_SELECTION_CLEAR:
+@GDK_SELECTION_REQUEST:
+@GDK_SELECTION_NOTIFY:
+@GDK_PROXIMITY_IN:
+@GDK_PROXIMITY_OUT:
+@GDK_DRAG_ENTER:
+@GDK_DRAG_LEAVE:
+@GDK_DRAG_MOTION:
+@GDK_DRAG_STATUS:
+@GDK_DROP_START:
+@GDK_DROP_FINISHED:
+@GDK_CLIENT_EVENT:
+@GDK_VISIBILITY_NOTIFY:
+@GDK_NO_EXPOSE:
+
+<!-- ##### ENUM GdkEventMask ##### -->
+<para>
+
+</para>
+
+@GDK_EXPOSURE_MASK:
+@GDK_POINTER_MOTION_MASK:
+@GDK_POINTER_MOTION_HINT_MASK:
+@GDK_BUTTON_MOTION_MASK:
+@GDK_BUTTON1_MOTION_MASK:
+@GDK_BUTTON2_MOTION_MASK:
+@GDK_BUTTON3_MOTION_MASK:
+@GDK_BUTTON_PRESS_MASK:
+@GDK_BUTTON_RELEASE_MASK:
+@GDK_KEY_PRESS_MASK:
+@GDK_KEY_RELEASE_MASK:
+@GDK_ENTER_NOTIFY_MASK:
+@GDK_LEAVE_NOTIFY_MASK:
+@GDK_FOCUS_CHANGE_MASK:
+@GDK_STRUCTURE_MASK:
+@GDK_PROPERTY_CHANGE_MASK:
+@GDK_VISIBILITY_NOTIFY_MASK:
+@GDK_PROXIMITY_IN_MASK:
+@GDK_PROXIMITY_OUT_MASK:
+@GDK_SUBSTRUCTURE_MASK:
+@GDK_ALL_EVENTS_MASK:
+
+<!-- ##### FUNCTION gdk_events_pending ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_event_peek ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_event_get ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_event_get_graphics_expose ##### -->
+<para>
+
+</para>
+
+@window:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_event_put ##### -->
+<para>
+
+</para>
+
+@event:
+
+
+<!-- ##### FUNCTION gdk_event_copy ##### -->
+<para>
+
+</para>
+
+@event:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_event_free ##### -->
+<para>
+
+</para>
+
+@event:
+
+
+<!-- ##### FUNCTION gdk_event_get_time ##### -->
+<para>
+
+</para>
+
+@event:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_event_handler_set ##### -->
+<para>
+
+</para>
+
+@func:
+@data:
+@notify:
+
+
+<!-- ##### FUNCTION gdk_event_send_client_message ##### -->
+<para>
+
+</para>
+
+@event:
+@xid:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION GdkEventFunc ##### -->
+<para>
+
+</para>
+
+@event:
+@data:
+
+
+<!-- ##### FUNCTION gdk_event_send_clientmessage_toall ##### -->
+<para>
+
+</para>
+
+@event:
+
+
diff --git a/docs/reference/gdk/tmpl/fonts.sgml b/docs/reference/gdk/tmpl/fonts.sgml
new file mode 100644
index 000000000..841b58208
--- /dev/null
+++ b/docs/reference/gdk/tmpl/fonts.sgml
@@ -0,0 +1,581 @@
+<!-- ##### SECTION Title ##### -->
+Fonts
+
+<!-- ##### SECTION Short_Description ##### -->
+loading and manipulating fonts
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+The GdkFont data type represents a font for drawing on
+the screen. These functions provide support for
+loading fonts, and also for determining the dimensions
+of characters and strings when drawn with a particular
+font.
+</para>
+
+<para>
+Fonts in X are specified by a
+<firstterm>X Logical Font Description</firstterm>.
+The following description is considerably simplified.
+For definitive information about XLFD's see the
+X reference documentation. A X Logical Font Description (XLFD)
+consists of a sequence of fields separated (and surrounded by) '-'
+characters. For example, Adobe Helvetica Bold 12 pt, has the
+full description:
+
+<programlisting>
+"-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1"
+</programlisting>
+</para>
+
+<para>
+The fields in the XLFD are:
+
+<informaltable pgwide=1 frame="none">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry>Foundry</entry>
+<entry>the company or organization where the font originated.</entry>
+</row>
+
+<row>
+<entry>Family</entry>
+<entry>the font family (a group of related font designs).</entry>
+</row>
+
+<row>
+<entry>Weight</entry>
+<entry>A name for the font's typographic weight
+For example, 'bold' or 'medium').</entry>
+</row>
+
+<row>
+<entry>Slant</entry>
+<entry>The slant of the font. Common values are 'R' for Roman,
+'I' for italoc, and 'O' for oblique.</entry>
+</row>
+
+<row>
+<entry>Set Width</entry>
+<entry>A name for the width of the font. For example,
+'normal' or 'condensed'.</entry>
+</row>
+
+<row>
+<entry>Add Style</entry>
+<entry>Additional information to distinguish a font from
+other fonts of the same family.</entry>
+</row>
+
+<row>
+<entry>Pixel Size</entry>
+<entry>The body size of the font in pixels.</entry>
+</row>
+
+<row>
+<entry>Point Size</entry>
+<entry>The body size of the font in 10ths of a point.
+(A <firstterm>point</firstterm> is 1/72.27 inch) </entry>
+</row>
+
+<row>
+<entry>Resolution X</entry>
+<entry>The horizontal resolution that the font was designed for.</entry>
+</row>
+
+<row>
+<entry>Resolution Y</entry>
+<entry>The vertical resolution that the font was designed for .</entry>
+</row>
+
+<row>
+<entry>Spacing</entry>
+<entry>The type of spacing for the font - can be 'p' for proportional,
+'m' for monospaced or 'c' for charcell.</entry>
+</row>
+
+<row>
+<entry>Average Width</entry>
+<entry>The average width of a glyph in the font. For monospaced
+and charcell fonts, all glyphs in the font have this width</entry>
+</row>
+
+<row>
+<entry>Charset Registry</entry>
+<entry>The registration authority that owns the encoding for
+the font. Together with the Charset Encoding field, this
+defines the character set for the font.</entry>
+</row>
+
+<row>
+<entry>Charset Encoding</entry>
+<entry>An identifier for the particular character set encoding.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
+</para>
+
+<para>
+When specifying a font via a X logical Font Description,
+'*' can be used as a wildcard to match any portion of
+the XLFD. For instance, the above example could
+also be specified as
+
+<programlisting>
+"-*-helvetica-bold-r-normal--*-120-*-*-*-*-iso8859-1"
+</programlisting>
+
+It is generally a good idea to use wildcards for any
+portion of the XLFD that your program does not care
+about specifically, since that will improve the
+chances of finding a matching font.
+</para>
+
+<para>
+A <firstterm>fontset</firstterm> is a list of fonts
+that is used for drawing international text that may
+contain characters from a number of different character
+sets. It is represented by a list of XLFD's.
+</para>
+
+<para>
+The font for a given character set is determined by going
+through the list of XLFD's in order. For each one, if
+the registry and and encoding fields match the desired
+character set, then that font is used, otherwise if
+the XLFD contains wild-cards for the registry and encoding
+fields, the registry and encoding for the desired character
+set are subsituted in and a lookup is done. If a match is found
+that font is used. Otherwise, processing continues
+on to the next font in the list.
+</para>
+
+<para>
+The functions for determining the metrics of a string
+come in several varieties that can take a number
+of forms of string input:
+
+<variablelist>
+ <varlistentry>
+ <term>8-bit string</term>
+ <listitem><para>
+ When using functions like gdk_string_width() that
+ take a <type>gchar *</type>, if the font is of type
+ %GDK_FONT_FONT and is an 8-bit font, then each
+ <type>gchar</type> indexes the glyphs in the font directly.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>16-bit string</term>
+ <listitem><para>
+ For functions taking a <type>gchar *</type>, if the
+ font is of type %GDK_FONT_FONT, and is a 16-bit
+ font, then the <type>gchar *</type> argument is
+ interpreted as a <type>guint16 *</type> cast to
+ a <type>gchar *</type> and each <type>guint16</type>
+ indexes the glyphs in the font directly.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Multibyte string</term>
+ <listitem><para>
+ For functions taking a <type>gchar *</type>, if the
+ font is of type %GDK_FONT_FONTSET, then the input
+ string is interpreted as a <firstterm>multibyte</firstterm>
+ encoded according to the current locale. (A multibyte
+ string is one in which each character may consist
+ of one or more bytes, with different lengths for different
+ characters in the string). They can be converted to and
+ from wide character strings (see below) using
+ gdk_wcstombs() and gdk_mbstowcs().) The string will
+ be rendered using one or more different fonts from
+ the fontset.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Wide character string</term>
+ <listitem><para>
+ For a number of the text-measuring functions, GTK+
+ provides a variant (such as gdk_text_width_wc()) which
+ takes a <type>GdkWChar *</type> instead of a
+ <type>gchar *</type>. The input is then taken to
+ be a wide character string in the encoding of the
+ current locale. (A wide character string is a string
+ in which each character consists of several bytes,
+ and the width of each character in the string is
+ constant.)
+ </para></listitem>
+ </varlistentry>
+</variablelist>
+</para>
+
+<para>
+GDK provides functions to determine a number of different
+measurements (metrics) for a given string. (Need diagram
+here).
+
+<variablelist>
+ <varlistentry>
+ <term>ascent</term>
+ <listitem><para>
+ The vertical distance from the origin of the drawing
+ opereration to the top of the drawn character.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>descent</term>
+ <listitem><para>
+ The vertical distance from the origin of the drawing
+ opereration to the bottom of the drawn character.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>left bearing</term>
+ <listitem><para>
+ The horizontal distance from the origin of the drawing
+ operation to the left-most part of the drawn character.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>right bearing</term>
+ <listitem><para>
+ The horizontal distance from the origin of the drawing
+ operation to the right-most part of the drawn character.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>width bearing</term>
+ <listitem><para>
+ The horizontal distance from the origin of the drawing
+ operation to the correct origin for drawing another
+ string to follow the current one. Depending on the
+ font, this could be greater than or less than the
+ right bearing.
+ </para></listitem>
+ </varlistentry>
+</variablelist>
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GdkFont ##### -->
+<para>
+The GdkFont structure represents a font or fontset. It
+contains the following public fields. A new GdkFont
+structure is returned by gdk_font_load() or gdk_fontset_load(),
+and is reference counted with gdk_font_ref() and gdk_font_unref()
+
+<informaltable pgwide=1 frame="none" role="struct">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry><structfield>type</structfield></entry>
+<entry>a value of type #GdkFontType which indicates
+whether this font is a single font or a fontset.</entry>
+</row>
+
+<row>
+<entry><structfield>ascent</structfield></entry>
+<entry>the maximum distance that the font, when drawn,
+ascends above the baseline.</entry>
+</row>
+
+<row>
+<entry><structfield>descent</structfield></entry>
+<entry>the maximum distance that the font, when drawn,
+descends below the baseline.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
+</para>
+
+@type:
+@ascent:
+@descent:
+
+<!-- ##### ENUM GdkFontType ##### -->
+<para>
+Indicates the type of a font. The possible values
+are currently:
+
+<informaltable pgwide=1 frame="none" role="enum">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry>GDK_FONT_FONT</entry>
+<entry>the font is a single font.</entry>
+</row>
+
+<row>
+<entry>GDK_FONT_FONT</entry>
+<entry>the font is a fontset.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
+</para>
+
+@GDK_FONT_FONT:
+@GDK_FONT_FONTSET:
+
+<!-- ##### FUNCTION gdk_font_load ##### -->
+<para>
+Loads a font.
+</para>
+
+<para>
+Currently, this function will always return a new
+font, however, in the future, it may be changed to
+look up the font in a cache. You should make no
+assumptions about the initial reference count.
+</para>
+
+@font_name: a XLFD describing the font to load.
+@Returns: a #GdkFont, or NULL if the font could not be loaded.
+
+
+<!-- ##### FUNCTION gdk_fontset_load ##### -->
+<para>
+Loads a fontset.
+</para>
+<para>
+Currently this function will always return a new
+font, however, in the future, it may be changed to
+look up the font in a cache. You should make no
+assumptions about the initial reference count.
+</para>
+
+@fontset_name: a comma-separated list of XLFDs describing
+ the component fonts of the fontset to load.
+@Returns: a #GdkFont, or NULL if the fontset could not be loaded.
+
+
+<!-- ##### FUNCTION gdk_font_ref ##### -->
+<para>
+Increase the reference count of a count by one.
+</para>
+
+@font: a #GdkFont
+@Returns: @font
+
+
+<!-- ##### FUNCTION gdk_font_unref ##### -->
+<para>
+Decrease the reference count of a count by one.
+If the result is zero, destroys the font.
+</para>
+
+@font: a #GdkFont
+
+
+<!-- ##### FUNCTION gdk_font_id ##### -->
+<para>
+Returns the X Font ID for the given font.
+</para>
+
+@font: a #GdkFont.
+@Returns: the numeric X Font ID
+
+
+<!-- ##### FUNCTION gdk_font_equal ##### -->
+<para>
+Compares two fonts for equality. Single fonts compare equal
+if they have the same X font ID. This operation does
+not currently work correctly for fontsets.
+</para>
+
+@fonta: a #GdkFont.
+@fontb: another #GdkFont.
+@Returns: %TRUE if the fonts are equal.
+
+
+<!-- ##### FUNCTION gdk_string_extents ##### -->
+<para>
+Returns the metrics of a NULL-terminated string.
+</para>
+
+@font: a #GdkFont.
+@string: the NULL-terminated string to measure.
+@lbearing: the left bearing of the string.
+@rbearing: the right bearing of the string.
+@width: the width of the string.
+@ascent: the ascent of the string.
+@descent: the descent of the string.
+
+
+<!-- ##### FUNCTION gdk_text_extents ##### -->
+<para>
+Returns the metrics of a string.
+</para>
+
+@font: a #GdkFont
+@text: the text to measure
+@text_length: the length of the text in bytes. (If the
+ font is a 16-bit font, this is twice the length
+ of the text in characters.)
+@lbearing: the left bearing of the string.
+@rbearing: the right bearing of the string.
+@width: the width of the string.
+@ascent: the ascent of the string.
+@descent: the descent of the string.
+
+
+<!-- ##### FUNCTION gdk_text_extents_wc ##### -->
+<para>
+Returns the metrics of a string of wide characters.
+</para>
+
+@font: a #GdkFont
+@text: the text to measure.
+@text_length: the length of the text in character.
+@lbearing: the left bearing of the string.
+@rbearing: the right bearing of the string.
+@width: the width of the string.
+@ascent: the ascent of the string.
+@descent: the descent of the string.
+
+
+<!-- ##### FUNCTION gdk_string_width ##### -->
+<para>
+Determine the width of a NULL-terminated string.
+(The distance from the origin of the string to the
+point where the next string in a sequence of strings
+should be drawn)
+</para>
+
+@font: a #GdkFont
+@string: the NULL-terminated string to measure
+@Returns: the width of the string in pixels.
+
+
+<!-- ##### FUNCTION gdk_text_width ##### -->
+<para>
+Determine the width of a given string.
+</para>
+
+@font: a #GdkFont
+@text: the text to measure.
+@text_length: the length of the text in bytes.
+@Returns: the width of the string in pixels.
+
+
+<!-- ##### FUNCTION gdk_text_width_wc ##### -->
+<para>
+Determine the width of a given wide-character string.
+</para>
+
+@font: a #GdkFont
+@text: the text to measure.
+@text_length: the length of the text in characters.
+@Returns: the width of the string in pixels.
+
+
+<!-- ##### FUNCTION gdk_char_width ##### -->
+<para>
+Determine the width of a given character.
+</para>
+
+@font: a #GdkFont
+@character: the character to measure.
+@Returns: the width of the character in pixels.
+
+
+<!-- ##### FUNCTION gdk_char_width_wc ##### -->
+<para>
+Determine the width of a given wide character. (Encoded
+in the wide-character encoding of the current locale).
+</para>
+
+@font: a #GdkFont
+@character: the character to measure.
+@Returns: the width of the character in pixels.
+
+
+<!-- ##### FUNCTION gdk_string_measure ##### -->
+<para>
+Determines the distance from the origin to the rightmost
+portion of a NULL-terminated string when drawn. This is not the
+correct value for determining the origin of the next
+portion when drawing text in multiple pieces.
+See gdk_string_width().
+</para>
+
+@font: a #GdkFont
+@string: the NULL-terminated string to measure.
+@Returns: the right bearing of the string in pixels.
+
+
+<!-- ##### FUNCTION gdk_text_measure ##### -->
+<para>
+Determines the distance from the origin to the rightmost
+portion of a string when drawn. This is not the
+correct value for determining the origin of the next
+portion when drawing text in multiple pieces.
+See gdk_text_width().
+</para>
+
+@font: a #GdkFont
+@text: the text to measure.
+@text_length: the length of the text in bytes.
+@Returns: the right bearing of the string in pixels.
+
+
+<!-- ##### FUNCTION gdk_char_measure ##### -->
+<para>
+Determines the distance from the origin to the rightmost
+portion of a character when drawn. This is not the
+correct value for determining the origin of the next
+portion when drawing text in multiple pieces.
+</para>
+
+@font: a #GdkFont
+@character: the character to measure.
+@Returns: the right bearing of the character in pixels.
+
+
+<!-- ##### FUNCTION gdk_string_height ##### -->
+<para>
+Determines the total height of a given NULL-terminated
+string. This value is not generally useful, because you
+cannot determine how this total height will be drawn in
+relation to the baseline. See gdk_string_extents().
+</para>
+
+@font: a #GdkFont
+@string: the NULL-terminated string to measure.
+@Returns: the height of the string in pixels.
+
+
+<!-- ##### FUNCTION gdk_text_height ##### -->
+<para>
+Determines the total height of a given string.
+This value is not generally useful, because you cannot
+determine how this total height will be drawn in
+relation to the baseline. See gdk_text_extents().
+</para>
+
+@font: a #GdkFont
+@text: the text to measure.
+@text_length: the length of the text in bytes.
+@Returns: the height of the string in pixels.
+
+
+<!-- ##### FUNCTION gdk_char_height ##### -->
+<para>
+Determines the total height of a given character.
+This value is not generally useful, because you cannot
+determine how this total height will be drawn in
+relation to the baseline. See gdk_text_extents().
+</para>
+
+@font: a #GdkFont
+@character: the character to measure.
+@Returns: the height of the character in pixels.
+
+
diff --git a/docs/reference/gdk/tmpl/gcs.sgml b/docs/reference/gdk/tmpl/gcs.sgml
new file mode 100644
index 000000000..101e3a305
--- /dev/null
+++ b/docs/reference/gdk/tmpl/gcs.sgml
@@ -0,0 +1,314 @@
+<!-- ##### SECTION Title ##### -->
+Graphics Contexts
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GdkGC ##### -->
+<para>
+
+</para>
+
+@dummy_var:
+
+<!-- ##### STRUCT GdkGCValues ##### -->
+<para>
+
+</para>
+
+@foreground:
+@background:
+@font:
+@function:
+@fill:
+@tile:
+@stipple:
+@clip_mask:
+@subwindow_mode:
+@ts_x_origin:
+@ts_y_origin:
+@clip_x_origin:
+@clip_y_origin:
+@graphics_exposures:
+@line_width:
+@line_style:
+@cap_style:
+@join_style:
+
+<!-- ##### ENUM GdkGCValuesMask ##### -->
+<para>
+
+</para>
+
+@GDK_GC_FOREGROUND:
+@GDK_GC_BACKGROUND:
+@GDK_GC_FONT:
+@GDK_GC_FUNCTION:
+@GDK_GC_FILL:
+@GDK_GC_TILE:
+@GDK_GC_STIPPLE:
+@GDK_GC_CLIP_MASK:
+@GDK_GC_SUBWINDOW:
+@GDK_GC_TS_X_ORIGIN:
+@GDK_GC_TS_Y_ORIGIN:
+@GDK_GC_CLIP_X_ORIGIN:
+@GDK_GC_CLIP_Y_ORIGIN:
+@GDK_GC_EXPOSURES:
+@GDK_GC_LINE_WIDTH:
+@GDK_GC_LINE_STYLE:
+@GDK_GC_CAP_STYLE:
+@GDK_GC_JOIN_STYLE:
+
+<!-- ##### ENUM GdkFunction ##### -->
+<para>
+
+</para>
+
+@GDK_COPY:
+@GDK_INVERT:
+@GDK_XOR:
+@GDK_CLEAR:
+@GDK_AND:
+@GDK_AND_REVERSE:
+@GDK_AND_INVERT:
+@GDK_NOOP:
+@GDK_OR:
+@GDK_EQUIV:
+@GDK_OR_REVERSE:
+@GDK_COPY_INVERT:
+@GDK_OR_INVERT:
+@GDK_NAND:
+@GDK_SET:
+
+<!-- ##### FUNCTION gdk_gc_new ##### -->
+<para>
+
+</para>
+
+@window:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_gc_new_with_values ##### -->
+<para>
+
+</para>
+
+@window:
+@values:
+@values_mask:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_gc_ref ##### -->
+<para>
+
+</para>
+
+@gc:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_gc_unref ##### -->
+<para>
+
+</para>
+
+@gc:
+
+
+<!-- ##### FUNCTION gdk_gc_destroy ##### -->
+<para>
+
+</para>
+
+@gc:
+
+
+<!-- ##### FUNCTION gdk_gc_get_values ##### -->
+<para>
+
+</para>
+
+@gc:
+@values:
+
+
+<!-- ##### FUNCTION gdk_gc_set_foreground ##### -->
+<para>
+
+</para>
+
+@gc:
+@color:
+
+
+<!-- ##### FUNCTION gdk_gc_set_background ##### -->
+<para>
+
+</para>
+
+@gc:
+@color:
+
+
+<!-- ##### FUNCTION gdk_gc_set_font ##### -->
+<para>
+
+</para>
+
+@gc:
+@font:
+
+
+<!-- ##### FUNCTION gdk_gc_set_function ##### -->
+<para>
+
+</para>
+
+@gc:
+@function:
+
+
+<!-- ##### FUNCTION gdk_gc_set_fill ##### -->
+<para>
+
+</para>
+
+@gc:
+@fill:
+
+
+<!-- ##### FUNCTION gdk_gc_set_tile ##### -->
+<para>
+
+</para>
+
+@gc:
+@tile:
+
+
+<!-- ##### FUNCTION gdk_gc_set_stipple ##### -->
+<para>
+
+</para>
+
+@gc:
+@stipple:
+
+
+<!-- ##### FUNCTION gdk_gc_set_ts_origin ##### -->
+<para>
+
+</para>
+
+@gc:
+@x:
+@y:
+
+
+<!-- ##### FUNCTION gdk_gc_set_clip_origin ##### -->
+<para>
+
+</para>
+
+@gc:
+@x:
+@y:
+
+
+<!-- ##### FUNCTION gdk_gc_set_clip_mask ##### -->
+<para>
+
+</para>
+
+@gc:
+@mask:
+
+
+<!-- ##### FUNCTION gdk_gc_set_clip_rectangle ##### -->
+<para>
+
+</para>
+
+@gc:
+@rectangle:
+
+
+<!-- ##### FUNCTION gdk_gc_set_clip_region ##### -->
+<para>
+
+</para>
+
+@gc:
+@region:
+
+
+<!-- ##### FUNCTION gdk_gc_set_subwindow ##### -->
+<para>
+
+</para>
+
+@gc:
+@mode:
+
+
+<!-- ##### ENUM GdkSubwindowMode ##### -->
+<para>
+
+</para>
+
+@GDK_CLIP_BY_CHILDREN:
+@GDK_INCLUDE_INFERIORS:
+
+<!-- ##### FUNCTION gdk_gc_set_exposures ##### -->
+<para>
+
+</para>
+
+@gc:
+@exposures:
+
+
+<!-- ##### FUNCTION gdk_gc_set_line_attributes ##### -->
+<para>
+
+</para>
+
+@gc:
+@line_width:
+@line_style:
+@cap_style:
+@join_style:
+
+
+<!-- ##### FUNCTION gdk_gc_set_dashes ##### -->
+<para>
+
+</para>
+
+@gc:
+@dash_offset:
+@dash_list:
+@n:
+
+
+<!-- ##### FUNCTION gdk_gc_copy ##### -->
+<para>
+
+</para>
+
+@dst_gc:
+@src_gc:
+
+
diff --git a/docs/reference/gdk/tmpl/gdk-unused.sgml b/docs/reference/gdk/tmpl/gdk-unused.sgml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/docs/reference/gdk/tmpl/gdk-unused.sgml
diff --git a/docs/reference/gdk/tmpl/general.sgml b/docs/reference/gdk/tmpl/general.sgml
new file mode 100644
index 000000000..a2fe3a5b2
--- /dev/null
+++ b/docs/reference/gdk/tmpl/general.sgml
@@ -0,0 +1,265 @@
+<!-- ##### SECTION Title ##### -->
+General
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION gdk_init ##### -->
+<para>
+
+</para>
+
+@argc:
+@argv:
+
+
+<!-- ##### FUNCTION gdk_init_check ##### -->
+<para>
+
+</para>
+
+@argc:
+@argv:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_exit ##### -->
+<para>
+
+</para>
+
+@error_code:
+
+
+<!-- ##### ENUM GdkStatus ##### -->
+<para>
+
+</para>
+
+@GDK_OK:
+@GDK_ERROR:
+@GDK_ERROR_PARAM:
+@GDK_ERROR_FILE:
+@GDK_ERROR_MEM:
+
+<!-- ##### MACRO GDK_NONE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GDK_CURRENT_TIME ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GDK_PRIORITY_EVENTS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION gdk_set_locale ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_get_show_events ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_set_show_events ##### -->
+<para>
+
+</para>
+
+@show_events:
+
+
+<!-- ##### FUNCTION gdk_add_client_message_filter ##### -->
+<para>
+
+</para>
+
+@message_type:
+@func:
+@data:
+
+
+<!-- ##### FUNCTION gdk_set_sm_client_id ##### -->
+<para>
+
+</para>
+
+@sm_client_id:
+
+
+<!-- ##### FUNCTION gdk_get_use_xshm ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_set_use_xshm ##### -->
+<para>
+
+</para>
+
+@use_xshm:
+
+
+<!-- ##### FUNCTION gdk_get_display ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_screen_width ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_screen_height ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_screen_width_mm ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_screen_height_mm ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_pointer_grab ##### -->
+<para>
+
+</para>
+
+@window:
+@owner_events:
+@event_mask:
+@confine_to:
+@cursor:
+@time:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_pointer_ungrab ##### -->
+<para>
+
+</para>
+
+@time:
+
+
+<!-- ##### FUNCTION gdk_keyboard_grab ##### -->
+<para>
+
+</para>
+
+@window:
+@owner_events:
+@time:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_keyboard_ungrab ##### -->
+<para>
+
+</para>
+
+@time:
+
+
+<!-- ##### FUNCTION gdk_pointer_is_grabbed ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_flush ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION gdk_beep ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION gdk_key_repeat_disable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION gdk_key_repeat_restore ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION gdk_error_trap_push ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION gdk_error_trap_pop ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
diff --git a/docs/reference/gdk/tmpl/images.sgml b/docs/reference/gdk/tmpl/images.sgml
new file mode 100644
index 000000000..cb7744411
--- /dev/null
+++ b/docs/reference/gdk/tmpl/images.sgml
@@ -0,0 +1,107 @@
+<!-- ##### SECTION Title ##### -->
+Images
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GdkImage ##### -->
+<para>
+
+</para>
+
+@type:
+@visual:
+@byte_order:
+@width:
+@height:
+@depth:
+@bpp:
+@bpl:
+@mem:
+
+<!-- ##### ENUM GdkImageType ##### -->
+<para>
+
+</para>
+
+@GDK_IMAGE_NORMAL:
+@GDK_IMAGE_SHARED:
+@GDK_IMAGE_FASTEST:
+
+<!-- ##### FUNCTION gdk_image_new_bitmap ##### -->
+<para>
+
+</para>
+
+@visual:
+@data:
+@width:
+@height:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_image_new ##### -->
+<para>
+
+</para>
+
+@type:
+@visual:
+@width:
+@height:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_image_get ##### -->
+<para>
+
+</para>
+
+@window:
+@x:
+@y:
+@width:
+@height:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_image_put_pixel ##### -->
+<para>
+
+</para>
+
+@image:
+@x:
+@y:
+@pixel:
+
+
+<!-- ##### FUNCTION gdk_image_get_pixel ##### -->
+<para>
+
+</para>
+
+@image:
+@x:
+@y:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_image_destroy ##### -->
+<para>
+
+</para>
+
+@image:
+
+
diff --git a/docs/reference/gdk/tmpl/input.sgml b/docs/reference/gdk/tmpl/input.sgml
new file mode 100644
index 000000000..057b1c1c5
--- /dev/null
+++ b/docs/reference/gdk/tmpl/input.sgml
@@ -0,0 +1,130 @@
+<!-- ##### SECTION Title ##### -->
+Input
+
+<!-- ##### SECTION Short_Description ##### -->
+Callbacks on file descriptors.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+The functions in this section are used to establish
+callbacks when some condition becomes true for
+a file descriptor. They are currently just wrappers around
+the <link linkend="glib-IO-Channels">IO Channel</link>
+facility.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+<variablelist>
+
+<varlistentry>
+<term><link linkend="glib-The-Main-Event-Loop">GLib Main Loop</link></term>
+<listitem><para>The main loop in which input callbacks run.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><link linkend="glib-IO-Channels">IO Channels</link></term>
+<listitem><para>A newer and more flexible way of doing IO
+callbacks.</para></listitem>
+</varlistentry>
+
+</variablelist>
+</para>
+
+<!-- ##### FUNCTION gdk_input_add_full ##### -->
+<para>
+Establish a callback when a condition becomes true on
+a file descriptor.
+</para>
+
+@source: a file descriptor.
+@condition: the condition.
+@function: the callback function.
+@data: callback data passed to @function.
+@destroy: callback function to call with @data when the input
+ handler is removed.
+@Returns: a tag that can later be used as an argument to
+ gdk_input_remove().
+
+
+<!-- ##### ENUM GdkInputCondition ##### -->
+<para>
+A set of bit flags used to specify conditions for which
+an input callback will be triggered. The three members
+of this enumeration correspond to the @readfds,
+@writefds, and @exceptfds arguments to the
+<function>select</function> system call.
+
+<informaltable pgwide=1 frame="none" role="enum">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry>GDK_INPUT_READ</entry>
+<entry>the file descriptor has become available for reading.
+(Or, as is standard in Unix, a socket or pipe was closed
+at the other end; this is the case if a subsequent read
+on the file descriptor returns a count of zero.)</entry>
+</row>
+
+<row>
+<entry>GDK_INPUT_WRITE</entry>
+<entry>the file descriptor has become available for writing.</entry>
+</row>
+
+<row>
+<entry>GDK_INPUT_EXCEPTION</entry>
+<entry>an exception was raised on the file descriptor.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
+</para>
+
+@GDK_INPUT_READ:
+@GDK_INPUT_WRITE:
+@GDK_INPUT_EXCEPTION:
+
+<!-- ##### USER_FUNCTION GdkInputFunction ##### -->
+<para>
+A callback function that will be called when some condition
+occurs.
+</para>
+
+@data: the user data passed to gdk_input_add() or gdk_input_add_full().
+@source: the source where the condition occurred.
+@condition: the triggering condition.
+
+
+<!-- ##### USER_FUNCTION GdkDestroyNotify ##### -->
+<para>
+A callback function called when a piece of user data is
+no longer being stored by GDK. Will typically free the
+structure or object that @data points to.
+</para>
+
+@data: the user data.
+
+
+<!-- ##### FUNCTION gdk_input_add ##### -->
+<para>
+Establish a callback when a condition becomes true on
+a file descriptor.
+</para>
+
+@source: a file descriptor.
+@condition: the condition.
+@function: the callback function.
+@data: callback data passed to @function.
+@Returns: a tag that can later be used as an argument to
+ gdk_input_remove().
+
+
+<!-- ##### FUNCTION gdk_input_remove ##### -->
+<para>
+Remove a callback added with gdk_input_add() or
+gdk_input_add_full().
+</para>
+
+@tag: the tag returned when the callback was set up.
+
+
diff --git a/docs/reference/gdk/tmpl/input_contexts.sgml b/docs/reference/gdk/tmpl/input_contexts.sgml
new file mode 100644
index 000000000..ce23f99e6
--- /dev/null
+++ b/docs/reference/gdk/tmpl/input_contexts.sgml
@@ -0,0 +1,154 @@
+<!-- ##### SECTION Title ##### -->
+Input Contexts
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GdkIC ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GdkICAttr ##### -->
+<para>
+
+</para>
+
+@style:
+@client_window:
+@focus_window:
+@filter_events:
+@spot_location:
+@line_spacing:
+@cursor:
+@preedit_fontset:
+@preedit_area:
+@preedit_area_needed:
+@preedit_foreground:
+@preedit_background:
+@preedit_pixmap:
+@preedit_colormap:
+@status_fontset:
+@status_area:
+@status_area_needed:
+@status_foreground:
+@status_background:
+@status_pixmap:
+@status_colormap:
+
+<!-- ##### ENUM GdkICAttributesType ##### -->
+<para>
+
+</para>
+
+@GDK_IC_STYLE:
+@GDK_IC_CLIENT_WINDOW:
+@GDK_IC_FOCUS_WINDOW:
+@GDK_IC_FILTER_EVENTS:
+@GDK_IC_SPOT_LOCATION:
+@GDK_IC_LINE_SPACING:
+@GDK_IC_CURSOR:
+@GDK_IC_PREEDIT_FONTSET:
+@GDK_IC_PREEDIT_AREA:
+@GDK_IC_PREEDIT_AREA_NEEDED:
+@GDK_IC_PREEDIT_FOREGROUND:
+@GDK_IC_PREEDIT_BACKGROUND:
+@GDK_IC_PREEDIT_PIXMAP:
+@GDK_IC_PREEDIT_COLORMAP:
+@GDK_IC_STATUS_FONTSET:
+@GDK_IC_STATUS_AREA:
+@GDK_IC_STATUS_AREA_NEEDED:
+@GDK_IC_STATUS_FOREGROUND:
+@GDK_IC_STATUS_BACKGROUND:
+@GDK_IC_STATUS_PIXMAP:
+@GDK_IC_STATUS_COLORMAP:
+@GDK_IC_ALL_REQ:
+@GDK_IC_PREEDIT_AREA_REQ:
+@GDK_IC_PREEDIT_POSITION_REQ:
+@GDK_IC_STATUS_AREA_REQ:
+
+<!-- ##### FUNCTION gdk_ic_new ##### -->
+<para>
+
+</para>
+
+@attr:
+@mask:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_ic_destroy ##### -->
+<para>
+
+</para>
+
+@ic:
+
+
+<!-- ##### FUNCTION gdk_ic_get_style ##### -->
+<para>
+
+</para>
+
+@ic:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_ic_set_attr ##### -->
+<para>
+
+</para>
+
+@ic:
+@attr:
+@mask:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_ic_get_attr ##### -->
+<para>
+
+</para>
+
+@ic:
+@attr:
+@mask:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_ic_get_events ##### -->
+<para>
+
+</para>
+
+@ic:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_ic_attr_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_ic_attr_destroy ##### -->
+<para>
+
+</para>
+
+@attr:
+
+
diff --git a/docs/reference/gdk/tmpl/input_devices.sgml b/docs/reference/gdk/tmpl/input_devices.sgml
new file mode 100644
index 000000000..b8875e842
--- /dev/null
+++ b/docs/reference/gdk/tmpl/input_devices.sgml
@@ -0,0 +1,198 @@
+<!-- ##### SECTION Title ##### -->
+Input Devices
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### MACRO GDK_CORE_POINTER ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### ENUM GdkExtensionMode ##### -->
+<para>
+
+</para>
+
+@GDK_EXTENSION_EVENTS_NONE:
+@GDK_EXTENSION_EVENTS_ALL:
+@GDK_EXTENSION_EVENTS_CURSOR:
+
+<!-- ##### STRUCT GdkDeviceKey ##### -->
+<para>
+
+</para>
+
+@keyval:
+@modifiers:
+
+<!-- ##### STRUCT GdkDeviceInfo ##### -->
+<para>
+
+</para>
+
+@deviceid:
+@name:
+@source:
+@mode:
+@has_cursor:
+@num_axes:
+@axes:
+@num_keys:
+@keys:
+
+<!-- ##### FUNCTION gdk_input_init ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION gdk_input_exit ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION gdk_input_list_devices ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_input_set_extension_events ##### -->
+<para>
+
+</para>
+
+@window:
+@mask:
+@mode:
+
+
+<!-- ##### FUNCTION gdk_input_set_source ##### -->
+<para>
+
+</para>
+
+@deviceid:
+@source:
+
+
+<!-- ##### ENUM GdkInputSource ##### -->
+<para>
+
+</para>
+
+@GDK_SOURCE_MOUSE:
+@GDK_SOURCE_PEN:
+@GDK_SOURCE_ERASER:
+@GDK_SOURCE_CURSOR:
+
+<!-- ##### FUNCTION gdk_input_set_mode ##### -->
+<para>
+
+</para>
+
+@deviceid:
+@mode:
+@Returns:
+
+
+<!-- ##### ENUM GdkInputMode ##### -->
+<para>
+
+</para>
+
+@GDK_MODE_DISABLED:
+@GDK_MODE_SCREEN:
+@GDK_MODE_WINDOW:
+
+<!-- ##### FUNCTION gdk_input_set_axes ##### -->
+<para>
+
+</para>
+
+@deviceid:
+@axes:
+
+
+<!-- ##### ENUM GdkAxisUse ##### -->
+<para>
+
+</para>
+
+@GDK_AXIS_IGNORE:
+@GDK_AXIS_X:
+@GDK_AXIS_Y:
+@GDK_AXIS_PRESSURE:
+@GDK_AXIS_XTILT:
+@GDK_AXIS_YTILT:
+@GDK_AXIS_LAST:
+
+<!-- ##### FUNCTION gdk_input_set_key ##### -->
+<para>
+
+</para>
+
+@deviceid:
+@index:
+@keyval:
+@modifiers:
+
+
+<!-- ##### FUNCTION gdk_input_window_get_pointer ##### -->
+<para>
+
+</para>
+
+@window:
+@deviceid:
+@x:
+@y:
+@pressure:
+@xtilt:
+@ytilt:
+@mask:
+
+
+<!-- ##### FUNCTION gdk_input_motion_events ##### -->
+<para>
+
+</para>
+
+@window:
+@deviceid:
+@start:
+@stop:
+@nevents_return:
+@Returns:
+
+
+<!-- ##### STRUCT GdkTimeCoord ##### -->
+<para>
+
+</para>
+
+@time:
+@x:
+@y:
+@pressure:
+@xtilt:
+@ytilt:
+
diff --git a/docs/reference/gdk/tmpl/input_methods.sgml b/docs/reference/gdk/tmpl/input_methods.sgml
new file mode 100644
index 000000000..0f86c1313
--- /dev/null
+++ b/docs/reference/gdk/tmpl/input_methods.sgml
@@ -0,0 +1,101 @@
+<!-- ##### SECTION Title ##### -->
+Input Methods
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ENUM GdkIMStyle ##### -->
+<para>
+
+</para>
+
+@GDK_IM_PREEDIT_AREA:
+@GDK_IM_PREEDIT_CALLBACKS:
+@GDK_IM_PREEDIT_POSITION:
+@GDK_IM_PREEDIT_NOTHING:
+@GDK_IM_PREEDIT_NONE:
+@GDK_IM_PREEDIT_MASK:
+@GDK_IM_STATUS_AREA:
+@GDK_IM_STATUS_CALLBACKS:
+@GDK_IM_STATUS_NOTHING:
+@GDK_IM_STATUS_NONE:
+@GDK_IM_STATUS_MASK:
+
+<!-- ##### TYPEDEF GdkWChar ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gdk_im_ready ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_im_begin ##### -->
+<para>
+
+</para>
+
+@ic:
+@window:
+
+
+<!-- ##### FUNCTION gdk_im_end ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION gdk_im_decide_style ##### -->
+<para>
+
+</para>
+
+@supported_style:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_im_set_best_style ##### -->
+<para>
+
+</para>
+
+@best_allowed_style:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_wcstombs ##### -->
+<para>
+
+</para>
+
+@src:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_mbstowcs ##### -->
+<para>
+
+</para>
+
+@dest:
+@src:
+@dest_max:
+@Returns:
+
+
diff --git a/docs/reference/gdk/tmpl/keys.sgml b/docs/reference/gdk/tmpl/keys.sgml
new file mode 100644
index 000000000..e014c6e10
--- /dev/null
+++ b/docs/reference/gdk/tmpl/keys.sgml
@@ -0,0 +1,93 @@
+<!-- ##### SECTION Title ##### -->
+Key Values
+
+<!-- ##### SECTION Short_Description ##### -->
+functions for manipulating keyboard codes.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Key values are the codes which are sent whenever a key is pressed or released.
+They appear in the <structfield>keyval</structfield> field of the
+#GdkEventKey structure, which is passed to signal handlers for the
+"key-press-event" and "key-release-event" signals.
+The complete list of key values can be found in the &lt;gdk/gdkkeysyms.h&gt;
+header file.
+</para>
+<para>
+Key values can be converted into a string representation using
+gdk_keyval_name(). The reverse function, converting a string to a key value,
+is provided by gdk_keyval_from_name().
+</para>
+<para>
+The case of key values can be determined using gdk_keyval_is_upper() and
+gdk_keyval_is_lower(). Key values can be converted to upper or lower case
+using gdk_keyval_to_upper() and gdk_keyval_to_lower().
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION gdk_keyval_name ##### -->
+<para>
+Converts a key value into a symbolic name.
+The names are the same as those in the &lt;gdk/gdkkeysyms.h&gt; header file
+but without the leading "GDK_".
+</para>
+
+@keyval: a key value.
+@Returns: a string containing the name of the key, or NULL if @keyval is not
+a valid key. The string should not be modified.
+
+
+<!-- ##### FUNCTION gdk_keyval_from_name ##### -->
+<para>
+Converts a key name to a key value.
+</para>
+
+@keyval_name: a key name.
+@Returns: the corresponding key value, or %GDK_VoidSymbol if the key name is
+not a valid key.
+
+
+<!-- ##### FUNCTION gdk_keyval_is_upper ##### -->
+<para>
+Returns TRUE if the given key value is in upper case.
+</para>
+
+@keyval: a key value.
+@Returns: TRUE if @keyval is in upper case, or if @keyval is not subject to
+case conversion.
+
+
+<!-- ##### FUNCTION gdk_keyval_is_lower ##### -->
+<para>
+Returns TRUE if the given key value is in lower case.
+</para>
+
+@keyval: a key value.
+@Returns: TRUE if @keyval is in lower case, or if @keyval is not subject to
+case conversion.
+
+
+<!-- ##### FUNCTION gdk_keyval_to_upper ##### -->
+<para>
+Converts a key value to upper case, if applicable.
+</para>
+
+@keyval: a key value.
+@Returns: the upper case form of @keyval, or @keyval itself if it is already
+in upper case or it is not subject to case conversion.
+
+
+<!-- ##### FUNCTION gdk_keyval_to_lower ##### -->
+<para>
+Converts a key value to lower case, if applicable.
+</para>
+
+@keyval: a key value.
+@Returns: the lower case form of @keyval, or @keyval itself if it is already
+in lower case or it is not subject to case conversion.
+
+
diff --git a/docs/reference/gdk/tmpl/pixmaps.sgml b/docs/reference/gdk/tmpl/pixmaps.sgml
new file mode 100644
index 000000000..ea7de9ebd
--- /dev/null
+++ b/docs/reference/gdk/tmpl/pixmaps.sgml
@@ -0,0 +1,196 @@
+<!-- ##### SECTION Title ##### -->
+Bitmaps and Pixmaps
+
+<!-- ##### SECTION Short_Description ##### -->
+Offscreen drawables.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Pixmaps are offscreen drawables. They can be drawn upon with the
+standard drawing primitives, then copied to another drawable (such as
+a #GdkWindow) with gdk_pixmap_draw(). The depth of a pixmap
+is the number of bits per pixels. Bitmaps are simply pixmaps
+with a depth of 1. (That is, they are monochrome bitmaps - each
+pixel can be either on or off).
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+</para>
+
+<!-- ##### STRUCT GdkPixmap ##### -->
+<para>
+An opaque structure representing an offscreen drawable.
+Pointers to structures of type #GdkPixmap, #GdkBitmap,
+and #GdkWindow, can often be used interchangeably.
+The type #GdkDrawable refers generically to any of
+these types.
+</para>
+
+@user_data:
+
+<!-- ##### FUNCTION gdk_pixmap_new ##### -->
+<para>
+Create a new pixmap with a given size and depth.
+</para>
+
+@window: a #GdkWindow, used to determine default values for the
+ new pixmap. Can be %NULL if @depth is specified,
+@width: The width of the new pixmap in pixels.
+@height: The height of the new pixmap in pixels.
+@depth: The depth (number of bits per pixel) of the new pixmap.
+ If -1, and @window is not %NULL, the depth of the new
+ pixmap will be equal to that of @window.
+@Returns: the #GdkBitmap
+
+
+<!-- ##### FUNCTION gdk_bitmap_create_from_data ##### -->
+<para>
+Creates a new bitmap from data in XBM format.
+</para>
+
+@window: a #GdkWindow, used to determine default values for the
+ new pixmap. Can be %NULL, in which case the root window is
+ used.
+@data: a pointer to the XBM data.
+@width: the width of the new pixmap in pixels.
+@height: the height of the new pixmap in pixels.
+@Returns: the #GdkBitmap
+
+
+<!-- ##### FUNCTION gdk_pixmap_create_from_data ##### -->
+<para>
+Create a two-color pixmap from data in XBM data.
+</para>
+
+@window: a #GdkWindow, used to determine default values for the
+ new pixmap. Can be %NULL, if the depth is given.
+@data: a pointer to the data.
+@width: the width of the new pixmap in pixels.
+@height: the height of the new pixmap in pixels.
+@depth: the depth (number of bits per pixel) of the new pixmap.
+@fg: the foreground color.
+@bg: the background color.
+@Returns: the #GdkPixmap
+
+
+<!-- ##### FUNCTION gdk_pixmap_create_from_xpm ##### -->
+<para>
+Create a pixmap from a XPM file.
+</para>
+
+@window: a #GdkWindow, used to determine default values for the
+ new pixmap.
+@mask: a pointer to a place to store a bitmap representing
+the transparency mask of the XPM file. Can be %NULL,
+in which case transparency will be ignored.
+@transparent_color: the color to be used for the pixels
+that are transparent in the input file. Can be %NULL,
+in which case a default color will be used.
+@filename: the filename of a file containing XPM data.
+@Returns: the #GdkPixmap
+
+
+<!-- ##### FUNCTION gdk_pixmap_colormap_create_from_xpm ##### -->
+<para>
+Create a pixmap from a XPM file using a particular colormap.
+</para>
+
+@window: a #GdkWindow, used to determine default values for the
+ new pixmap. Can be %NULL if @colormap is given.
+@colormap: the #GdkColormap that the new pixmap will be use.
+ If omitted, the colormap for @window will be used.
+@mask: a pointer to a place to store a bitmap representing
+the transparency mask of the XPM file. Can be %NULL,
+in which case transparency will be ignored.
+@transparent_color: the color to be used for the pixels
+that are transparent in the input file. Can be %NULL,
+in which case a default color will be used.
+@filename: the filename of a file containing XPM data.
+@Returns: the #GdkPixmap.
+
+
+<!-- ##### FUNCTION gdk_pixmap_create_from_xpm_d ##### -->
+<para>
+Create a pixmap from data in XPM format.
+</para>
+
+@window: a #GdkWindow, used to determine default values for the
+ new pixmap.
+@mask: Pointer to a place to store a bitmap representing
+the transparency mask of the XPM file. Can be %NULL,
+in which case transparency will be ignored.
+@transparent_color: This color will be used for the pixels
+that are transparent in the input file. Can be %NULL
+in which case a default color will be used.
+@data: Pointer to a string containing the XPM data.
+@Returns: the #GdkPixmap
+
+
+<!-- ##### FUNCTION gdk_pixmap_colormap_create_from_xpm_d ##### -->
+<para>
+Create a pixmap from data in XPM format using a particular
+colormap.
+</para>
+
+@window: a #GdkWindow, used to determine default values for the
+ new pixmap. Can be %NULL if @colormap is given.
+@colormap: the #GdkColormap that the new pixmap will be use.
+ If omitted, the colormap for @window will be used.
+@mask: a pointer to a place to store a bitmap representing
+the transparency mask of the XPM file. Can be %NULL,
+in which case transparency will be ignored.
+@transparent_color: the color to be used for the pixels
+that are transparent in the input file. Can be %NULL,
+in which case a default color will be used.
+@data: Pointer to a string containing the XPM data.
+@Returns: the #GdkPixmap.
+
+
+<!-- ##### FUNCTION gdk_pixmap_ref ##### -->
+<para>
+Increase the reference count of a pixmap.
+</para>
+
+@pixmap: a #GdkPixmap
+@Returns: @pixmap
+
+
+<!-- ##### FUNCTION gdk_pixmap_unref ##### -->
+<para>
+Decrease the reference count of a pixmap. If the resulting
+reference count is zero, destroy the pixmap.
+</para>
+
+@pixmap: a #GdkPixmap
+
+
+<!-- ##### STRUCT GdkBitmap ##### -->
+<para>
+An opaque structure representing an offscreen drawable of depth
+1. Pointers to structures of type GdkPixmap, #GdkBitmap, and
+#GdkWindow, can often be used interchangeably. The type #GdkDrawable
+refers generically to any of these types.
+</para>
+
+@user_data:
+
+<!-- ##### FUNCTION gdk_bitmap_ref ##### -->
+<para>
+Increase the reference count of a bitmap. An alias
+for gdk_pixmap_ref().
+</para>
+
+@pixmap:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_bitmap_unref ##### -->
+<para>
+Decrease the reference count of a bitmap. An alias
+for gdk_pixmap_unref().
+</para>
+
+@pixmap:
+
+
diff --git a/docs/reference/gdk/tmpl/properties.sgml b/docs/reference/gdk/tmpl/properties.sgml
new file mode 100644
index 000000000..674c39ec2
--- /dev/null
+++ b/docs/reference/gdk/tmpl/properties.sgml
@@ -0,0 +1,152 @@
+<!-- ##### SECTION Title ##### -->
+Properties and Atoms
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### TYPEDEF GdkAtom ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ENUM GdkPropertyState ##### -->
+<para>
+
+</para>
+
+@GDK_PROPERTY_NEW_VALUE:
+@GDK_PROPERTY_DELETE:
+
+<!-- ##### ENUM GdkPropMode ##### -->
+<para>
+
+</para>
+
+@GDK_PROP_MODE_REPLACE:
+@GDK_PROP_MODE_PREPEND:
+@GDK_PROP_MODE_APPEND:
+
+<!-- ##### ENUM GdkTarget ##### -->
+<para>
+
+</para>
+
+@GDK_TARGET_BITMAP:
+@GDK_TARGET_COLORMAP:
+@GDK_TARGET_DRAWABLE:
+@GDK_TARGET_PIXMAP:
+@GDK_TARGET_STRING:
+
+<!-- ##### FUNCTION gdk_text_property_to_text_list ##### -->
+<para>
+
+</para>
+
+@encoding:
+@format:
+@text:
+@length:
+@list:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_free_text_list ##### -->
+<para>
+
+</para>
+
+@list:
+
+
+<!-- ##### FUNCTION gdk_string_to_compound_text ##### -->
+<para>
+
+</para>
+
+@str:
+@encoding:
+@format:
+@ctext:
+@length:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_free_compound_text ##### -->
+<para>
+
+</para>
+
+@ctext:
+
+
+<!-- ##### FUNCTION gdk_atom_intern ##### -->
+<para>
+
+</para>
+
+@atom_name:
+@only_if_exists:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_atom_name ##### -->
+<para>
+
+</para>
+
+@atom:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_property_get ##### -->
+<para>
+
+</para>
+
+@window:
+@property:
+@type:
+@offset:
+@length:
+@pdelete:
+@actual_property_type:
+@actual_format:
+@actual_length:
+@data:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_property_change ##### -->
+<para>
+
+</para>
+
+@window:
+@property:
+@type:
+@format:
+@mode:
+@data:
+@nelements:
+
+
+<!-- ##### FUNCTION gdk_property_delete ##### -->
+<para>
+
+</para>
+
+@window:
+@property:
+
+
diff --git a/docs/reference/gdk/tmpl/regions.sgml b/docs/reference/gdk/tmpl/regions.sgml
new file mode 100644
index 000000000..5f4f228d2
--- /dev/null
+++ b/docs/reference/gdk/tmpl/regions.sgml
@@ -0,0 +1,217 @@
+<!-- ##### SECTION Title ##### -->
+Points, Rectangles and Regions
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GdkPoint ##### -->
+<para>
+
+</para>
+
+@x:
+@y:
+
+<!-- ##### STRUCT GdkRectangle ##### -->
+<para>
+
+</para>
+
+@x:
+@y:
+@width:
+@height:
+
+<!-- ##### FUNCTION gdk_rectangle_intersect ##### -->
+<para>
+
+</para>
+
+@src1:
+@src2:
+@dest:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_rectangle_union ##### -->
+<para>
+
+</para>
+
+@src1:
+@src2:
+@dest:
+
+
+<!-- ##### STRUCT GdkRegion ##### -->
+<para>
+
+</para>
+
+@user_data:
+
+<!-- ##### FUNCTION gdk_region_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_region_destroy ##### -->
+<para>
+
+</para>
+
+@region:
+
+
+<!-- ##### FUNCTION gdk_region_get_clipbox ##### -->
+<para>
+
+</para>
+
+@region:
+@rectangle:
+
+
+<!-- ##### FUNCTION gdk_region_empty ##### -->
+<para>
+
+</para>
+
+@region:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_region_equal ##### -->
+<para>
+
+</para>
+
+@region1:
+@region2:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_region_point_in ##### -->
+<para>
+
+</para>
+
+@region:
+@x:
+@y:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_region_rect_in ##### -->
+<para>
+
+</para>
+
+@region:
+@rect:
+@Returns:
+
+
+<!-- ##### ENUM GdkOverlapType ##### -->
+<para>
+
+</para>
+
+@GDK_OVERLAP_RECTANGLE_IN:
+@GDK_OVERLAP_RECTANGLE_OUT:
+@GDK_OVERLAP_RECTANGLE_PART:
+
+<!-- ##### FUNCTION gdk_region_polygon ##### -->
+<para>
+
+</para>
+
+@points:
+@npoints:
+@fill_rule:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_region_offset ##### -->
+<para>
+
+</para>
+
+@region:
+@dx:
+@dy:
+
+
+<!-- ##### FUNCTION gdk_region_shrink ##### -->
+<para>
+
+</para>
+
+@region:
+@dx:
+@dy:
+
+
+<!-- ##### FUNCTION gdk_region_union_with_rect ##### -->
+<para>
+
+</para>
+
+@region:
+@rect:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_regions_intersect ##### -->
+<para>
+
+</para>
+
+@source1:
+@source2:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_regions_union ##### -->
+<para>
+
+</para>
+
+@source1:
+@source2:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_regions_subtract ##### -->
+<para>
+
+</para>
+
+@source1:
+@source2:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_regions_xor ##### -->
+<para>
+
+</para>
+
+@source1:
+@source2:
+@Returns:
+
+
diff --git a/docs/reference/gdk/tmpl/rgb.sgml b/docs/reference/gdk/tmpl/rgb.sgml
new file mode 100644
index 000000000..12b8f72d8
--- /dev/null
+++ b/docs/reference/gdk/tmpl/rgb.sgml
@@ -0,0 +1,216 @@
+<!-- ##### SECTION Title ##### -->
+GdkRGB
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GdkRgbCmap ##### -->
+<para>
+
+</para>
+
+@colors:
+@lut:
+
+<!-- ##### ENUM GdkRgbDither ##### -->
+<para>
+
+</para>
+
+@GDK_RGB_DITHER_NONE:
+@GDK_RGB_DITHER_NORMAL:
+@GDK_RGB_DITHER_MAX:
+
+<!-- ##### FUNCTION gdk_rgb_init ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION gdk_rgb_cmap_new ##### -->
+<para>
+
+</para>
+
+@colors:
+@n_colors:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_rgb_cmap_free ##### -->
+<para>
+
+</para>
+
+@cmap:
+
+
+<!-- ##### FUNCTION gdk_rgb_gc_set_foreground ##### -->
+<para>
+
+</para>
+
+@gc:
+@rgb:
+
+
+<!-- ##### FUNCTION gdk_rgb_gc_set_background ##### -->
+<para>
+
+</para>
+
+@gc:
+@rgb:
+
+
+<!-- ##### FUNCTION gdk_draw_rgb_image ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@x:
+@y:
+@width:
+@height:
+@dith:
+@rgb_buf:
+@rowstride:
+
+
+<!-- ##### FUNCTION gdk_draw_indexed_image ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@x:
+@y:
+@width:
+@height:
+@dith:
+@buf:
+@rowstride:
+@cmap:
+
+
+<!-- ##### FUNCTION gdk_draw_gray_image ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@x:
+@y:
+@width:
+@height:
+@dith:
+@buf:
+@rowstride:
+
+
+<!-- ##### FUNCTION gdk_draw_rgb_32_image ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@x:
+@y:
+@width:
+@height:
+@dith:
+@buf:
+@rowstride:
+
+
+<!-- ##### FUNCTION gdk_draw_rgb_image_dithalign ##### -->
+<para>
+
+</para>
+
+@drawable:
+@gc:
+@x:
+@y:
+@width:
+@height:
+@dith:
+@rgb_buf:
+@rowstride:
+@xdith:
+@ydith:
+
+
+<!-- ##### FUNCTION gdk_rgb_xpixel_from_rgb ##### -->
+<para>
+
+</para>
+
+@rgb:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_rgb_set_verbose ##### -->
+<para>
+
+</para>
+
+@verbose:
+
+
+<!-- ##### FUNCTION gdk_rgb_ditherable ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_rgb_set_install ##### -->
+<para>
+
+</para>
+
+@install:
+
+
+<!-- ##### FUNCTION gdk_rgb_set_min_colors ##### -->
+<para>
+
+</para>
+
+@min_colors:
+
+
+<!-- ##### FUNCTION gdk_rgb_get_visual ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_rgb_get_cmap ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
diff --git a/docs/reference/gdk/tmpl/selections.sgml b/docs/reference/gdk/tmpl/selections.sgml
new file mode 100644
index 000000000..c02f982c7
--- /dev/null
+++ b/docs/reference/gdk/tmpl/selections.sgml
@@ -0,0 +1,94 @@
+<!-- ##### SECTION Title ##### -->
+Selections
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ENUM GdkSelection ##### -->
+<para>
+
+</para>
+
+@GDK_SELECTION_PRIMARY:
+@GDK_SELECTION_SECONDARY:
+
+<!-- ##### ENUM GdkSelectionType ##### -->
+<para>
+
+</para>
+
+@GDK_SELECTION_TYPE_ATOM:
+@GDK_SELECTION_TYPE_BITMAP:
+@GDK_SELECTION_TYPE_COLORMAP:
+@GDK_SELECTION_TYPE_DRAWABLE:
+@GDK_SELECTION_TYPE_INTEGER:
+@GDK_SELECTION_TYPE_PIXMAP:
+@GDK_SELECTION_TYPE_WINDOW:
+@GDK_SELECTION_TYPE_STRING:
+
+<!-- ##### FUNCTION gdk_selection_owner_set ##### -->
+<para>
+
+</para>
+
+@owner:
+@selection:
+@time:
+@send_event:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_selection_owner_get ##### -->
+<para>
+
+</para>
+
+@selection:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_selection_convert ##### -->
+<para>
+
+</para>
+
+@requestor:
+@selection:
+@target:
+@time:
+
+
+<!-- ##### FUNCTION gdk_selection_property_get ##### -->
+<para>
+
+</para>
+
+@requestor:
+@data:
+@prop_type:
+@prop_format:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_selection_send_notify ##### -->
+<para>
+
+</para>
+
+@requestor:
+@selection:
+@target:
+@property:
+@time:
+
+
diff --git a/docs/reference/gdk/tmpl/threads.sgml b/docs/reference/gdk/tmpl/threads.sgml
new file mode 100644
index 000000000..3b14e8ce3
--- /dev/null
+++ b/docs/reference/gdk/tmpl/threads.sgml
@@ -0,0 +1,50 @@
+<!-- ##### SECTION Title ##### -->
+Threads
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### VARIABLE gdk_threads_mutex ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GDK_THREADS_ENTER ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO GDK_THREADS_LEAVE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION gdk_threads_enter ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION gdk_threads_leave ##### -->
+<para>
+
+</para>
+
+
+
diff --git a/docs/reference/gdk/tmpl/visuals.sgml b/docs/reference/gdk/tmpl/visuals.sgml
new file mode 100644
index 000000000..bff192930
--- /dev/null
+++ b/docs/reference/gdk/tmpl/visuals.sgml
@@ -0,0 +1,391 @@
+<!-- ##### SECTION Title ##### -->
+Visuals
+
+<!-- ##### SECTION Short_Description ##### -->
+manipulation of visuals.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+The way that the data stored on the screen is stored
+in memory can vary considerably between different X
+servers; some X servers even support multiple formats
+used simultaneously. An X <firstterm>visual</firstterm>
+represents a particular format for screen data.
+It includes information about the number of bits
+used for each color, the way the bits are translated
+into an RGB value for display, and the way the bits
+are stored in memory.
+</para>
+<para>
+There are several standard visuals. The visual returned
+by gdk_visual_get_system() is the system's default
+visual. gdk_rgb_get_visual() return the visual most
+suited to displaying full-color image data. If you
+use the calls in GdkRGB, you should create your windows
+using this visual (and the colormap returned by
+gdk_rgb_get_colormap()).
+</para>
+<para>
+A number of functions are provided for determining
+the "best" available visual. For the purposes of
+making this determination, higher bit depths are
+considered better, and for visuals of the same
+bit depth, %GDK_VISUAL_PSEUDO_COLOR is preferred at
+8bpp, otherwise, the visual types are ranked in the
+order of (highest to lowest) %GDK_VISUAL_DIRECT_COLOR,
+%GDK_VISUAL_TRUE_COLOR, %GDK_VISUAL_PSEUDO_COLOR,
+%GDK_VISUAL_STATIC_COLOR, %GDK_VISUAL_GRAYSCALE,
+then %GDK_VISUAL_STATIC_GRAY.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GdkVisual ##### -->
+<para>
+The GdkVisual structure contains information about
+a particular visual. It contains the following
+public fields.
+
+<informaltable pgwide=1 frame="none" role="struct">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry><structfield>type</structfield></entry>
+<entry>The type of this visual.</entry>
+</row>
+
+<row>
+<entry><structfield>depth</structfield></entry>
+<entry>The number of bits per pixel.</entry>
+</row>
+
+<row>
+<entry><structfield>byte_order</structfield></entry>
+<entry>The byte-order for this visual.</entry>
+</row>
+
+<row>
+<entry><structfield>colormap_size</structfield></entry>
+<entry>The number of entries in the colormap, for
+visuals of type GDK_VISUAL_PSEUDO_COLOR or
+GDK_VISUAL_GRAY_SCALE. For other visual types, it
+is the number of possible levels per color component.
+If the visual has different numbers of levels for
+different components, the value of this field is
+undefined.</entry>
+</row>
+
+<row>
+<entry><structfield>bits_per_rgb</structfield></entry>
+<entry>
+The number of significant bits per red, green, or blue
+when specifying colors for this visual. (For instance,
+for gdk_colormap_alloc_color())
+</entry>
+</row>
+
+<row>
+<entry><structfield>red_mask</structfield></entry>
+<entry>
+A mask giving the bits in a pixel value that
+correspond to the red field. Significant only for
+%GDK_VISUAL_PSEUDOCOLOR and %GDK_VISUAL_DIRECTCOLOR.
+</entry>
+</row>
+
+<row>
+<entry><structfield>red_shift, red_prec</structfield></entry>
+<entry>
+The <structfield>red_shift</structfield> and
+<structfield>red_prec</structfield> give an alternate presentation
+of the information in <structfield>red_mask</structfield>.
+<structfield>red_mask</structfield> is a contiguous sequence
+of <structfield>red_prec</structfield> starting at bit
+number <structfield>red_shift</structfield>. For example,
+<xref linkend="rgbmask"> shows constructing a pixel value
+out of three 16 bit color values.
+
+</entry>
+</row>
+
+<row>
+<entry><structfield>green_mask</structfield></entry>
+<entry>
+A mask giving the bits in a pixel value that
+correspond to the green field.
+</entry>
+</row>
+
+<row>
+<entry><structfield>green_shift, green_prec</structfield></entry>
+<entry>
+The <structfield>green_shift</structfield> and
+<structfield>green_prec</structfield> give an alternate presentation
+of the information in <structfield>green_mask</structfield>.
+</entry>
+</row>
+
+<row>
+<entry><structfield>blue_mask</structfield></entry>
+<entry>
+A mask giving the bits in a pixel value that
+correspond to the blue field.
+</entry>
+</row>
+
+<row>
+<entry><structfield>blue_shift, blue_prec</structfield></entry>
+<entry>
+The <structfield>blue_shift</structfield> and
+<structfield>blue_prec</structfield> give an alternate presentation
+of the information in <structfield>blue_mask</structfield>.
+</entry>
+</row>
+
+</tbody></tgroup></informaltable>
+</para>
+
+<figure float="1" id="rgbmask">
+<title>Constructing a pixel value from components</title>
+<programlisting>
+guint
+pixel_from_rgb (GdkVisual *visual,
+ guchar r, guchar b, guchar g)
+{
+ return ((r >> (16 - visual->red_prec)) << visual->red_shift) |
+ ((g >> (16 - visual->green_prec)) << visual->green_shift) |
+ ((r >> (16 - visual->blue_prec)) << visual->blue_shift);
+}
+</programlisting>
+</figure>
+
+@type:
+@depth:
+@byte_order:
+@colormap_size:
+@bits_per_rgb:
+@red_mask:
+@red_shift:
+@red_prec:
+@green_mask:
+@green_shift:
+@green_prec:
+@blue_mask:
+@blue_shift:
+@blue_prec:
+
+<!-- ##### ENUM GdkVisualType ##### -->
+<para>
+A set of values that describe the manner in which the
+pixel values for a visual are converted into RGB
+values for display.
+
+<informaltable pgwide=1 frame="none" role="enum">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry>GDK_VISUAL_STATIC_GRAY</entry>
+<entry>Each pixel value indexes a grayscale value directly.</entry>
+</row>
+
+<row>
+<entry>GDK_VISUAL_GRAYSCALE</entry>
+<entry>Each pixel is an index into a color map that maps
+pixel values into grayscale values. The color map can
+be changed by an application.</entry>
+</row>
+
+<row>
+<entry>GDK_VISUAL_STATIC_COLOR</entry>
+<entry>Each pixel value is an index into a predefined,
+unmodifiable color map that maps pixel values into
+rgb values.</entry>
+</row>
+
+<row>
+<entry>GDK_VISUAL_PSEUDO_COLOR</entry>
+<entry>Each pixel is an index into a color map that maps
+pixel values into rgb values. The color map can
+be changed by an application.</entry>
+</row>
+
+<row>
+<entry>GDK_TRUE_COLOR</entry>
+<entry>Each pixel value directly contains red, green,
+and blue components. The <structfield>red_mask</structfield>,
+<structfield>green_mask</structfield>, and
+<structfield>blue_mask</structfield> fields of the #GdkVisual
+structure describe how the components are assembled into
+a pixel value.
+.</entry>
+</row>
+
+<row>
+<entry>GDK_DIRECT_COLOR</entry>
+<entry>Each pixel value contains red, green, and blue
+components as for %GDK_TRUE_COLOR, but the components
+are mapped via a color table into the final output
+table instead of being converted directly..</entry>
+</row>
+
+</tbody></tgroup></informaltable>
+</para>
+
+@GDK_VISUAL_STATIC_GRAY:
+@GDK_VISUAL_GRAYSCALE:
+@GDK_VISUAL_STATIC_COLOR:
+@GDK_VISUAL_PSEUDO_COLOR:
+@GDK_VISUAL_TRUE_COLOR:
+@GDK_VISUAL_DIRECT_COLOR:
+
+<!-- ##### ENUM GdkByteOrder ##### -->
+<para>
+A set of values describing the possible byte-orders
+for storing pixel values in memory.
+
+<informaltable pgwide=1 frame="none" role="enum">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+
+<row>
+<entry>GDK_LSB_FIRST</entry>
+<entry>The values are stored with the least-significant byte
+first. For instance, the 32-bit value 0xffeecc would be stored
+in memory as 0xcc, 0xee, 0xff, 0x00.</entry>
+</row>
+
+<row>
+<entry>GDK_MSB_FIRST</entry>
+<entry>The values are stored with the least-significant byte
+first. For instance, the 32-bit value 0xffeecc would be stored
+in memory as 0xff, 0xee, 0xcc, 0x00.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
+</para>
+
+@GDK_LSB_FIRST:
+@GDK_MSB_FIRST:
+
+<!-- ##### FUNCTION gdk_query_depths ##### -->
+<para>
+Lists the available color depths. The returned values
+are pointers to static storage and should not be
+modified or freed.
+</para>
+
+@depths: a location to store a pointer to an array
+ holding the available color depths.
+@count: a location to store the number of values in @depths.
+
+
+<!-- ##### FUNCTION gdk_query_visual_types ##### -->
+<para>
+Lists the available visual types. The returned values
+are pointers to static storage and should not be
+modified or freed.
+</para>
+
+@visual_types: a location to store a pointer to an
+ array holding the available visual types.
+@count: a location to store the number of values in @visual types.
+
+
+<!-- ##### FUNCTION gdk_list_visuals ##### -->
+<para>
+Lists the available visuals.
+</para>
+
+@Returns: A #GList of the available visuals. The list
+should be freed this list with g_list_free().
+
+
+<!-- ##### FUNCTION gdk_visual_get_best_depth ##### -->
+<para>
+Returns the best available color depth.
+</para>
+
+@Returns: the best available color depth.
+
+
+<!-- ##### FUNCTION gdk_visual_get_best_type ##### -->
+<para>
+Returns the best available visual type.
+</para>
+
+@Returns: the best available visual type.
+
+
+<!-- ##### FUNCTION gdk_visual_get_system ##### -->
+<para>
+Returns the system's default visual.
+</para>
+
+@Returns: the system's default visual.
+
+
+<!-- ##### FUNCTION gdk_visual_get_best ##### -->
+<para>
+Returns the best available visual.
+</para>
+
+@Returns: the best available visual.
+
+
+<!-- ##### FUNCTION gdk_visual_get_best_with_depth ##### -->
+<para>
+Returns the best available visual with a certain depth.
+</para>
+
+@depth: the desired color depth
+@Returns: the best available visual with @depth bits per pixel
+or %NULL if no visuals with that type are available.
+
+
+<!-- ##### FUNCTION gdk_visual_get_best_with_type ##### -->
+<para>
+Returns the best available visual of a certain visual type.
+</para>
+
+@visual_type: the desired visual type.
+@Returns: the visual of the given type with the highest depth
+or %NULL if no visuals of that type are available.
+
+
+<!-- ##### FUNCTION gdk_visual_get_best_with_both ##### -->
+<para>
+Returns the best available visual
+</para>
+
+@depth: the desired visual type.
+@visual_type: the desired depth.
+@Returns: the best available visual with the given depth
+and visual type, or %NULL if no matching visuals are
+available.
+
+
+<!-- ##### FUNCTION gdk_visual_ref ##### -->
+<para>
+In theory, increases the reference count of a visual. However,
+the set of visuals is determined statically when GTK+ is
+initialized, so this operation does nothing.
+</para>
+
+@visual: a #GdkVisual.
+@Returns: @visual.
+
+
+<!-- ##### FUNCTION gdk_visual_unref ##### -->
+<para>
+In theory, decreases the reference count of a visual. Like
+gdk_visual_ref(), this operation does nothing.
+</para>
+
+@visual: a #GdkVisual.
+
+
diff --git a/docs/reference/gdk/tmpl/windows.sgml b/docs/reference/gdk/tmpl/windows.sgml
new file mode 100644
index 000000000..78addd966
--- /dev/null
+++ b/docs/reference/gdk/tmpl/windows.sgml
@@ -0,0 +1,777 @@
+<!-- ##### SECTION Title ##### -->
+Windows
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GdkWindowAttr ##### -->
+<para>
+
+</para>
+
+@title:
+@event_mask:
+@x:
+@y:
+@width:
+@height:
+@wclass:
+@visual:
+@colormap:
+@window_type:
+@cursor:
+@wmclass_name:
+@wmclass_class:
+@override_redirect:
+
+<!-- ##### STRUCT GdkWindow ##### -->
+<para>
+
+</para>
+
+@user_data:
+
+<!-- ##### ENUM GdkWindowType ##### -->
+<para>
+
+</para>
+
+@GDK_WINDOW_ROOT:
+@GDK_WINDOW_TOPLEVEL:
+@GDK_WINDOW_CHILD:
+@GDK_WINDOW_DIALOG:
+@GDK_WINDOW_TEMP:
+@GDK_WINDOW_PIXMAP:
+@GDK_WINDOW_FOREIGN:
+
+<!-- ##### ENUM GdkWindowClass ##### -->
+<para>
+
+</para>
+
+@GDK_INPUT_OUTPUT:
+@GDK_INPUT_ONLY:
+
+<!-- ##### ENUM GdkWindowAttributesType ##### -->
+<para>
+
+</para>
+
+@GDK_WA_TITLE:
+@GDK_WA_X:
+@GDK_WA_Y:
+@GDK_WA_CURSOR:
+@GDK_WA_COLORMAP:
+@GDK_WA_VISUAL:
+@GDK_WA_WMCLASS:
+@GDK_WA_NOREDIR:
+
+<!-- ##### ENUM GdkWindowHints ##### -->
+<para>
+
+</para>
+
+@GDK_HINT_POS:
+@GDK_HINT_MIN_SIZE:
+@GDK_HINT_MAX_SIZE:
+@GDK_HINT_BASE_SIZE:
+@GDK_HINT_ASPECT:
+@GDK_HINT_RESIZE_INC:
+
+<!-- ##### STRUCT GdkGeometry ##### -->
+<para>
+
+</para>
+
+@min_width:
+@min_height:
+@max_width:
+@max_height:
+@base_width:
+@base_height:
+@width_inc:
+@height_inc:
+@min_aspect:
+@max_aspect:
+
+<!-- ##### FUNCTION gdk_window_new ##### -->
+<para>
+
+</para>
+
+@parent:
+@attributes:
+@attributes_mask:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_window_destroy ##### -->
+<para>
+
+</para>
+
+@window:
+
+
+<!-- ##### FUNCTION gdk_window_ref ##### -->
+<para>
+
+</para>
+
+@window:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_window_unref ##### -->
+<para>
+
+</para>
+
+@window:
+
+
+<!-- ##### FUNCTION gdk_window_at_pointer ##### -->
+<para>
+
+</para>
+
+@win_x:
+@win_y:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_window_show ##### -->
+<para>
+
+</para>
+
+@window:
+
+
+<!-- ##### FUNCTION gdk_window_hide ##### -->
+<para>
+
+</para>
+
+@window:
+
+
+<!-- ##### FUNCTION gdk_window_is_visible ##### -->
+<para>
+
+</para>
+
+@window:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_window_is_viewable ##### -->
+<para>
+
+</para>
+
+@window:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_window_withdraw ##### -->
+<para>
+
+</para>
+
+@window:
+
+
+<!-- ##### FUNCTION gdk_window_move ##### -->
+<para>
+
+</para>
+
+@window:
+@x:
+@y:
+
+
+<!-- ##### FUNCTION gdk_window_resize ##### -->
+<para>
+
+</para>
+
+@window:
+@width:
+@height:
+
+
+<!-- ##### FUNCTION gdk_window_move_resize ##### -->
+<para>
+
+</para>
+
+@window:
+@x:
+@y:
+@width:
+@height:
+
+
+<!-- ##### FUNCTION gdk_window_reparent ##### -->
+<para>
+
+</para>
+
+@window:
+@new_parent:
+@x:
+@y:
+
+
+<!-- ##### FUNCTION gdk_window_clear ##### -->
+<para>
+
+</para>
+
+@window:
+
+
+<!-- ##### FUNCTION gdk_window_clear_area ##### -->
+<para>
+
+</para>
+
+@window:
+@x:
+@y:
+@width:
+@height:
+
+
+<!-- ##### FUNCTION gdk_window_clear_area_e ##### -->
+<para>
+
+</para>
+
+@window:
+@x:
+@y:
+@width:
+@height:
+
+
+<!-- ##### FUNCTION gdk_window_copy_area ##### -->
+<para>
+
+</para>
+
+@window:
+@gc:
+@x:
+@y:
+@source_window:
+@source_x:
+@source_y:
+@width:
+@height:
+
+
+<!-- ##### FUNCTION gdk_window_raise ##### -->
+<para>
+
+</para>
+
+@window:
+
+
+<!-- ##### FUNCTION gdk_window_lower ##### -->
+<para>
+
+</para>
+
+@window:
+
+
+<!-- ##### FUNCTION gdk_window_register_dnd ##### -->
+<para>
+
+</para>
+
+@window:
+
+
+<!-- ##### FUNCTION gdk_window_set_user_data ##### -->
+<para>
+
+</para>
+
+@window:
+@user_data:
+
+
+<!-- ##### FUNCTION gdk_window_set_override_redirect ##### -->
+<para>
+
+</para>
+
+@window:
+@override_redirect:
+
+
+<!-- ##### FUNCTION gdk_window_add_filter ##### -->
+<para>
+
+</para>
+
+@window:
+@function:
+@data:
+
+
+<!-- ##### FUNCTION gdk_window_remove_filter ##### -->
+<para>
+
+</para>
+
+@window:
+@function:
+@data:
+
+
+<!-- ##### USER_FUNCTION GdkFilterFunc ##### -->
+<para>
+
+</para>
+
+@xevent:
+@event:
+@data:
+@Returns:
+
+
+<!-- ##### ENUM GdkFilterReturn ##### -->
+<para>
+
+</para>
+
+@GDK_FILTER_CONTINUE:
+@GDK_FILTER_TRANSLATE:
+@GDK_FILTER_REMOVE:
+
+<!-- ##### FUNCTION gdk_window_shape_combine_mask ##### -->
+<para>
+
+</para>
+
+@window:
+@shape_mask:
+@offset_x:
+@offset_y:
+
+
+<!-- ##### FUNCTION gdk_window_set_child_shapes ##### -->
+<para>
+
+</para>
+
+@window:
+
+
+<!-- ##### FUNCTION gdk_window_merge_child_shapes ##### -->
+<para>
+
+</para>
+
+@window:
+
+
+<!-- ##### FUNCTION gdk_window_set_static_gravities ##### -->
+<para>
+
+</para>
+
+@window:
+@use_static:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_window_set_hints ##### -->
+<para>
+
+</para>
+
+@window:
+@x:
+@y:
+@min_width:
+@min_height:
+@max_width:
+@max_height:
+@flags:
+
+
+<!-- ##### FUNCTION gdk_window_set_title ##### -->
+<para>
+
+</para>
+
+@window:
+@title:
+
+
+<!-- ##### FUNCTION gdk_window_set_background ##### -->
+<para>
+
+</para>
+
+@window:
+@color:
+
+
+<!-- ##### FUNCTION gdk_window_set_back_pixmap ##### -->
+<para>
+
+</para>
+
+@window:
+@pixmap:
+@parent_relative:
+
+
+<!-- ##### MACRO GDK_PARENT_RELATIVE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION gdk_window_set_cursor ##### -->
+<para>
+
+</para>
+
+@window:
+@cursor:
+
+
+<!-- ##### FUNCTION gdk_window_set_colormap ##### -->
+<para>
+
+</para>
+
+@window:
+@colormap:
+
+
+<!-- ##### FUNCTION gdk_window_get_user_data ##### -->
+<para>
+
+</para>
+
+@window:
+@data:
+
+
+<!-- ##### FUNCTION gdk_window_get_geometry ##### -->
+<para>
+
+</para>
+
+@window:
+@x:
+@y:
+@width:
+@height:
+@depth:
+
+
+<!-- ##### FUNCTION gdk_window_set_geometry_hints ##### -->
+<para>
+
+</para>
+
+@window:
+@geometry:
+@flags:
+
+
+<!-- ##### FUNCTION gdk_window_get_position ##### -->
+<para>
+
+</para>
+
+@window:
+@x:
+@y:
+
+
+<!-- ##### FUNCTION gdk_window_get_root_origin ##### -->
+<para>
+
+</para>
+
+@window:
+@x:
+@y:
+
+
+<!-- ##### FUNCTION gdk_window_get_size ##### -->
+<para>
+
+</para>
+
+@window:
+@width:
+@height:
+
+
+<!-- ##### FUNCTION gdk_window_get_visual ##### -->
+<para>
+
+</para>
+
+@window:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_window_get_colormap ##### -->
+<para>
+
+</para>
+
+@window:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_window_get_type ##### -->
+<para>
+
+</para>
+
+@window:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_window_get_origin ##### -->
+<para>
+
+</para>
+
+@window:
+@x:
+@y:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_window_get_deskrelative_origin ##### -->
+<para>
+
+</para>
+
+@window:
+@x:
+@y:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_window_get_pointer ##### -->
+<para>
+
+</para>
+
+@window:
+@x:
+@y:
+@mask:
+@Returns:
+
+
+<!-- ##### ENUM GdkModifierType ##### -->
+<para>
+
+</para>
+
+@GDK_SHIFT_MASK:
+@GDK_LOCK_MASK:
+@GDK_CONTROL_MASK:
+@GDK_MOD1_MASK:
+@GDK_MOD2_MASK:
+@GDK_MOD3_MASK:
+@GDK_MOD4_MASK:
+@GDK_MOD5_MASK:
+@GDK_BUTTON1_MASK:
+@GDK_BUTTON2_MASK:
+@GDK_BUTTON3_MASK:
+@GDK_BUTTON4_MASK:
+@GDK_BUTTON5_MASK:
+@GDK_RELEASE_MASK:
+@GDK_MODIFIER_MASK:
+
+<!-- ##### FUNCTION gdk_window_get_parent ##### -->
+<para>
+
+</para>
+
+@window:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_window_get_toplevel ##### -->
+<para>
+
+</para>
+
+@window:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_window_get_children ##### -->
+<para>
+
+</para>
+
+@window:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_window_get_events ##### -->
+<para>
+
+</para>
+
+@window:
+@Returns:
+
+
+<!-- ##### FUNCTION gdk_window_set_events ##### -->
+<para>
+
+</para>
+
+@window:
+@event_mask:
+
+
+<!-- ##### FUNCTION gdk_window_set_icon ##### -->
+<para>
+
+</para>
+
+@window:
+@icon_window:
+@pixmap:
+@mask:
+
+
+<!-- ##### FUNCTION gdk_window_set_icon_name ##### -->
+<para>
+
+</para>
+
+@window:
+@name:
+
+
+<!-- ##### FUNCTION gdk_window_set_transient_for ##### -->
+<para>
+
+</para>
+
+@window:
+@leader:
+
+
+<!-- ##### FUNCTION gdk_window_set_role ##### -->
+<para>
+
+</para>
+
+@window:
+@role:
+
+
+<!-- ##### FUNCTION gdk_window_set_group ##### -->
+<para>
+
+</para>
+
+@window:
+@leader:
+
+
+<!-- ##### FUNCTION gdk_window_set_decorations ##### -->
+<para>
+
+</para>
+
+@window:
+@decorations:
+
+
+<!-- ##### ENUM GdkWMDecoration ##### -->
+<para>
+
+</para>
+
+@GDK_DECOR_ALL:
+@GDK_DECOR_BORDER:
+@GDK_DECOR_RESIZEH:
+@GDK_DECOR_TITLE:
+@GDK_DECOR_MENU:
+@GDK_DECOR_MINIMIZE:
+@GDK_DECOR_MAXIMIZE:
+
+<!-- ##### FUNCTION gdk_window_set_functions ##### -->
+<para>
+
+</para>
+
+@window:
+@functions:
+
+
+<!-- ##### ENUM GdkWMFunction ##### -->
+<para>
+
+</para>
+
+@GDK_FUNC_ALL:
+@GDK_FUNC_RESIZE:
+@GDK_FUNC_MOVE:
+@GDK_FUNC_MINIMIZE:
+@GDK_FUNC_MAXIMIZE:
+@GDK_FUNC_CLOSE:
+
+<!-- ##### FUNCTION gdk_window_get_toplevels ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### STRUCT GdkDrawable ##### -->
+<para>
+
+</para>
+
+@user_data:
+
+<!-- ##### FUNCTION gdk_drawable_set_data ##### -->
+<para>
+
+</para>
+
+@drawable:
+@key:
+@data:
+@destroy_func:
+
+