chiark / gitweb /
Reintroduced SERVE-EVENT based asynchronous event handling for SBCL 1.0.15.6
[clg] / gtk / gtkselection.lisp
index 3a3968398d99d1bd57ab1693ec4c001b9560708f..df2bebd8a36dd277559a83ada98f8ce3eac7a5cc 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.10 2007-12-12 15:10:04 espen Exp $
+;; $Id: gtkselection.lisp,v 1.14 2008-01-02 16:01:17 espen Exp $
 
 
 (in-package "GTK")
@@ -45,7 +45,7 @@ (defbinding target-list-add (target-list target &optional flags info) nil
   (target-list target-list)
   ((gdk:atom-intern target) gdk:atom)
   (flags target-flags)
-  (info unsigned-int))
+  ((or info 0) unsigned-int))
 
 (defbinding target-list-add-table (target-list targets) nil
   (target-list target-list)
@@ -60,19 +60,19 @@ (defbinding target-list-add-table (target-list targets) nil
 
 #?(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
+  (defbinding target-list-add-text-targets (target-list  &optional info writable-p) nil
     (target-list target-list)
-    (info unsigned-int)
+    ((or info 0) unsigned-int)
     (writable-p boolean))
   
-  (defbinding target-list-add-image-targets (target-list info &optional writable-p) nil
+  (defbinding target-list-add-image-targets (target-list &optional info writable-p) nil
     (target-list target-list)
-    (info unsigned-int)
+    ((or info 0) unsigned-int)
     (writable-p boolean))
 
-  (defbinding target-list-add-uri-targets (target-list info &optional writable-p) nil
+  (defbinding target-list-add-uri-targets (target-list &optional info writable-p) nil
     (target-list target-list)
-    (info unsigned-int)
+    ((or info 0) unsigned-int)
     (writable-p boolean)))
 
 (defbinding target-list-remove (target-list target) nil
@@ -201,7 +201,8 @@ (define-callback %clipboard-clear-callback nil
   (declare (ignore clipboard))
   (funcall (cdr (find-user-data callback-ids))))
 
-(defbinding %clipboard-set-with-data (clipboard targets get-func clear-func) boolean
+;; Deprecated, use clipboard-set-contents
+(defbinding clipboard-set-with-data (clipboard targets get-func clear-func) boolean
   (clipboard clipboard)
   (targets (vector (inlined target-entry)))
   ((length targets) unsigned-int)
@@ -209,8 +210,8 @@ (defbinding %clipboard-set-with-data (clipboard targets get-func clear-func) boo
   (%clipboard-clear-callback callback)
   ((register-user-data (cons get-func clear-func)) unsigned-int))
 
-(defun clipboard-set-with-data (clipboard targets get-func &optional clear-func)
-  (%clipboard-set-with-data clipboard (ensure-target-table targets) 
+(defun clipboard-set-contents (clipboard targets get-func &optional clear-func)
+  (clipboard-set-with-data clipboard (ensure-target-table targets) 
    get-func (or clear-func #'(lambda ()))))
 
 (defbinding clipboard-clear () nil
@@ -226,11 +227,14 @@ (defbinding clipboard-set-image () nil
   (clipboard clipboard)
   (pixbuf gdk:pixbuf))
 
-(defun clipboard-set (clipboard object)
-  (etypecase object
-    (string (clipboard-set-text clipboard object))
-    #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0")
-    (gdk:pixbuf (clipboard-set-image clipboard object))))
+(defgeneric clipboard-set (clipboard object))
+
+(defmethod clipboard-set ((clipboard clipboard) (text string))
+  (clipboard-set-text clipboard text))
+
+#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0")
+(defmethod clipboard-set ((clipboard clipboard) (image gdk:pixbuf))
+  (clipboard-set-image clipboard image))
 
 (define-callback-marshal %clipboard-receive-callback nil 
  ((:ignore clipboard) selection-data))