chiark / gitweb /
Made iter argument to TREE-MODEL-ITER-N-CHILDREN optional
[clg] / gtk / gtkselection.lisp
index c4b528eb50d698392b56400fd39fe52f2f935c04..d3e7ec2ee15ff5edc061556a6fe89736c99ed902 100644 (file)
@@ -1,5 +1,5 @@
 ;; Common Lisp bindings for GTK+ v2.x
-;; Copyright 2005 Espen S. Johnsen <espen@users.sf.net>
+;; Copyright 2005-2006 Espen S. Johnsen <espen@users.sf.net>
 ;;
 ;; 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.3 2006-02-08 21:58:49 espen Exp $
+;; $Id: gtkselection.lisp,v 1.9 2006-04-26 12:30:30 espen Exp $
 
 
 (in-package "GTK")
@@ -34,23 +34,12 @@ (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))
   
-(defmethod initialize-instance ((target-list target-list) &key targets)
-  (setf
-   (slot-value target-list 'location)
-   (%target-list-new targets))
-  (call-next-method))
+(defmethod allocate-foreign ((target-list target-list) &key targets)
+  (%target-list-new targets))
 
 (defbinding target-list-add (target-list target &optional flags info) nil
   (target-list target-list)
@@ -69,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)
@@ -100,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)
@@ -145,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)
@@ -166,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))
@@ -186,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
@@ -212,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))
@@ -220,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
@@ -275,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))
 
@@ -291,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))
 
@@ -343,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))
@@ -467,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))