chiark / gitweb /
Minor required changes
[clg] / gtk / gtkselection.lisp
index 7e7f52c379cf32c7a2b231caa6fed42e00b51f74..8b72f49340aecfd38d9d99ee0a5fc16625de2462 100644 (file)
@@ -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.1 2006-02-06 11:57:27 espen Exp $
+;; $Id: gtkselection.lisp,v 1.8 2006-04-10 18:54:47 espen Exp $
 
 
 (in-package "GTK")
@@ -28,20 +28,6 @@ (in-package "GTK")
 
 ;;;; Selection
 
-(defbinding %selection-data-copy () pointer
-  (location pointer))
-  
-(defbinding %selection-data-free () nil
-  (location pointer))
-
-(defmethod reference-foreign ((class (eql (find-class 'selection-data))) location)
-  (declare (ignore class))
-  (%selection-data-copy location))
-
-(defmethod unreference-foreign ((class (eql (find-class 'selection-data))) location)
-  (declare (ignore class))
-  (%selection-data-free location))
-
 (defbinding %target-list-ref () pointer
   (location pointer))
   
@@ -60,13 +46,10 @@ (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 targets &optional flags info) nil
+(defbinding target-list-add (target-list target &optional flags info) nil
   (target-list target-list)
   (target gdk:atom)
   (flags unsigned-int)
@@ -114,7 +97,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)
@@ -188,7 +172,7 @@ (defbinding selection-data-targets-include-image-p (selection-data &optional wri
 (defbinding selection-data-targets-include-text-p (selection-data) boolean
   (selection-data selection-data))
 
-(defbinding selection-remove-all (selection-data) boolean
+(defbinding selection-remove-all () boolean
   (widget widget))
 
 
@@ -200,22 +184,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 target-entry))
+  (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
@@ -237,50 +222,44 @@ (defun clipboard-set (clipboard object)
     #+gtk2.6
     (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
 (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 n-atoms))
+  (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
@@ -320,6 +299,7 @@ (defbinding clipboard-set-can-store () nil
 (defbinding clipboard-store () nil
   (clipboard clipboard))
 
+
 ;;;; Drag and Drop
 
 (defbinding drag-dest-set (widget flags targets actions) nil