1 ;; Common Lisp bindings for GTK+ v2.0
2 ;; Copyright (C) 1999-2001 Espen S. Johnsen <esj@stud.cs.uit.no>
4 ;; This library is free software; you can redistribute it and/or
5 ;; modify it under the terms of the GNU Lesser General Public
6 ;; License as published by the Free Software Foundation; either
7 ;; version 2 of the License, or (at your option) any later version.
9 ;; This library is distributed in the hope that it will be useful,
10 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
11 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 ;; Lesser General Public License for more details.
14 ;; You should have received a copy of the GNU Lesser General Public
15 ;; License along with this library; if not, write to the Free Software
16 ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 ;; $Id: gtktree.lisp,v 1.1 2004-11-07 17:22:06 espen Exp $
26 (defbinding cell-layout-pack-start () nil
27 (cell-layout cell-layout)
31 (defbinding cell-layout-pack-end () nil
32 (cell-layout cell-layout)
36 (defun cell-layout-pack (layout cell &key end expand)
38 (cell-layout-pack-end layout cell expand)
39 (cell-layout-pack-start layout cell expand)))
41 (defbinding cell-layout-reorder () nil
42 (cell-layout cell-layout)
46 (defbinding cell-layout-clear () nil
47 (cell-layout cell-layout))
49 (defbinding cell-layout-add-attribute (cell-layout cell attribute column) nil
50 (cell-layout cell-layout)
52 ((string-downcase attribute) string)
55 (def-callback-marshal %cell-layout-data-func
56 (nil cell-layout cell-renderer tree-model tree-iter))
58 (defbinding cell-layout-set-cell-data-func (cell-layout cell function) nil
59 (cell-layout cell-layout)
61 ((callback %cell-layout-data-func) pointer)
62 ((register-callback-function function) unsigned-int)
63 ((callback %destroy-user-data) pointer))
65 (defbinding cell-layout-clear-attributes () nil
66 (cell-layout cell-layout)
73 (defmethod initialize-instance ((list-store list-store) &key columns)
75 (%list-store-set-column-types list-store (length columns)
76 (map 'vector #'find-type-number columns)))
79 (defbinding %list-store-set-column-types () nil
80 (list-store list-store)
81 (n-columns unsigned-int)
82 (columns (vector type-number)))
84 (defbinding %list-store-set-value () nil
85 (list-store list-store)
90 (defun list-store-set-value (list-store tree-iter column type value)
91 (let ((gvalue (gvalue-new type value)))
93 (%list-store-set-value list-store tree-iter column gvalue)
94 (gvalue-free gvalue))))
96 (defbinding list-store-remove () boolean
97 (list-store list-store)
98 (tree-iter tree-iter))
100 (defbinding list-store-insert () nil
101 (list-store list-store)
102 ((make-instance 'tree-iter) tree-iter :in-out)
105 (defbinding list-store-insert-before (list-store &optional sibling) nil
106 (list-store list-store)
107 ((make-instance 'tree-iter) tree-iter :in-out)
108 (sibling (or null tree-iter)))
110 (defbinding list-store-insert-after (list-store &optional sibling) nil
111 (list-store list-store)
112 ((make-instance 'tree-iter) tree-iter :in-out)
113 (sibling (or null tree-iter)))
115 (defbinding list-store-prepend () nil
116 (list-store list-store)
117 ((make-instance 'tree-iter) tree-iter :in-out))
119 (defbinding list-store-append () nil
120 (list-store list-store)
121 ((make-instance 'tree-iter) tree-iter :in-out))
123 (defbinding list-store-clear () nil
124 (list-store list-store))
126 (defbinding list-store-reorder () nil
127 (list-store list-store)
128 (new-order (vector int)))
130 (defbinding list-store-swap () nil
131 (list-store list-store)
135 (defbinding list-store-move-before () nil
136 (list-store list-store)
138 (psoition (or null tree-iter)))
141 (defbinding list-store-move-after () nil
142 (list-store list-store)
144 (psoition tree-iter))
153 (defbinding %tree-store-set-column-types () nil
154 (tree-store tree-store)
155 (n-columns unsigned-int)
156 (columns (vector type-number)))
158 (defmethod initialize-instance ((tree-store tree-store) &key columns)
160 (%tree-store-set-column-types tree-store (length columns)
161 (map 'vector #'find-type-number columns)))
164 (defbinding %tree-store-set-value () nil
165 (tree-store tree-store)
166 (tree-iter tree-iter)
170 (defbinding tree-store-remove () boolean
171 (tree-store tree-store)
172 (tree-iter tree-iter))
174 (defbinding tree-store-insert (tree-store position &optional parent) nil
175 (tree-store tree-store)
176 ((make-instance 'tree-iter) tree-iter :in-out)
177 (parent (or null tree-iter))
180 (defbinding tree-store-insert-before (tree-store &optional parent sibling) nil
181 (tree-store tree-store)
182 ((make-instance 'tree-iter) tree-iter :in-out)
183 (parent (or null tree-iter))
184 (sibling (or null tree-iter)))
186 (defbinding tree-store-insert-after (tree-store &optional parent sibling) nil
187 (tree-store tree-store)
188 ((make-instance 'tree-iter) tree-iter :in-out)
189 (parent (or null tree-iter))
190 (sibling (or null tree-iter)))
192 (defbinding tree-store-prepend (tree-store &optional parent) nil
193 (tree-store tree-store)
194 ((make-instance 'tree-iter) tree-iter :in-out)
195 (parent (or null tree-iter)))
197 (defbinding tree-store-append (tree-store &optional parent) nil
198 (tree-store tree-store)
199 ((make-instance 'tree-iter) tree-iter :in-out)
200 (parent (or null tree-iter)))
202 (defbinding (tree-store-is-ancestor-p "gtk_tree_store_is_ancestor") () boolean
203 (tree-store tree-store)
204 (tree-iter tree-iter)
205 (descendant tree-iter))
207 (defbinding tree-store-iter-depth () int
208 (tree-store tree-store)
209 (tree-iter tree-iter))
211 (defbinding tree-store-clear () nil
212 (tree-store tree-store))
214 (defbinding tree-store-reorder () nil
215 (tree-store tree-store)
217 (new-order (vector int)))
219 (defbinding tree-store-swap () nil
220 (tree-store tree-store)
224 (defbinding tree-store-move-before () nil
225 (tree-store tree-store)
227 (psoition (or null tree-iter)))
230 (defbinding tree-store-move-after () nil
231 (tree-store tree-store)
233 (psoition tree-iter))
239 (defbinding tree-view-get-selection () tree-selection
240 (tree-view tree-view))
242 (defbinding tree-view-columns-autosize () nil
243 (tree-view tree-view))
245 (defbinding tree-view-append-column () int
246 (tree-view tree-view)
247 (tree-view-column tree-view-column))
249 (defbinding tree-view-remove-column () int
250 (tree-view tree-view)
251 (tree-view-column tree-view-column))
253 (defbinding tree-view-insert-column (view columnd position) int
255 (column tree-view-column)
256 ((if (eq position :end) -1 position) int))
258 (defbinding tree-view-get-column () tree-view-column
259 (tree-view tree-view)
262 (defbinding tree-view-move-column-after () nil
263 (tree-view tree-view)
264 (column tree-view-column)
265 (base-column (or null tree-view-column)))
267 ;;(defbinding tree-view-set-column drag-function ...)
269 (defbinding tree-view-scroll-to-point () nil
270 (tree-view tree-view)
274 (defbinding tree-view-scroll-to-cell () nil
275 (tree-view tree-view)
276 (path (or null tree-path))
277 (column (or null tree-view-column))
279 (row-align single-float)
280 (col-align single-float))
282 (defbinding tree-view-set-cursor () nil
283 (tree-view tree-view)
285 (focus-column tree-view-column)
286 (start-editing boolean))
288 (defbinding tree-view-set-cursor-on-cell () nil
289 (tree-view tree-view)
291 (focus-column (or null tree-view-column))
292 (focus-cell (or null cell-renderer))
293 (start-editing boolean))
295 (defbinding tree-view-get-cursor () nil
296 (tree-view tree-view)
297 (path tree-path :out )
298 (focus-column tree-view-column :out))
300 (defbinding tree-view-row-activated () nil
301 (tree-view tree-view)
303 (column tree-view-column))
305 (defbinding tree-view-expand-all () nil
306 (tree-view tree-view))
308 (defbinding tree-view-collapse-all () nil
309 (tree-view tree-view))
311 (defbinding tree-view-expand-to-path () nil
312 (tree-view tree-view)
315 (defbinding tree-view-expand-row () nil
316 (tree-view tree-view)
320 (defbinding tree-view-collapse-row () nil
321 (tree-view tree-view)
324 (def-callback-marshal %tree-view-mapping-func (nil tree-view tree-path))
326 (defbinding %tree-view-map-expanded-rows () nil
327 (tree-view tree-view)
328 ((callback %tree-view-mapping-func) pointer)
329 (callback-id unsigned-int))
331 (defun map-expanded-rows (function tree-view)
332 (with-callback-function (id function)
333 (%tree-view-map-expanded-rows tree-view id)))
335 (defbinding (tree-view-row-expanded-p "gtk_tree_view_row_expanded") () boolean
336 (tree-view tree-view)
339 (defbinding tree-view-get-path-at-pos
340 (tree-view x y &optional (cell-x 0) (cell-y 0)) boolean
341 (tree-view tree-view)
344 (path tree-path :out)
345 (column tree-view-column :out)
349 (defbinding tree-view-get-cell-area () nil
350 (tree-view tree-view)
351 (path (or null tree-path))
352 (column (or null tree-view-column))
353 ((make-instance 'gdk:rectangle) gdk:rectangle :in-out))
355 (defbinding tree-view-get-background-area () nil
356 (tree-view tree-view)
357 (path (or null tree-path))
358 (column (or null tree-view-column))
359 ((make-instance 'gdk:rectangle) gdk:rectangle :in-out))
361 (defbinding tree-view-get-visible-rect () nil
362 (tree-view tree-view)
363 ((make-instance 'gdk:rectangle) gdk:rectangle :in-out))
365 ;; and many more functions which we'll add later