1 ;; Common Lisp bindings for GTK+ v2.x
2 ;; Copyright 2004-2005 Espen S. Johnsen <espen@users.sf.net>
4 ;; Permission is hereby granted, free of charge, to any person obtaining
5 ;; a copy of this software and associated documentation files (the
6 ;; "Software"), to deal in the Software without restriction, including
7 ;; without limitation the rights to use, copy, modify, merge, publish,
8 ;; distribute, sublicense, and/or sell copies of the Software, and to
9 ;; permit persons to whom the Software is furnished to do so, subject to
10 ;; the following conditions:
12 ;; The above copyright notice and this permission notice shall be
13 ;; included in all copies or substantial portions of the Software.
15 ;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 ;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 ;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 ;; IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 ;; CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 ;; $Id: gtktext.lisp,v 1.8 2006-04-26 12:29:11 espen Exp $
30 (defbinding %text-buffer-insert () nil
36 (defun text-buffer-insert (buffer iter text &rest tags)
38 (let ((start-offset (text-iter-offset iter)))
39 (%text-buffer-insert buffer iter text)
40 (let ((start (text-buffer-get-iter-at-offset buffer start-offset)))
43 do (text-buffer-apply-tag buffer tag start iter))))
44 (%text-buffer-insert buffer iter text)))
46 (defbinding %text-buffer-insert-at-cursor () nil
51 (defun text-buffer-insert-at-cursor (buffer text &rest tags)
53 (apply #'text-buffer-insert buffer
54 (text-buffer-get-iter-at-insert buffer) text tags)
55 (%text-buffer-insert-at-cursor buffer text)))
57 (defbinding text-buffer-insert-interactive () boolean
62 (default-editable boolean))
64 (defbinding text-buffer-insert-interactive-at-cursor () boolean
68 (default-editable boolean))
70 (defbinding text-buffer-insert-range () nil
76 (defbinding text-buffer-insert-range-interactive () nil
81 (default-editable boolean))
83 (defbinding text-buffer-delete () nil
88 (defbinding text-buffer-delete-interactive () boolean
92 (default-editable boolean))
94 #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0")
95 (defbinding text-buffer-backspace () boolean
99 (default-editable boolean))
101 (defbinding text-buffer-set-text () nil
106 (defbinding text-buffer-get-text () string
110 (include-hidden-char boolean))
112 (defbinding text-buffer-get-slice () string
116 (include-hidden-char boolean))
118 (defbinding text-buffer-insert-pixbuf () nil
123 (defbinding text-buffer-insert-child-anchor () nil
126 (anchor text-child-anchor))
128 (defbinding text-buffer-create-child-anchor () text-child-anchor
132 (defbinding text-buffer-create-mark () text-mark
134 (mark-name (or null string))
136 (left-gravity boolean))
138 (defbinding %text-buffer-move-mark () nil
143 (defbinding %text-buffer-move-mark-by-name () nil
148 (defgeneric text-buffer-move-mark (buffer mark where))
150 (defmethod text-buffer-move-mark ((buffer text-buffer) (mark text-mark) where)
151 (%text-buffer-move-mark buffer mark where))
153 (defmethod text-buffer-move-mark ((buffer text-buffer) (name string) where)
154 (%text-buffer-move-mark-by-name buffer name where))
156 (defbinding %text-buffer-delete-mark () nil
160 (defbinding %text-buffer-delete-mark-by-name () nil
164 (defgeneric text-buffer-delete-mark (buffer mark))
166 (defmethod text-buffer-delete-mark ((buffer text-buffer) (mark text-mark))
167 (%text-buffer-delete-mark buffer mark))
169 (defmethod text-buffer-delete-mark ((buffer text-buffer) (mark-name string))
170 (%text-buffer-delete-mark-by-name buffer mark-name))
172 (defbinding text-buffer-get-mark () text-mark
176 (defbinding text-buffer-get-insert () text-mark
177 (buffer text-buffer))
179 (defbinding text-buffer-get-selection-bound () text-mark
180 (buffer text-buffer))
182 (defbinding text-buffer-place-cursor () nil
186 (defbinding text-buffer-select-range () nil
191 (defbinding %text-buffer-apply-tag () nil
197 (defbinding %text-buffer-remove-tag () nil
203 (defbinding %text-buffer-apply-tag-by-name () nil
209 (defbinding %text-buffer-remove-tag-by-name () nil
215 (defgeneric text-buffer-apply-tag (buffer tag start end))
217 (defmethod text-buffer-apply-tag ((buffer text-buffer) (tag text-tag) start end)
218 (%text-buffer-apply-tag buffer tag start end))
220 (defmethod text-buffer-apply-tag ((buffer text-buffer) (name string) start end)
221 (%text-buffer-apply-tag-by-name buffer name start end))
223 (defgeneric text-buffer-remove-tag (buffer tag start end))
225 (defmethod text-buffer-remove-tag ((buffer text-buffer) (tag text-tag) start end)
226 (%text-buffer-remove-tag buffer tag start end))
228 (defmethod text-buffer-remove-tag ((buffer text-buffer) (name string) start end)
229 (%text-buffer-remove-tag-by-name buffer name start end))
231 (defbinding text-buffer-remove-all-tags () nil
236 (defun text-buffer-create-tag (buffer name &rest initargs)
238 (text-buffer-tag-table buffer)
240 (apply #'make-instance 'text-tag :name name initargs)
241 (apply #'make-instance 'text-tag initargs))))
243 (defbinding text-buffer-get-iter-at-line-offset
244 (buffer line offset &optional (iter (make-instance 'text-iter))) nil
246 (iter text-iter :in/return)
250 (defbinding text-buffer-get-iter-at-offset
251 (buffer offset &optional (iter (make-instance 'text-iter))) nil
253 (iter text-iter :in/return)
259 (defbinding text-buffer-get-iter-at-line
260 (buffer line &optional (iter (make-instance 'text-iter))) nil
262 (iter text-iter :in/return)
265 (defbinding text-buffer-get-iter-at-line-index
266 (buffer line index &optional (iter (make-instance 'text-iter))) nil
268 (iter text-iter :in/return)
272 (defbinding text-buffer-get-iter-at-mark
273 (buffer mark &optional (iter (make-instance 'text-iter))) nil
275 (iter text-iter :in/return)
278 (defun text-buffer-get-iter-at-insert (buffer &optional (iter (make-instance 'text-iter)))
279 (text-buffer-get-iter-at-mark buffer (text-buffer-get-insert buffer) iter))
281 (defbinding text-buffer-get-iter-at-child-anchor
282 (buffer anchor &optional (iter (make-instance 'text-iter))) nil
284 (iter text-iter :in/return)
285 (anchor text-child-anchor))
287 (defbinding text-buffer-get-bounds
288 (buffer &optional (start (make-instance 'text-iter))
289 (end (make-instance 'text-iter))) nil
291 (start text-iter :in/return)
292 (end text-iter :in/return))
294 (defbinding text-buffer-delete-selection () boolean
296 (interactive boolean)
297 (default-editable boolean))
299 (defbinding text-buffer-paste-clipboard () nil
301 (clipboard clipboard)
302 (override-location (or null text-iter))
303 (default-editable boolean))
305 (defbinding text-buffer-copy-clipboard () nil
307 (clipboard clipboard))
309 (defbinding text-buffer-cut-clipboard () nil
311 (clipboard clipboard)
312 (default-editable boolean))
314 (defbinding text-buffer-get-selection-bounds
315 (buffer &optional (start (make-instance 'text-iter))
316 (end (make-instance 'text-iter))) boolean
318 (start text-iter :in/return)
319 (end text-iter :in/return))
321 (defbinding text-buffer-begin-user-action () nil
322 (buffer text-buffer))
324 (defbinding text-buffer-end-user-action () nil
325 (buffer text-buffer))
327 (defmacro text-buffer-with-user-action ((buffer) &body body)
328 (let ((bufvar (make-symbol "BUFFER")))
329 `(let ((,bufvar ,buffer))
330 (text-buffer-begin-user-action ,bufvar)
333 (text-buffer-end-user-action ,bufvar)))))
335 (defbinding text-buffer-add-selection-clipboard () nil
337 (clipboard clipboard))
339 (defbinding text-buffer-remove-selection-clipboard () nil
341 (clipboard clipboard))
346 (defbinding text-iter-get-char () int
349 (defbinding text-iter-get-slice () string
353 (defbinding text-iter-get-text () string
357 (defbinding text-iter-get-visible-slice () string
361 (defbinding text-iter-get-visible-text () string
365 (defbinding text-iter-get-pixbuf () string
368 (defbinding text-iter-get-marks () (gslist text-mark)
371 (defbinding text-iter-get-toggled-tags () (gslist text-tag)
373 (toggoled-on boolean))
375 (defbinding text-iter-get-child-anchor () text-child-anchor
378 (defun %ensure-tag (tag iter)
382 (text-tag-table-lookup
383 (text-buffer-tag-table (text-iter-buffer iter)) tag))))
385 (defbinding text-iter-begins-tag-p (iter tag) boolean
387 ((%ensure-tag tag iter) text-tag))
389 (defbinding text-iter-ends-tag-p (iter tag) boolean
391 ((%ensure-tag tag iter) text-tag))
393 (defbinding text-iter-toggles-tag-p (iter tag) boolean
395 ((%ensure-tag tag iter) text-tag))
397 (defbinding text-iter-has-tag-p (iter tag) boolean
399 ((%ensure-tag tag iter) text-tag))
401 (defbinding text-iter-get-tags () (gslist text-tag)
404 (defbinding text-iter-editable-p () boolean
406 (default-setting boolean))
408 (defbinding text-iter-can-insert-p () boolean
410 (default-editability boolean))
412 (defbinding text-iter-starts-word-p () boolean
415 (defbinding text-iter-ends-word-p () boolean
418 (defbinding text-iter-inside-word-p () boolean
421 (defbinding text-iter-starts-line-p () boolean
424 (defbinding text-iter-ends-line-p () boolean
427 (defbinding text-iter-starts-sentence-p () boolean
430 (defbinding text-iter-ends-sentence-p () boolean
433 (defbinding text-iter-inside-sentence-p () boolean
436 (defbinding text-iter-is-cursor-position-p () boolean
439 (defbinding text-iter-get-chars-in-line () int
442 (defbinding text-iter-get-bytes-in-line () int
445 (defbinding text-iter-get-attributes
446 (iter &optional (values (make-instance 'text-attributes))) boolean
448 (values text-attributes :in/return))
450 (defbinding text-iter-get-language () pango:language
453 (defbinding text-iter-is-end-p () boolean
456 (defbinding text-iter-is-start-p () boolean
459 (defbinding text-iter-forward-char () boolean
462 (defbinding text-iter-backward-char () boolean
465 (defbinding text-iter-forward-chars () boolean
469 (defbinding text-iter-backward-chars () boolean
473 (defbinding text-iter-forward-line () boolean
476 (defbinding text-iter-backward-line () boolean
479 (defbinding text-iter-forward-lines () boolean
483 (defbinding text-iter-backward-lines () boolean
487 (defbinding text-iter-forward-word-ends () boolean
491 (defbinding text-iter-backward-word-starts () boolean
495 (defbinding text-iter-forward-word-end () boolean
498 (defbinding text-iter-backward-word-start () boolean
501 (defbinding text-iter-forward-cursor-position () boolean
504 (defbinding text-iter-backward-cursor-position () boolean
507 (defbinding text-iter-forward-cursor-positions () boolean
511 (defbinding text-iter-backward-cursor-positions () boolean
515 (defbinding text-iter-backward-sentence-start () boolean
518 (defbinding text-iter-backward-sentence-starts () boolean
522 (defbinding text-iter-forward-sentence-end () boolean
525 (defbinding text-iter-forward-sentence-ends () boolean
529 (defbinding text-iter-forward-visible-word-ends () boolean
533 (defbinding text-iter-backward-visible-word-starts () boolean
537 (defbinding text-iter-forward-visible-word-end () boolean
540 (defbinding text-iter-backward-visible-word-start () boolean
543 (defbinding text-iter-forward-visible-cursor-position () boolean
546 (defbinding text-iter-backward-visible-cursor-position () boolean
549 (defbinding text-iter-forward-visible-cursor-positions () boolean
553 (defbinding text-iter-backward-visible-cursor-positions () boolean
557 (defbinding text-iter-forward-to-end () nil
560 (defbinding text-iter-forward-to-line-end () boolean
563 (defbinding text-iter-forward-to-tag-toggle (iter tag) boolean
565 ((%ensure-tag tag iter) text-tag))
567 (defbinding text-iter-backward-to-tag-toggle (iter tag) boolean
569 ((%ensure-tag tag iter) text-tag))
571 (define-callback-marshal %text-char-predicate-callback boolean (int))
573 (defbinding text-iter-forward-find-char (iter predicate &optional limit) boolean
575 (%text-char-predicate-callback callback)
576 ((register-callback-function predicate) unsigned-int)
577 (limit (or null text-iter)))
579 (defbinding text-iter-backward-find-char (iter predicate &optional limit) boolean
581 (%text-char-predicate-callback callback)
582 ((register-callback-function predicate) unsigned-int)
583 (limit (or null text-iter)))
585 (defbinding text-iter-forward-search
586 (iter text &optional flags limit (match-start (make-instance 'text-iter))
587 (match-end (make-instance 'text-iter))) boolean
590 (flags text-search-flags)
591 (match-start text-iter :in/return)
592 (match-end text-iter :in/return)
593 (limit (or null text-iter)))
595 (defbinding text-iter-backward-search
596 (iter text &optional flags limit (match-start (make-instance 'text-iter))
597 (match-end (make-instance 'text-iter))) boolean
600 (flags text-search-flags)
601 (match-start text-iter :in/return)
602 (match-end text-iter :in/return)
603 (limit (or null text-iter)))
605 (defbinding text-iter-equal-p () boolean
609 (defbinding text-iter-compare () int
613 (defbinding text-iter-in-range-p () boolean
618 (defbinding text-iter-order () nil
626 (defbinding text-tag-event () boolean
628 (event-object gobject)
636 (defbinding text-tag-table-add () nil
637 (table text-tag-table)
640 (defbinding text-tag-table-remove () nil
641 (table text-tag-table)
644 (defbinding text-tag-table-lookup () text-tag
645 (table text-tag-table)
648 (define-callback-marshal %text-tag-table-foreach-callback nil (text-tag))
650 (defbinding text-tag-table-foreach (table function) nil
651 (table text-tag-table)
652 (%text-tag-table-foreach-callback callback)
653 ((register-callback-function function) unsigned-int))
658 (defbinding text-view-scroll-to-mark () nil
659 (text-view text-view)
661 (within-margin boolean)
663 (xalign double-float)
664 (yalign double-float))
666 (defbinding text-view-scroll-to-iter () nil
667 (text-view text-view)
669 (within-margin boolean)
671 (xalign double-float)
672 (yalign double-float))
674 (defbinding text-view-scroll-mark-onscreen () nil
675 (text-view text-view)
678 (defbinding text-view-move-mark-onscreen () nil
679 (text-view text-view)
682 (defbinding text-view-place-cursor-onscreen () nil
683 (text-view text-view))
685 (defbinding text-view-get-visible-rect
686 (text-view &optional (rect (make-instance 'gdk:rectangle))) nil
687 (text-view text-view)
688 (rect gdk:rectangle :in/return))
690 (defbinding text-view-get-iter-location
691 (text-view iter &optional (location (make-instance 'gdk:rectangle))) nil
692 (text-view text-view)
694 (location gdk:rectangle :in/return))
696 (defbinding text-view-get-line-at-y
697 (text-view y &optional (iter (make-instance 'text-iter))) nil
698 (text-view text-view)
699 (iter text-iter :in/return)
703 (defbinding text-view-get-line-yrange () nil
704 (text-view text-view)
709 (defbinding text-view-get-iter-at-location
710 (text-view x y &optional (iter (make-instance 'text-iter))) nil
711 (text-view text-view)
712 (iter text-iter :in/return)
716 (defbinding text-view-buffer-to-window-coords () nil
717 (text-view text-view)
718 (win text-window-type)
724 (defbinding text-view-window-to-buffer-coords () nil
725 (text-view text-view)
726 (win text-window-type)
732 (defbinding text-view-get-window () gdk:window
733 (text-view text-view)
734 (win text-window-type))
736 (defbinding text-view-get-window-type () text-window-type
737 (text-view text-view)
740 (defbinding %text-view-set-border-window-size () nil
741 (text-view text-view)
742 (win text-window-type)
745 (defun (setf text-view-border-window-size) (size text-view win)
746 (%text-view-set-border-window-size text-view win size)
749 (defbinding (text-view-border-window-size
750 "gtk_text_view_get_border_window_size") () int
751 (text-view text-view)
752 (win text-window-type))
754 (defbinding text-view-forward-display-line () boolean
755 (text-view text-view)
758 (defbinding text-view-backward-display-line () boolean
759 (text-view text-view)
762 (defbinding text-view-forward-display-line-end () boolean
763 (text-view text-view)
766 (defbinding text-view-backward-display-line-start () boolean
767 (text-view text-view)
770 (defbinding (text-view-starts-display-line-p
771 "gtk_text_view_starts_display_line") () boolean
772 (text-view text-view)
775 (defbinding text-view-move-visually () boolean
776 (text-view text-view)
780 (defbinding text-view-add-child-at-anchor () nil
781 (text-view text-view)
783 (anchor text-child-anchor))
785 (defbinding text-view-add-child-in-window () nil
786 (text-view text-view)
788 (win text-window-type)
792 (defbinding text-view-move-child () nil
793 (text-view text-view)
801 (defbinding (text-view-child-anchor-deleted-p
802 "gtk_text_child_anchor_get_deleted") () boolean
803 (anchor text-child-anchor))