Use gobject:with-foreign-boxed-array in Gdk
[cl-gtk2.git] / gdk / gdk.functions.lisp
1 (in-package :gdk)
2
3 (defcfun (default-screen "gdk_screen_get_default") (g-object gdk-screen))
4 (export 'default-screen)
5
6 (defcfun gdk-window-get-events event-mask
7   (window (g-object gdk-window)))
8
9 (defcfun gdk-window-set-events :void
10   (window (g-object gdk-window))
11   (flags event-mask))
12
13 (defun gdk-window-events (window)
14   (gdk-window-get-events window))
15
16 (defun (setf gdk-window-events) (new-value window)
17   (gdk-window-set-events window new-value))
18
19 (export 'gdk-window-events)
20
21 (defcfun gdk-atom-name (glib:g-string :free-from-foreign t)
22   (atom gdk-atom))
23
24 (defcfun gdk-atom-intern gdk-atom
25   (name :string)
26   (only-if-exists :boolean))
27
28 (defcfun gdk-pixbuf-savev :boolean
29   (pixbuf (g-object pixbuf))
30   (filename :string)
31   (type :string)
32   (option-keys (:pointer (:pointer :char)))
33   (option-values (:pointer (:pointer :char)))
34   (error :pointer))
35
36 (defun pixbuf-save (pixbuf filename type)
37   (gdk-pixbuf-savev pixbuf
38                     (etypecase filename
39                       (string filename)
40                       (pathname (namestring filename)))
41                     type
42                     (null-pointer)
43                     (null-pointer)
44                     (null-pointer)))
45
46 (export 'pixbuf-save)
47
48 (defcfun gdk-pixbuf-new-from-file (g-object pixbuf :already-referenced)
49   (filename :string)
50   (error :pointer))
51
52 (defun pixbuf-new-from-file (filename)
53   (glib:with-g-error (err)
54     (gdk-pixbuf-new-from-file filename err)))
55
56 (export 'pixbuf-new-from-file)