Typo.
[cl-gtk2.git] / gdk / gdk.threads.lisp
1 (in-package :gdk)
2
3 (defcfun gdk-threads-init :void)
4 (glib:at-init () (gdk-threads-init))
5
6 (defcfun gdk-threads-enter :void)
7 (export 'gdk-threads-enter)
8
9 (defcfun gdk-threads-leave :void)
10 (export 'gdk-threads-leave)
11
12 (defmacro with-gdk-threads-lock (&body body)
13   `(progn
14      (gdk-threads-enter)
15      (unwind-protect
16           (progn ,@body)
17        (gdk-threads-leave))))
18 (export 'with-gdk-threads-lock)
19
20 ;; ignored:
21 ;; void                gdk_threads_set_lock_functions      (GCallback enter_fn,
22 ;;                                                          GCallback leave_fn);
23
24 (defcallback source-func-callback :boolean
25     ((data :pointer))
26   (funcall (stable-pointer-value data)))
27
28 (defcallback stable-pointer-free-destroy-notify-callback :void ((data :pointer))
29   (free-stable-pointer data))
30
31 (defcfun gdk_threads_add_idle_full :uint
32   (priority :int)
33   (function :pointer)
34   (data :pointer)
35   (destroy-notify :pointer))
36
37 (defun gdk-threads-add-idle-full (priority function)
38   (gdk_threads_add_idle_full priority
39                              (callback source-func-callback)
40                              (allocate-stable-pointer function)
41                              (callback stable-pointer-free-destroy-notify-callback)))
42
43 (export 'gdk-threads-add-idle-full)
44
45 (defcfun gdk_threads_add_timeout_full :uint
46   (priority :int)
47   (interval :uint)
48   (function :pointer)
49   (data :pointer)
50   (destroy-notify :pointer))
51
52 (defun gdk-threads-add-timeout-full (priority interval-msec function)
53   (gdk_threads_add_timeout_full priority interval-msec
54                                 (callback source-func-callback)
55                                 (allocate-stable-pointer function)
56                                 (callback stable-pointer-free-destroy-notify-callback)))
57
58 (export 'gdk-threads-add-timeout-full)
59
60 (defcfun gdk_threads_add_timeout_seconds_full :uint
61   (priority :int)
62   (interval :uint)
63   (function :pointer)
64   (data :pointer)
65   (destroy-notify :pointer))
66
67 (defun gdk-threads-add-timeout-seconds-full (priority interval-sec function)
68   (gdk_threads_add_timeout_seconds_full priority interval-sec
69                                         (callback source-func-callback)
70                                         (allocate-stable-pointer function)
71                                         (callback stable-pointer-free-destroy-notify-callback)))
72
73 (export 'gdk-threads-add-timeout-seconds-full)