(defmethod translate-to-foreign (value (type unichar))
(char-code value))
+(at-init () (foreign-funcall "gtk_text_iter_get_type" :int))
+
(define-g-boxed-opaque text-iter "GtkTextIter"
:alloc (gtk-text-iter-alloc))
(define-boxed-opaque-accessor text-iter text-iter-language :reader "gtk_text_iter_get_language" :type :pointer)
(define-boxed-opaque-accessor text-iter text-iter-is-end :reader "gtk_text_iter_is_end" :type :boolean)
(define-boxed-opaque-accessor text-iter text-iter-is-start :reader "gtk_text_iter_is_start" :type :boolean)
-(define-boxed-opaque-accessor text-iter text-iter-can-insert :reader "gtk_text_iter_can_insert" :type :boolean)
(define-boxed-opaque-accessor text-iter text-iter-starts-word :reader "gtk_text_iter_starts_word" :type :boolean)
(define-boxed-opaque-accessor text-iter text-iter-ends-word :reader "gtk_text_iter_ends_word" :type :boolean)
(define-boxed-opaque-accessor text-iter text-iter-inside-word :reader "gtk_text_iter_inside_word" :type :boolean)
(with-foreign-object (iter '%text-iter)
(gtk-text-iter-copy iter)))
-(defcfun (text-iter-slice "gtk_text_iter_get_slice") (:string :free-from-foreign t)
+(defcfun (text-iter-slice "gtk_text_iter_get_slice") (g-string :free-from-foreign t)
(start (g-boxed-foreign text-iter))
(end (g-boxed-foreign text-iter)))
(export 'text-iter-slice)
-(defcfun (text-iter-text "gtk_text_iter_get_text") (:string :free-from-foreign t)
+(defcfun (text-iter-text "gtk_text_iter_get_text") (g-string :free-from-foreign t)
(start (g-boxed-foreign text-iter))
(end (g-boxed-foreign text-iter)))
(export 'text-iter-text)
-(defcfun (text-iter-visible-slice "gtk_text_iter_get_visible_slice") (:string :free-from-foreign t)
+(defcfun (text-iter-visible-slice "gtk_text_iter_get_visible_slice") (g-string :free-from-foreign t)
(start (g-boxed-foreign text-iter))
(end (g-boxed-foreign text-iter)))
(export 'text-iter-visible-slice)
-(defcfun (text-iter-visible-text "gtk_text_iter_get_visible_text") (:string :free-from-foreign t)
+(defcfun (text-iter-visible-text "gtk_text_iter_get_visible_text") (g-string :free-from-foreign t)
(start (g-boxed-foreign text-iter))
(end (g-boxed-foreign text-iter)))
(export 'text-iter-editable)
+(defcfun (text-iter-can-insert "gtk_text_iter_can_insert") :boolean
+ (iter (g-boxed-foreign text-iter))
+ (default-editable :boolean))
+
+(export 'text-iter-can-insert)
+
(defcfun gtk-text-iter-get-attributes :boolean
(iter (g-boxed-foreign text-iter))
(values (g-object text-attributes)))
(gtk-text-iter-forward-search start-position string flags i1 i2 limit)
(gtk-text-iter-backward-search start-position string flags i1 i2 limit))
(values t i1 i2)
- (progn (release i1)
- (release i2)
- (values nil nil nil)))))
+ (values nil nil nil))))
(export 'text-iter-search)
(export 'text-iter-order)
-;; text mark
-
-(defcfun (text-mark-visible "gtk_text_mark_get_visible") :boolean
- (mark (g-object text-mark)))
-
-(defcfun gtk-text-mark-set-visible :void
- (mark (g-object text-mark))
- (visible :boolean))
-
-(defun (setf text-mark-visible) (new-value mark)
- (gtk-text-mark-set-visible mark new-value))
-
-(export 'text-mark-visible)
-
-(defcfun (text-mark-deleted "gtk_text_mark_get_deleted") :boolean
- (mark (g-object text-mark)))
-
-(export 'text-mark-deleted)
-
-(defcfun (text-mark-buffer "gtk_text_mark_get_buffer") (g-object text-buffer)
- (mark (g-object text-mark)))
-
-(export 'text-mark-buffer)
-
;; text buffer
(defcfun (text-buffer-line-count "gtk_text_buffer_get_line_count") :int
(export 'text-buffer-insertion-mark)
(defcfun (text-buffer-selection-bound "gtk_text_buffer_get_selection_bound") (g-object text-mark)
- (buffer (g-object text-buffer))
- (name (:string :free-to-foreign t)))
+ (buffer (g-object text-buffer)))
(export 'text-buffer-selection-bound)
(defcfun (text-buffer-cut-clipboard "gtk_text_buffer_cut_clipboard") :void
(buffer (g-object text-buffer))
- (clipboard (g-object clipboard)))
+ (clipboard (g-object clipboard))
+ (default-editable :boolean))
(export 'text-buffer-cut-clipboard)
(i2 (make-instance 'text-iter)))
(if (gtk-text-buffer-get-selection-bounds buffer i1 i2)
(values i1 i2)
- (progn (release i1)
- (release i2)
- (values nil nil)))))
+ (values nil nil))))
(export 'text-buffer-get-selection-bounds)
(export 'text-buffer-remove-selection-clipboard)
-;; enum GtkTextBufferTargetInfo;
-;; gboolean (*GtkTextBufferDeserializeFunc) (GtkTextBuffer *register_buffer,
-;; GtkTextBuffer *content_buffer,
-;; GtkTextIter *iter,
-;; const guint8 *data,
-;; gsize length,
-;; gboolean create_tags,
-;; gpointer user_data,
-;; GError **error);
-;; gboolean gtk_text_buffer_deserialize (GtkTextBuffer *register_buffer,
-;; GtkTextBuffer *content_buffer,
-;; GdkAtom format,
-;; GtkTextIter *iter,
-;; const guint8 *data,
-;; gsize length,
-;; GError **error);
-;; gboolean gtk_text_buffer_deserialize_get_can_create_tags
-;; (GtkTextBuffer *buffer,
-;; GdkAtom format);
-;; void gtk_text_buffer_deserialize_set_can_create_tags
-;; (GtkTextBuffer *buffer,
-;; GdkAtom format,
-;; gboolean can_create_tags);
-;; GtkTargetList* gtk_text_buffer_get_copy_target_list
-;; (GtkTextBuffer *buffer);
-;; GdkAtom* gtk_text_buffer_get_deserialize_formats
-;; (GtkTextBuffer *buffer,
-;; gint *n_formats);
-;; GtkTargetList* gtk_text_buffer_get_paste_target_list
-;; (GtkTextBuffer *buffer);
-;; GdkAtom* gtk_text_buffer_get_serialize_formats
-;; (GtkTextBuffer *buffer,
-;; gint *n_formats);
-;; GdkAtom gtk_text_buffer_register_deserialize_format
-;; (GtkTextBuffer *buffer,
-;; const gchar *mime_type,
-;; GtkTextBufferDeserializeFunc function,
-;; gpointer user_data,
-;; GDestroyNotify user_data_destroy);
-;; GdkAtom gtk_text_buffer_register_deserialize_tagset
-;; (GtkTextBuffer *buffer,
-;; const gchar *tagset_name);
-;; GdkAtom gtk_text_buffer_register_serialize_format
-;; (GtkTextBuffer *buffer,
-;; const gchar *mime_type,
-;; GtkTextBufferSerializeFunc function,
-;; gpointer user_data,
-;; GDestroyNotify user_data_destroy);
-;; GdkAtom gtk_text_buffer_register_serialize_tagset
-;; (GtkTextBuffer *buffer,
-;; const gchar *tagset_name);
-;; guint8* (*GtkTextBufferSerializeFunc) (GtkTextBuffer *register_buffer,
-;; GtkTextBuffer *content_buffer,
-;; const GtkTextIter *start,
-;; const GtkTextIter *end,
-;; gsize *length,
-;; gpointer user_data);
-;; guint8* gtk_text_buffer_serialize (GtkTextBuffer *register_buffer,
-;; GtkTextBuffer *content_buffer,
-;; GdkAtom format,
-;; const GtkTextIter *start,
-;; const GtkTextIter *end,
-;; gsize *length);
-;; void gtk_text_buffer_unregister_deserialize_format
-;; (GtkTextBuffer *buffer,
-;; GdkAtom format);
-;; void gtk_text_buffer_unregister_serialize_format
-;; (GtkTextBuffer *buffer,
-;; GdkAtom format);
+(defcfun gtk-text-buffer-deserialize :boolean
+ (register-buffer (g-object text-buffer))
+ (content-buffer (g-object text-buffer))
+ (format gdk-atom-as-string)
+ (iter (g-boxed-foreign text-iter))
+ (data :pointer)
+ (length gsize)
+ (error :pointer))
+
+(defun text-buffer-deserialize (register-buffer content-buffer format iter data)
+ (let ((bytes (foreign-alloc :uint8 :count (length data))))
+ (iter (for i from 0 below (length data))
+ (setf (mem-aref bytes :uint8 i) (aref data i)))
+ (unwind-protect
+ (with-g-error (err)
+ (gtk-text-buffer-deserialize register-buffer content-buffer
+ format iter bytes (length data) err))
+ (foreign-free bytes))))
+
+(export 'text-buffer-deserialize)
+
+(defcfun (text-buffer-deserialize-can-create-tags "gtk_text_buffer_deserialize_get_can_create_tags") :boolean
+ (buffer (g-object text-buffer))
+ (format gdk-atom-as-string))
+
+(defcfun gtk-text-buffer-deserialize-set-can-create-tags :void
+ (buffer (g-object text-buffer))
+ (format gdk-atom-as-string)
+ (can-create-tags :boolean))
+
+(defun (setf text-buffer-deserialize-can-create-tags) (new-value buffer format)
+ (gtk-text-buffer-deserialize-set-can-create-tags buffer format new-value))
+
+(export 'text-buffer-deserialize-can-create-tags)
+
+(defcfun gtk-text-buffer-get-deserialize-formats (:pointer gdk-atom-as-string)
+ (text-buffer (g-object text-buffer))
+ (n-formats (:pointer :int)))
+
+(defun text-buffer-get-deserialize-formats (text-buffer)
+ (with-foreign-object (n-formats :int)
+ (let ((atoms-ptr (gtk-text-buffer-get-deserialize-formats text-buffer n-formats)))
+ (iter (for i from 0 below (mem-ref n-formats :int))
+ (for atom = (mem-aref atoms-ptr 'gdk-atom-as-string i))
+ (collect atom)))))
+
+(export 'text-buffer-get-deserialize-formats)
+
+(defcfun gtk-text-buffer-get-serialize-formats (:pointer gdk-atom-as-string)
+ (text-buffer (g-object text-buffer))
+ (n-formats (:pointer :int)))
+
+(defun text-buffer-get-serialize-formats (text-buffer)
+ (with-foreign-object (n-formats :int)
+ (let ((atoms-ptr (gtk-text-buffer-get-serialize-formats text-buffer n-formats)))
+ (iter (for i from 0 below (mem-ref n-formats :int))
+ (for atom = (mem-aref atoms-ptr 'gdk-atom-as-string i))
+ (collect atom)))))
+
+(export 'text-buffer-get-serialize-formats)
+
+(defcallback gtk-text-buffer-deserialize-cb :boolean
+ ((register-buffer (g-object text-buffer))
+ (content-buffer (g-object text-buffer))
+ (iter (g-boxed-foreign text-iter))
+ (data :pointer)
+ (length gsize)
+ (create-tags :boolean)
+ (user-data :pointer)
+ (error :pointer))
+ (with-catching-to-g-error (error)
+ (let ((fn (stable-pointer-value user-data)))
+ (restart-case
+ (let ((bytes (iter (with bytes = (make-array length :element-type '(unsigned-byte 8)))
+ (for i from 0 below length)
+ (setf (aref bytes i) (mem-ref data :uint8 i))
+ (finally (return bytes)))))
+ (progn (funcall fn register-buffer content-buffer iter bytes create-tags) t))
+ (return-from-text-buffer-deserialize-cb ()
+ (error 'g-error-condition
+ :domain "cl-gtk2"
+ :code 0
+ :message "'return-from-text-buffer-deserialize-cb' restart was called"))))))
+
+(defcfun gtk-text-buffer-register-deserialize-format gdk-atom-as-string
+ (buffer (g-object text-buffer))
+ (mime-type :string)
+ (function :pointer)
+ (user-data :pointer)
+ (destroy-notify :pointer))
+
+(defun text-buffer-register-deserialize-format (buffer mime-type function)
+ (gtk-text-buffer-register-deserialize-format buffer mime-type
+ (callback gtk-text-buffer-deserialize-cb)
+ (allocate-stable-pointer function)
+ (callback stable-pointer-free-destroy-notify-callback)))
+
+(export 'text-buffer-register-deserialize-format)
+
+(defcfun (text-buffer-register-deserialize-tagset "gtk_text_buffer_register_deserialize_tagset") gdk-atom-as-string
+ (buffer (g-object text-buffer))
+ (tagset-name :string))
+
+(export 'text-buffer-register-deserialize-tagset)
+
+(defcallback gtk-text-buffer-serialize-cb :pointer
+ ((register-buffer (g-object text-buffer))
+ (content-buffer (g-object text-buffer))
+ (start-iter (g-boxed-foreign text-iter))
+ (end-iter (g-boxed-foreign text-iter))
+ (length (:pointer gsize))
+ (user-data :pointer))
+ (let ((fn (stable-pointer-value user-data)))
+ (restart-case
+ (let* ((bytes (funcall fn register-buffer content-buffer start-iter end-iter))
+ (bytes-ptr (g-malloc (length bytes))))
+ (setf (mem-ref length 'gsize) (length bytes))
+ (iter (for i from 0 below (length bytes))
+ (setf (mem-aref bytes-ptr :uint8 i) (aref bytes i)))
+ bytes-ptr)
+ (return-from-text-buffer-serialize-cb () nil))))
+
+(defcfun gtk-text-buffer-register-serialize-format gdk-atom-as-string
+ (buffer (g-object text-buffer))
+ (mime-type :string)
+ (function :pointer)
+ (user-data :pointer)
+ (destroy-notify :pointer))
+
+(defun text-buffer-register-serialize-format (buffer mime-type function)
+ (gtk-text-buffer-register-serialize-format buffer mime-type
+ (callback gtk-text-buffer-serialize-cb)
+ (allocate-stable-pointer function)
+ (callback stable-pointer-free-destroy-notify-callback)))
+
+(export 'text-buffer-register-serialize-format)
+
+(defcfun (text-buffer-register-serialize-tagset "gtk_text_buffer_register_serialize_tagset") gdk-atom-as-string
+ (buffer (g-object text-buffer))
+ (tagset-name :string))
+
+(export 'text-buffer-register-serialize-tagset)
+
+(defcfun gtk-text-buffer-serialize :pointer
+ (register-buffer (g-object text-buffer))
+ (content-buffer (g-object text-buffer))
+ (format gdk-atom-as-string)
+ (start (g-boxed-foreign text-iter))
+ (end (g-boxed-foreign text-iter))
+ (length (:pointer gsize)))
+
+(defun text-buffer-serialize (register-buffer content-buffer format start end)
+ (with-foreign-object (length 'gsize)
+ (let ((bytes (gtk-text-buffer-serialize register-buffer content-buffer format start end length)))
+ (iter (for i from 0 to (mem-ref length 'gsize))
+ (for byte = (mem-aref bytes :uint8 i))
+ (collect byte result-type vector)
+ (finally (g-free bytes))))))
+
+(export 'text-buffer-serialize)
+
+(defcfun (text-buffer-unregister-deserialize-format "gtk_text_buffer_unregister_deserialize_format") :void
+ (buffer (g-object text-buffer))
+ (format gdk-atom-as-string))
+
+(export 'text-buffer-unregister-deserialize-format)
+
+(defcfun (text-buffer-unregister-serialize-format "gtk_text_buffer_unregister_serialize_format") :void
+ (buffer (g-object text-buffer))
+ (format gdk-atom-as-string))
+
+(export 'text-buffer-unregister-serialize-format)
;; text tag
(y-align :double))
(defun text-view-scroll-to-mark (text-view mark &key (within-margin 0.4) (x-align 0.0 x-align-supplied) (y-align 0.0 y-align-supplied))
- (gtk-text-view-scroll-to-mark text-view mark within-margin (or x-align-supplied y-align-supplied) (coerce x-align 'double-float) (coerce y-align 'double-float)))
+ (gtk-text-view-scroll-to-mark text-view mark (coerce within-margin 'double-float) (or x-align-supplied y-align-supplied) (coerce x-align 'double-float) (coerce y-align 'double-float)))
(export 'text-view-scroll-to-mark)
(defcfun gtk-text-view-scroll-to-iter :void
(text-view (g-object text-view))
- (iter (g-object text-iter))
+ (iter (g-boxed-foreign text-iter))
(within-margin :double)
(use-align :boolean)
(x-align :double)
(y-align :double))
(defun text-view-scroll-to-iter (text-view iter &key (within-margin 0.4) (x-align 0.0 x-align-supplied) (y-align 0.0 y-align-supplied))
- (gtk-text-view-scroll-to-iter text-view iter within-margin (or x-align-supplied y-align-supplied) (coerce x-align 'double-float) (coerce y-align 'double-float)))
+ (gtk-text-view-scroll-to-iter text-view iter (coerce within-margin 'double-float) (or x-align-supplied y-align-supplied) (coerce x-align 'double-float) (coerce y-align 'double-float)))
(export 'text-view-scroll-to-iter)
+(defcfun (text-view-scroll-mark-onscreen "gtk_text_view_scroll_mark_onscreen") :void
+ (text-view (g-object text-view))
+ (mark (g-object text-mark)))
+
+(export 'text-view-scroll-mark-onscreen)
+
(defcfun (text-view-move-mark-onscreen "gtk_text_view_move_mark_onscreen") :boolean
(text-view (g-object text-view))
(mark (g-object text-mark)))
(export 'text-view-iter-location)
+(defcfun gtk-text-view-get-line-at-y :void
+ (text-view (g-object text-view))
+ (target-iter (g-boxed-foreign text-iter))
+ (y :int)
+ (line-top (:pointer :int)))
+
+(defun text-view-get-line-at-y (text-view y)
+ (let ((iter (make-instance 'text-iter)))
+ (with-foreign-object (line-top :int)
+ (gtk-text-view-get-line-at-y text-view iter y line-top)
+ (values iter (mem-ref line-top :int)))))
+
+(export 'text-view-get-line-at-y)
+
+(defcfun gtk-text-view-get-line-yrange :void
+ (text-view (g-object text-view))
+ (iter (g-boxed-foreign text-iter))
+ (y (:pointer :int))
+ (height (:pointer :int)))
-;; void gtk_text_view_get_line_at_y (GtkTextView *text_view,
-;; GtkTextIter *target_iter,
-;; gint y,
-;; gint *line_top);
-;; void gtk_text_view_get_line_yrange (GtkTextView *text_view,
-;; const GtkTextIter *iter,
-;; gint *y,
-;; gint *height);
+(defun text-view-get-line-yrange (text-view iter)
+ (with-foreign-objects ((y :int) (height :int))
+ (gtk-text-view-get-line-yrange text-view iter y height)
+ (values (mem-ref y :int) (mem-ref height :int))))
+
+(export 'text-view-get-line-yrange)
(defcfun gtk-text-view-get-iter-at-location :void
(text-view (g-object text-view))
(export 'text-view-get-iter-at-location)
-;; void gtk_text_view_get_iter_at_position (GtkTextView *text_view,
-;; GtkTextIter *iter,
-;; gint *trailing,
-;; gint x,
-;; gint y);
-;; void gtk_text_view_buffer_to_window_coords
-;; (GtkTextView *text_view,
-;; GtkTextWindowType win,
-;; gint buffer_x,
-;; gint buffer_y,
-;; gint *window_x,
-;; gint *window_y);
+(defcfun gtk-text-view-get-iter-at-position :void
+ (text-view (g-object text-view))
+ (iter (g-boxed-foreign text-iter))
+ (trailing (:pointer :int))
+ (x :int)
+ (y :int))
+
+(defun text-view-get-iter-at-position (text-view x y)
+ (with-foreign-object (trailing :int)
+ (let ((iter (make-instance 'text-iter)))
+ (gtk-text-view-get-iter-at-position text-view iter trailing x y)
+ (values iter (mem-ref trailing :int)))))
+
+(export 'text-view-get-iter-at-position)
+
+(defcfun gtk-text-view-buffer-to-window-coords :void
+ (text-view (g-object text-view))
+ (win text-window-type)
+ (buffer-x :int)
+ (buffer-y :int)
+ (window-x (:pointer :int))
+ (window-y (:pointer :int)))
+
+(defun text-view-buffer-to-window-coords (text-view window-type buffer-x buffer-y)
+ (with-foreign-objects ((window-x :int) (window-y :int))
+ (gtk-text-view-buffer-to-window-coords text-view window-type buffer-x buffer-y window-x window-y)
+ (values (mem-ref window-x :int) (mem-ref window-y :int))))
+
+(export 'text-view-buffer-to-window-coords)
(defcfun gtk-text-view-window-to-buffer-coords :void
(text-view (g-object text-view))
(export 'text-view-get-window)
-;; GtkTextWindowType gtk_text_view_get_window_type (GtkTextView *text_view,
-;; GdkWindow *window);
-;; void gtk_text_view_set_border_window_size
-;; (GtkTextView *text_view,
-;; GtkTextWindowType type,
-;; gint size);
-;; gint gtk_text_view_get_border_window_size
-;; (GtkTextView *text_view,
-;; GtkTextWindowType type);
-;; gboolean gtk_text_view_forward_display_line (GtkTextView *text_view,
-;; GtkTextIter *iter);
-;; gboolean gtk_text_view_backward_display_line (GtkTextView *text_view,
-;; GtkTextIter *iter);
-;; gboolean gtk_text_view_forward_display_line_end
-;; (GtkTextView *text_view,
-;; GtkTextIter *iter);
-;; gboolean gtk_text_view_backward_display_line_start
-;; (GtkTextView *text_view,
-;; GtkTextIter *iter);
-;; gboolean gtk_text_view_starts_display_line (GtkTextView *text_view,
-;; const GtkTextIter *iter);
-;; gboolean gtk_text_view_move_visually (GtkTextView *text_view,
-;; GtkTextIter *iter,
-;; gint count);
-;; void gtk_text_view_add_child_at_anchor (GtkTextView *text_view,
-;; GtkWidget *child,
-;; GtkTextChildAnchor *anchor);
+(defcfun (text-view-get-window-type "gtk_text_view_get_window_type") text-window-type
+ (text-view (g-object text-view))
+ (window (g-object gdk-window)))
+
+(export 'text-view-get-window-type)
+
+(defcfun gtk-text-view-set-border-window-size :void
+ (text-view (g-object text-view))
+ (window-type text-window-type)
+ (size :int))
+
+(defcfun (text-view-border-window-size "gtk_text_view_get_border_window_size") :int
+ (text-view (g-object text-view))
+ (window-type text-window-type))
+
+(defun (setf text-view-border-window-size) (new-value text-view window-type)
+ (gtk-text-view-set-border-window-size text-view window-type new-value)
+ new-value)
+
+(export 'text-view-border-window-size)
+
+(defcfun (text-view-forward-display-line "gtk_text_view_forward_display_line") :boolean
+ (text-view (g-object text-view))
+ (iter (g-boxed-foreign text-iter)))
+
+(export 'text-view-forward-display-line)
+
+(defcfun (text-view-backward-display-line "gtk_text_view_backward_display_line") :boolean
+ (text-view (g-object text-view))
+ (iter (g-boxed-foreign text-iter)))
+
+(export 'text-view-backward-display-line)
+
+(defcfun (text-view-forward-display-line-end "gtk_text_view_forward_display_line_end") :boolean
+ (text-view (g-object text-view))
+ (iter (g-boxed-foreign text-iter)))
+
+(export 'text-view-forward-display-line-end)
+
+(defcfun (text-view-backward-display-line-start "gtk_text_view_backward_display_line_start") :boolean
+ (text-view (g-object text-view))
+ (iter (g-boxed-foreign text-iter)))
+
+(export 'text-view-backward-display-line-start)
+
+(defcfun (text-view-starts-display-line "gtk_text_view_starts_display_line") :boolean
+ (text-view (g-object text-view))
+ (iter (g-boxed-foreign text-iter)))
+
+(export 'text-view-starts-display-line)
+
+(defcfun (text-view-move-visually "gtk_text_view_move_visually") :boolean
+ (text-view (g-object text-view))
+ (iter (g-boxed-foreign text-iter))
+ (count :int))
+
+(export 'text-view-move-visually)
(defcfun (text-view-add-child-at-anchor "gtk_text_view_add_child_at_anchor") :void
(text-view g-object)
(export 'text-view-add-child-at-anchor)
-;; GtkTextChildAnchor;
-;; GtkTextChildAnchor* gtk_text_child_anchor_new (void);
-;; GList* gtk_text_child_anchor_get_widgets (GtkTextChildAnchor *anchor);
-;; gboolean gtk_text_child_anchor_get_deleted (GtkTextChildAnchor *anchor);
-;; void gtk_text_view_add_child_in_window (GtkTextView *text_view,
-;; GtkWidget *child,
-;; GtkTextWindowType which_window,
-;; gint xpos,
-;; gint ypos);
-;; void gtk_text_view_move_child (GtkTextView *text_view,
-;; GtkWidget *child,
-;; gint xpos,
-;; gint ypos);
+(defcfun (text-child-anchor-widgets "gtk_text_child_anchor_get_widgets") (glist (g-object widget) :free-from-foreign t)
+ (anchor (g-object text-child-anchor)))
+
+(export 'text-child-anchor-widgets)
+
+(defcfun (text-view-add-child-in-window "gtk_text_view_add_child_in_window") :void
+ (text-view (g-object text-view))
+ (child (g-object widget))
+ (which-window text-window-type)
+ (x-pos :int)
+ (y-pos :int))
+
+(export 'text-view-add-child-in-window)
+
+(defcfun (text-view-move-child "gtk_text_view_move_child") :void
+ (text-view (g-object text-view))
+ (child (g-object widget))
+ (x-pos :int)
+ (y-pos :int))
+
+(export 'text-view-move-child)