+(def-callback-marshal %entry-completion-match-func
+ (boolean entry-completion string (copy-of tree-iter)))
+
+(defbinding entry-completion-set-match-func (completion function) nil
+ (completion entry-completion)
+ ((callback %entry-completion-match-func) pointer)
+ ((register-callback-function function) unsigned-int)
+ ((callback %destroy-user-data) pointer))
+
+(defbinding entry-completion-complete () nil
+ (completion entry-completion))
+
+#+gtk2.6
+(defbinding entry-completion-insert-prefix () nil
+ (completion entry-completion))
+
+(defbinding entry-completion-insert-action-text () nil
+ (completion entry-completion)
+ (index int)
+ (text string))
+
+(defbinding entry-completion-insert-action-markup () nil
+ (completion entry-completion)
+ (index int)
+ (markup string))
+
+(defbinding entry-completion-delete-action () nil
+ (completion entry-completion)
+ (index int))
+
+
+;;; Image
+
+(defbinding image-set-from-file () nil
+ (image image)
+ (filename pathname))
+
+(defbinding image-set-from-pixmap () nil
+ (image image)
+ (pixmap gdk:pixmap)
+ (mask gdk:bitmap))
+
+(defbinding image-set-from-stock () nil
+ (image image)
+ (stock-id string)
+ (icon-size icon-size))
+
+(defun image-set-from-pixmap-data (image pixmap-data)
+ (multiple-value-bind (pixmap mask) (gdk:pixmap-create pixmap-data)
+ (image-set-from-pixmap image pixmap mask)))
+
+(defun image-set-from-source (image source)
+ (etypecase source
+ (pathname (image-set-from-file image source))
+ (string (if (stock-lookup source)
+ (setf (image-stock image) source)
+ (image-set-from-file image source)))
+ (vector (image-set-from-pixmap-data image source))))
+
+
+(defmethod shared-initialize ((image image) names &rest initargs
+ &key file pixmap source)
+ (prog1
+ (if (vectorp pixmap)
+ (progn
+ (remf initargs :pixmap)
+ (apply #'call-next-method image names initargs))
+ (call-next-method))
+ (cond
+ (file (image-set-from-file image file))
+ ((vectorp pixmap) (image-set-from-pixmap-data image pixmap))
+ (source (image-set-from-source image source)))))