Typo.
[cl-gtk2.git] / gdk / gdk.events.lisp
1 (in-package :gdk)
2
3 (defconstant +gdk-current-time+ 0)
4
5 (export '+gdk-current-time+)
6
7 (defconstant +gdk-priority-redraw+ (+ glib:+g-priority-high-idle+ 20))
8
9 (export '+gdk-priority-redraw+)
10
11 (defcfun (events-pending "gdk_events_pending") :boolean)
12
13 (export 'events-pending)
14
15 (defcfun (event-peek "gdk_event_peek") (g-boxed-foreign event :return))
16
17 (export 'event-peek)
18
19 (defcfun (event-get "gdk_event_get") (g-boxed-foreign event :return))
20
21 ;; ignored
22 ;; GdkEvent*           gdk_event_get_graphics_expose       (GdkWindow *window);
23
24 (defcfun (event-put "gdk_event_put") :void
25   (event (g-boxed-foreign event)))
26
27 (export 'event-put)
28
29 (defcfun (event-get-time "gdk_event_get_time") :uint32
30   (event (g-boxed-foreign event)))
31
32 (export 'event-get-time)
33
34 (defcfun gdk_event_get_state :boolean
35   (event (g-boxed-foreign event))
36   (state (:pointer modifier-type)))
37
38 (defun event-get-state (event)
39   (with-foreign-object (state 'modifier-type)
40     (when (gdk_event_get_state event state)
41       (mem-ref state 'modifier-type))))
42
43 (export 'event-get-state)
44
45 (defcfun gdk_event_get_axis :boolean
46   (event (g-boxed-foreign event))
47   (axis-use axis-use)
48   (value (:pointer :double)))
49
50 (defun event-get-axis (event axis)
51   (with-foreign-object (value :double)
52     (when (gdk_event_get_axis event axis value)
53       (mem-ref value :double))))
54
55 (export 'event-get-axis)
56
57 (defcfun gdk_event_get_coords :boolean
58   (event (g-boxed-foreign event))
59   (x-win (:pointer :double))
60   (y-win (:pointer :double)))
61
62 (defun event-get-coords (event)
63   (with-foreign-objects ((x :double) (y :double))
64     (when (gdk_event_get_coords event x y)
65       (values (mem-ref x :double) (mem-ref y :double)))))
66
67 (export 'event-get-coords)
68
69 (defcfun gdk_event_get_root_coords :boolean
70   (event (g-boxed-foreign event))
71   (x-win (:pointer :double))
72   (y-win (:pointer :double)))
73
74 (defun event-get-root-coords (event)
75   (with-foreign-objects ((x :double) (y :double))
76     (when (gdk_event_get_root_coords event x y)
77       (values (mem-ref x :double) (mem-ref y :double)))))
78
79 (export 'event-get-root-coords)
80
81 (defcfun (event-request-motions "gdk_event_request_motions") :void
82   (event (g-boxed-foreign event)))
83
84 (export 'event-request-motions)
85
86 (defcallback gdk-event-func-callback :void
87     ((event (g-boxed-foreign event)) (user-data :pointer))
88   (restart-case
89       (funcall (get-stable-pointer-value user-data) event)
90     (return-from-callback () nil)))
91
92 (defcfun gdk_event_handler_set :void
93   (func :pointer)
94   (data :pointer)
95   (destroy-notify :pointer))
96
97 (defun event-handler-set (fn)
98   (gdk_event_handler_set (callback gdk-event-func-callback)
99                          (allocate-stable-pointer fn)
100                          (callback stable-pointer-free-destroy-notify-callback)))
101
102 (export 'event-handler-set)
103
104 (defcfun (event-send-client-message "gdk_event_send_client_message") :boolean
105   (event (g-boxed-foreign event))
106   (window-id native-window))
107
108 (export 'event-send-client-message)
109
110 (defcfun (event-send-client-message-for-display "gdk_event_send_client_message_for_display") :boolean
111   (display (g-object display))
112   (event (g-boxed-foreign event))
113   (window-id native-window))
114
115 (export 'event-send-client-message-for-display)
116
117 (defcfun (event-send-client-message-to-all "gdk_event_send_clientmessage_toall") :void
118   (event (g-boxed-foreign event)))
119
120 (export 'event-send-client-message-to-all)
121
122 (defcallback gdk-client-message-filter-func gdk-filter-return
123     ((xevent :pointer) (event :pointer) (data :pointer))
124   (multiple-value-bind (return-value translated-event) (funcall (stable-pointer-value data) xevent)
125     (when (eq return-value :translate)
126       (gobject:copy-boxed-slots-to-foreign translated-event event))
127     return-value))
128
129 (defcfun gdk_add_client_message_filter :void
130   (message-type gdk-atom-as-string)
131   (func :pointer)
132   (data :pointer))
133
134 (defun gdk-add-client-message-filter (message-type fn)
135   (gdk_add_client_message_filter message-type (callback gdk-client-message-filter-func) (allocate-stable-pointer fn)))
136
137 (export 'gdk-add-client-message-filter)
138
139 (defcfun gdk-get-show-events :boolean)
140
141 (export 'gdk-get-show-events)
142
143 (defcfun gdk-set-show-events :void
144   (show-events :boolean))
145
146 (export 'gdk-set-show-events)
147
148 ;; ignored:
149 ;; void                gdk_event_set_screen                (GdkEvent *event,
150 ;;                                                          GdkScreen *screen);
151 ;; GdkScreen *         gdk_event_get_screen                (const GdkEvent *event);
152
153 (defcfun gdk_setting_get :boolean
154   (name :string)
155   (value (:pointer g-value)))
156
157 (defun gdk-get-setting (name)
158   (with-foreign-object (value 'g-value)
159     (g-value-zero value)
160     (when (gdk_setting_get name value)
161       (prog1 (parse-g-value value)
162         (g-value-unset value)))))
163
164 (export 'gdk-get-setting)