X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/blobdiff_plain/9176d3016a7e5a30d32cbbb68ba4cfbac6ef4394..995eb841c0c43cb35740619c5ae9c0bde939b18b:/gtk/gtkselection.lisp diff --git a/gtk/gtkselection.lisp b/gtk/gtkselection.lisp index 3c0eee2..d3e7ec2 100644 --- a/gtk/gtkselection.lisp +++ b/gtk/gtkselection.lisp @@ -1,5 +1,5 @@ ;; Common Lisp bindings for GTK+ v2.x -;; Copyright 2005 Espen S. Johnsen +;; Copyright 2005-2006 Espen S. Johnsen ;; ;; Permission is hereby granted, free of charge, to any person obtaining ;; a copy of this software and associated documentation files (the @@ -20,7 +20,7 @@ ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: gtkselection.lisp,v 1.5 2006-02-09 22:32:47 espen Exp $ +;; $Id: gtkselection.lisp,v 1.9 2006-04-26 12:30:30 espen Exp $ (in-package "GTK") @@ -34,14 +34,6 @@ (defbinding %target-list-ref () pointer (defbinding %target-list-unref () nil (location pointer)) -(defmethod reference-foreign ((class (eql (find-class 'target-list))) location) - (declare (ignore class)) - (%target-list-ref location)) - -(defmethod unreference-foreign ((class (eql (find-class 'target-list))) location) - (declare (ignore class)) - (%target-list-unref location)) - (defbinding %target-list-new () pointer (targets (vector (inlined target-entry))) ((length targets) int)) @@ -66,7 +58,7 @@ (defbinding target-list-add-table (target-list targets) nil (target-entry 1)) int)) -#+gtk2.6 +#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (progn (defbinding target-list-add-text-targets (target-list info &optional writable-p) nil (target-list target-list) @@ -97,7 +89,8 @@ (defbinding (selection-set-owner "gtk_selection_owner_set_for_display") boolean (display gdk:display) (widget widget) - ((gdk:atom-intern selection) gdk:atom)) + ((gdk:atom-intern selection) gdk:atom) + (time (unsigned 32))) (defbinding selection-add-target () nil (widget widget) @@ -142,7 +135,7 @@ (defbinding selection-data-set-text () boolean (defbinding selection-data-get-text () string (selection-data selection-data)) -#+gtk2.6 +#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (progn (defbinding selection-data-set-pixbuf () boolean (selection-data selection-data) @@ -163,7 +156,7 @@ (defbinding selection-data-get-targets () boolean (targets (vector gdk:atom n-atoms)) (n-atoms int)) -#+gtk2.6 +#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (defbinding selection-data-targets-include-image-p (selection-data &optional writable-p) boolean (selection-data selection-data) (writable-p boolean)) @@ -183,22 +176,23 @@ (defbinding (clipboard-get "gtk_clipboard_get_for_display") ((gdk:atom-intern selection) gdk:atom)) -(defcallback %clipboard-get-func (nil (clipboard pointer) - (selection-data selection-data) - (info int) - (user-data unsigned-int)) - (funcall (car (find-user-data user-data)) selection-data info)) +(define-callback %clipboard-get-callback nil + ((clipboard pointer) (selection-data selection-data) + (info int) (callback-ids unsigned-int)) + (declare (ignore clipboard)) + (funcall (car (find-user-data callback-ids)) selection-data info)) -(defcallback %clipboard-clear-func (nil (clipboard pointer) - (user-data unsigned-int)) - (funcall (cdr (find-user-data user-data)))) +(define-callback %clipboard-clear-callback nil + ((clipboard pointer) (callback-ids unsigned-int)) + (declare (ignore clipboard)) + (funcall (cdr (find-user-data callback-ids)))) (defbinding clipboard-set-with-data (clipboard targets get-func clear-func) gobject (clipboard clipboard) (targets (vector (inlined target-entry))) ((length targets) unsigned-int) - (%clipboard-get-func callback) - (%clipboard-clear-func callback) + (%clipboard-get-callback callback) + (%clipboard-clear-callback callback) ((register-user-data (cons get-func clear-func)) unsigned-int)) (defbinding clipboard-clear () nil @@ -209,7 +203,7 @@ (defbinding clipboard-set-text (clipboard text) nil (text string) ((length text) int)) -#+gtk2.6 +#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (defbinding clipboard-set-image () nil (clipboard clipboard) (pixbuf gdk:pixbuf)) @@ -217,53 +211,47 @@ (defbinding clipboard-set-image () nil (defun clipboard-set (clipboard object) (etypecase object (string (clipboard-set-text clipboard object)) - #+gtk2.6 + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (gdk:pixbuf (clipboard-set-image clipboard object)))) -(defcallback %clipboard-receive-func (nil (clipboard pointer) - (selection-data selection-data) - (user-data unsigned-int)) - (funcall (find-user-data user-data) selection-data)) +(define-callback-marshal %clipboard-receive-callback nil + ((:ignore clipboard) selection-data)) (defbinding clipboard-request-contents (clipboard target callback) nil (clipboard clipboard) ((gdk:atom-intern target) gdk:atom) - (%clipboard-receive-func callback) + (%clipboard-receive-callback callback) ((register-callback-function callback) unsigned-int)) -(defcallback %clipboard-text-receive-func (nil (clipboard pointer) - (text (copy-of string)) - (user-data unsigned-int)) - (funcall (find-user-data user-data) text)) +(define-callback-marshal %clipboard-text-receive-callback nil + ((:ignore clipboard) (text string))) + (defbinding clipboard-request-text (clipboard callback) nil (clipboard clipboard) - (%clipboard-text-receive-func callback) + (%clipboard-text-receive-callback callback) ((register-callback-function callback) unsigned-int)) -#+gtk2.6 +#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (progn - (defcallback %clipboard-image-receive-func (nil (clipboard pointer) - (image gdk:pixbuf) - (user-data unsigned-int)) - (funcall (find-user-data user-data) image)) + (define-callback-marshal %clipboard-image-receive-callback nil + ((:ignore clipboard) (image gdk:pixbuf))) (defbinding clipboard-request-image (clipboard callback) nil (clipboard clipboard) - (%clipboard-image-receive-func callback) + (%clipboard-image-receive-callback callback) ((register-callback-function callback) unsigned-int))) -(defcallback %clipboard-targets-receive-func - (nil (clipboard pointer) - (atoms (vector gdk:atom n-atoms)) - (n-atoms unsigned-int) - (user-data unsigned-int)) - (funcall (find-user-data user-data) atoms)) +(define-callback %clipboard-targets-receive-callback nil + ((clipboard pointer) (atoms (vector gdk:atom n-atoms)) + (n-atoms unsigned-int) (callback-id unsigned-int)) + (declare (ignore clipboard)) + (funcall (find-user-data callback-id) atoms)) (defbinding clipboard-request-targets (clipboard callback) nil (clipboard clipboard) - (%clipboard-targets-receive-func callback) + (%clipboard-targets-receive-callback callback) ((register-callback-function callback) unsigned-int)) (defbinding clipboard-wait-for-contents () selection-data @@ -272,14 +260,14 @@ (defbinding clipboard-wait-for-contents () selection-data (defbinding clipboard-wait-for-text () string (clipboard clipboard)) -#+gtk2.6 +#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (defbinding clipboard-wait-for-image () (referenced gdk:pixbuf) (clipboard clipboard)) (defbinding clipboard-wait-is-text-available-p () boolean (clipboard clipboard)) -#+gtk2.6 +#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (defbinding clipboard-wait-is-image-available-p () boolean (clipboard clipboard)) @@ -288,18 +276,18 @@ (defbinding clipboard-wait-for-targets () boolean (targets (vector gdk:atom n-targets) :out) (n-targets unsigned-int :out)) -#+gtk2.6 +#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (defbinding clipboard-wait-is-target-available-p () boolean (clipboard clipboard) (target gdk:atom)) -#+gtk2.6 +#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (defbinding clipboard-set-can-store () nil (clipboard clipboard) (targets (vector gdk:atom)) ((length targets) int)) -#+gtk2.6 +#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (defbinding clipboard-store () nil (clipboard clipboard)) @@ -340,7 +328,7 @@ (defbinding drag-dest-set-target-list () nil (widget widget) (targets target-list)) -#+gtk2.6 +#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (progn (defbinding drag-dest-add-text-targets () nil (widget widget)) @@ -464,7 +452,7 @@ (defbinding drag-source-set-target-list () nil (defbinding drag-source-get-target-list () target-list (widget widget)) -#+gtk2.6 +#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (progn (defbinding drag-source-add-text-targets () nil (widget widget))