1 ;; Common Lisp bindings for GTK+ v2.0
2 ;; Copyright (C) 1999-2004 Espen S. Johnsen <espen@users.sourceforge.net>
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: gtktext.lisp,v 1.3 2005/01/07 00:28:36 espen Exp $
25 (defbinding %text-buffer-insert () nil
31 (defun text-buffer-insert (buffer iter text &rest tags)
33 (let ((start-offset (text-iter-offset iter)))
34 (%text-buffer-insert buffer iter text)
35 (let ((start (text-buffer-get-iter-at-offset buffer start-offset)))
38 do (text-buffer-apply-tag buffer tag start iter))))
39 (%text-buffer-insert buffer iter text)))
41 (defbinding %text-buffer-insert-at-cursor () nil
46 (defun text-buffer-insert-at-cursor (buffer text &rest tags)
48 (apply #'text-buffer-insert buffer
49 (text-buffer-get-iter-at-insert buffer) text tags)
50 (%text-buffer-insert-at-cursor buffer text)))
52 (defbinding text-buffer-insert-interactive () boolean
57 (default-editable boolean))
59 (defbinding text-buffer-insert-interactive-at-cursor () boolean
63 (default-editable boolean))
65 (defbinding text-buffer-insert-range () nil
71 (defbinding text-buffer-insert-range-interactive () nil
76 (default-editable boolean))
78 (defbinding text-buffer-delete () nil
83 (defbinding text-buffer-delete-interactive () boolean
87 (default-editable boolean))
90 (defbinding text-buffer-backspace () boolean
94 (default-editable boolean))
96 (defbinding text-buffer-set-text () nil
101 (defbinding text-buffer-get-text () string
105 (include-hidden-char boolean))
107 (defbinding text-buffer-get-slice () string
111 (include-hidden-char boolean))
113 (defbinding text-buffer-insert-pixbuf () nil
118 (defbinding text-buffer-insert-child-anchor () nil
121 (anchor text-child-anchor))
123 (defbinding text-buffer-create-child-anchor () text-child-anchor
127 (defbinding text-buffer-create-mark () text-mark
129 (mark-name (or null string))
131 (left-gravity boolean))
133 (defbinding %text-buffer-move-mark () nil
138 (defbinding %text-buffer-move-mark-by-name () nil
143 (defgeneric text-buffer-move-mark (buffer mark where))
145 (defmethod text-buffer-move-mark ((buffer text-buffer) (mark text-mark) where)
146 (%text-buffer-move-mark buffer mark where))
148 (defmethod text-buffer-move-mark ((buffer text-buffer) (name string) where)
149 (%text-buffer-move-mark-by-name buffer name where))
151 (defbinding %text-buffer-delete-mark () nil
155 (defbinding %text-buffer-delete-mark-by-name () nil
159 (defgeneric text-buffer-delete-mark (buffer mark))
161 (defmethod text-buffer-delete-mark ((buffer text-buffer) (mark text-mark))
162 (%text-buffer-delete-mark buffer mark))
164 (defmethod text-buffer-delete-mark ((buffer text-buffer) (mark-name string))
165 (%text-buffer-delete-mark-by-name buffer mark-name))
167 (defbinding text-buffer-get-mark () text-mark
171 (defbinding text-buffer-get-insert () text-mark
172 (buffer text-buffer))
174 (defbinding text-buffer-get-selection-bound () text-mark
175 (buffer text-buffer))
177 (defbinding text-buffer-place-cursor () nil
181 (defbinding text-buffer-select-range () nil
186 (defbinding %text-buffer-apply-tag () nil
192 (defbinding %text-buffer-remove-tag () nil
198 (defbinding %text-buffer-apply-tag-by-name () nil
204 (defbinding %text-buffer-remove-tag-by-name () nil
210 (defgeneric text-buffer-apply-tag (buffer tag start end))
212 (defmethod text-buffer-apply-tag ((buffer text-buffer) (tag text-tag) start end)
213 (%text-buffer-apply-tag buffer tag start end))
215 (defmethod text-buffer-apply-tag ((buffer text-buffer) (name string) start end)
216 (%text-buffer-apply-tag-by-name buffer name start end))
218 (defgeneric text-buffer-remove-tag (buffer tag start end))
220 (defmethod text-buffer-remove-tag ((buffer text-buffer) (tag text-tag) start end)
221 (%text-buffer-remove-tag buffer tag start end))
223 (defmethod text-buffer-remove-tag ((buffer text-buffer) (name string) start end)
224 (%text-buffer-remove-tag-by-name buffer name start end))
226 (defbinding text-buffer-remove-all-tags () nil
231 (defun text-buffer-create-tag (buffer name &rest initargs)
233 (text-buffer-tag-table buffer)
235 (apply #'make-instance 'text-tag :name name initargs)
236 (apply #'make-instance 'text-tag initargs))))
238 (defbinding text-buffer-get-iter-at-line-offset
239 (buffer line offset &optional (iter (make-instance 'text-iter))) nil
241 (iter text-iter :return)
245 (defbinding text-buffer-get-iter-at-offset
246 (buffer offset &optional (iter (make-instance 'text-iter))) nil
248 (iter text-iter :return)
254 (defbinding text-buffer-get-iter-at-line
255 (buffer line &optional (iter (make-instance 'text-iter))) nil
257 (iter text-iter :return)
260 (defbinding text-buffer-get-iter-at-line-index
261 (buffer line index &optional (iter (make-instance 'text-iter))) nil
263 (iter text-iter :return)
267 (defbinding text-buffer-get-iter-at-mark
268 (buffer mark &optional (iter (make-instance 'text-iter))) nil
270 (iter text-iter :return)
273 (defun text-buffer-get-iter-at-insert (buffer &optional (iter (make-instance 'text-iter)))
274 (text-buffer-get-iter-at-mark buffer (text-buffer-get-insert buffer) iter))
276 (defbinding text-buffer-get-iter-at-child-anchor
277 (buffer anchor &optional (iter (make-instance 'text-iter))) nil
279 (iter text-iter :return)
280 (anchor text-child-anchor))
282 (defbinding text-buffer-get-bounds
283 (buffer &optional (start (make-instance 'text-iter))
284 (end (make-instance 'text-iter))) nil
286 (start text-iter :return)
287 (end text-iter :return))
289 (defbinding text-buffer-delete-selection () boolean
291 (interactive boolean)
292 (default-editable boolean))
294 (defbinding text-buffer-paste-clipboard () nil
296 (clipboard clipboard)
297 (override-location (or null text-iter))
298 (default-editable boolean))
300 (defbinding text-buffer-copy-clipboard () nil
302 (clipboard clipboard))
304 (defbinding text-buffer-cut-clipboard () nil
306 (clipboard clipboard)
307 (default-editable boolean))
309 (defbinding text-buffer-get-selection-bounds
310 (buffer &optional (start (make-instance 'text-iter))
311 (end (make-instance 'text-iter))) nil
313 (start text-iter :return)
314 (end text-iter :return))
316 (defbinding text-buffer-begin-user-action () nil
317 (buffer text-buffer))
319 (defbinding text-buffer-end-user-action () nil
320 (buffer text-buffer))
322 (defmacro text-buffer-with-user-action ((buffer) &body body)
323 (let ((bufvar (make-symbol "BUFFER")))
324 `(let ((,bufvar ,buffer))
325 (text-buffer-begin-user-action ,bufvar)
328 (text-buffer-end-user-action ,bufvar)))))
330 (defbinding text-buffer-add-selection-clipboard () nil
332 (clipboard clipboard))
334 (defbinding text-buffer-remove-selection-clipboard () nil
336 (clipboard clipboard))
341 (defbinding text-iter-get-char () int
344 (defbinding text-iter-get-slice () string
348 (defbinding text-iter-get-text () string
352 (defbinding text-iter-get-visible-slice () string
356 (defbinding text-iter-get-visible-text () string
360 (defbinding text-iter-get-pixbuf () string
363 (defbinding text-iter-get-marks () (gslist text-mark)
366 (defbinding text-iter-get-toggled-tags () (gslist text-tag)
368 (toggoled-on boolean))
370 (defbinding text-iter-get-child-anchor () text-child-anchor
373 (defun %ensure-tag (tag iter)
377 (text-tag-table-lookup
378 (text-buffer-tag-table (text-iter-buffer iter)) tag))))
380 (defbinding text-iter-begins-tag-p (iter tag) boolean
382 ((%ensure-tag tag iter) text-tag))
384 (defbinding text-iter-ends-tag-p (iter tag) boolean
386 ((%ensure-tag tag iter) text-tag))
388 (defbinding text-iter-toggles-tag-p (iter tag) boolean
390 ((%ensure-tag tag iter) text-tag))
392 (defbinding text-iter-has-tag-p (iter tag) boolean
394 ((%ensure-tag tag iter) text-tag))
396 (defbinding text-iter-get-tags () (gslist text-tag)
399 (defbinding text-iter-editable-p () boolean
401 (default-setting boolean))
403 (defbinding text-iter-can-insert-p () boolean
405 (default-editability boolean))
407 (defbinding text-iter-starts-word-p () boolean
410 (defbinding text-iter-ends-word-p () boolean
413 (defbinding text-iter-inside-word-p () boolean
416 (defbinding text-iter-starts-line-p () boolean
419 (defbinding text-iter-ends-line-p () boolean
422 (defbinding text-iter-starts-sentence-p () boolean
425 (defbinding text-iter-ends-sentence-p () boolean
428 (defbinding text-iter-inside-sentence-p () boolean
431 (defbinding text-iter-is-cursor-position-p () boolean
434 (defbinding text-iter-get-chars-in-line () int
437 (defbinding text-iter-get-bytes-in-line () int
440 (defbinding text-iter-get-attributes
441 (iter &optional (values (make-instance 'text-attributes))) boolean
443 (values text-attributes :return))
445 (defbinding text-iter-get-language () pango:language
448 (defbinding text-iter-is-end-p () boolean
451 (defbinding text-iter-is-start-p () boolean
454 (defbinding text-iter-forward-char () boolean
457 (defbinding text-iter-backward-char () boolean
460 (defbinding text-iter-forward-chars () boolean
464 (defbinding text-iter-backward-chars () boolean
468 (defbinding text-iter-forward-line () boolean
471 (defbinding text-iter-backward-line () boolean
474 (defbinding text-iter-forward-lines () boolean
478 (defbinding text-iter-backward-lines () boolean
482 (defbinding text-iter-forward-word-ends () boolean
486 (defbinding text-iter-backward-word-starts () boolean
490 (defbinding text-iter-forward-word-end () boolean
493 (defbinding text-iter-backward-word-start () boolean
496 (defbinding text-iter-forward-cursor-position () boolean
499 (defbinding text-iter-backward-cursor-position () boolean
502 (defbinding text-iter-forward-cursor-positions () boolean
506 (defbinding text-iter-backward-cursor-positions () boolean
510 (defbinding text-iter-backward-sentence-start () boolean
513 (defbinding text-iter-backward-sentence-starts () boolean
517 (defbinding text-iter-forward-sentence-end () boolean
520 (defbinding text-iter-forward-sentence-ends () boolean
524 (defbinding text-iter-forward-visible-word-ends () boolean
528 (defbinding text-iter-backward-visible-word-starts () boolean
532 (defbinding text-iter-forward-visible-word-end () boolean
535 (defbinding text-iter-backward-visible-word-start () boolean
538 (defbinding text-iter-forward-visible-cursor-position () boolean
541 (defbinding text-iter-backward-visible-cursor-position () boolean
544 (defbinding text-iter-forward-visible-cursor-positions () boolean
548 (defbinding text-iter-backward-visible-cursor-positions () boolean
552 (defbinding text-iter-forward-to-end () nil
555 (defbinding text-iter-forward-to-line-end () boolean
558 (defbinding text-iter-forward-to-tag-toggle (iter tag) boolean
560 ((%ensure-tag tag iter) text-tag))
562 (defbinding text-iter-backward-to-tag-toggle (iter tag) boolean
564 ((%ensure-tag tag iter) text-tag))
566 (def-callback-marshal %text-char-prediacte (boolean int))
568 (defbinding text-iter-forward-find-char (iter predicate &optional limit) boolean
570 ((callback %text-char-redicate) pointer)
571 ((register-callback-function predicate) unsigned-int)
572 (limit (or null text-iter)))
574 (defbinding text-iter-backward-find-char (iter predicate &optional limit) boolean
576 ((callback %text-char-redicate) pointer)
577 ((register-callback-function predicate) unsigned-int)
578 (limit (or null text-iter)))
580 (defbinding text-iter-forward-search
581 (iter text &optional flags limit (match-start (make-instance 'text-iter))
582 (match-end (make-instance 'text-iter))) boolean
585 (flags text-search-flags)
586 (match-start text-iter :return)
587 (match-end text-iter :return)
588 (limit (or null text-iter)))
590 (defbinding text-iter-backward-search
591 (iter text &optional flags limit (match-start (make-instance 'text-iter))
592 (match-end (make-instance 'text-iter))) boolean
595 (flags text-search-flags)
596 (match-start text-iter :return)
597 (match-end text-iter :return)
598 (limit (or null text-iter)))
600 (defbinding text-iter-equal-p () boolean
604 (defbinding text-iter-compare () int
608 (defbinding text-iter-in-range-p () boolean
613 (defbinding text-iter-order () nil
621 (defbinding text-tag-event () boolean
623 (event-object gobject)
631 (defbinding text-tag-table-add () nil
632 (table text-tag-table)
635 (defbinding text-tag-table-remove () nil
636 (table text-tag-table)
639 (defbinding text-tag-table-lookup () text-tag
640 (table text-tag-table)
643 (def-callback-marshal %text-tag-table-foreach (nil text-tag))
645 (defbinding text-tag-table-foreach (table function) nil
646 (table text-tag-table)
647 ((callback %text-tag-table-foreach) pointer)
648 ((register-callback-function function) unsigned-int))
653 (defbinding text-view-scroll-to-mark () nil
654 (text-view text-view)
656 (within-margin boolean)
658 (xalign double-float)
659 (yalign double-float))
661 (defbinding text-view-scroll-to-iter () nil
662 (text-view text-view)
664 (within-margin boolean)
666 (xalign double-float)
667 (yalign double-float))
669 (defbinding text-view-scroll-mark-onscreen () nil
670 (text-view text-view)
673 (defbinding text-view-move-mark-onscreen () nil
674 (text-view text-view)
677 (defbinding text-view-place-cursor-onscreen () nil
678 (text-view text-view))
680 (defbinding text-view-get-visible-rect
681 (text-view &optional (rect (make-instance 'gdk:rectangle))) nil
682 (text-view text-view)
683 (rect gdk:rectangle :return))
685 (defbinding text-view-get-iter-location
686 (text-view iter &optional (location (make-instance 'gdk:rectangle))) nil
687 (text-view text-view)
689 (location gdk:rectangle :return))
691 (defbinding text-view-get-line-at-y
692 (text-view y &optional (iter (make-instance 'text-iter))) nil
693 (text-view text-view)
694 (iter text-iter :return)
698 (defbinding text-view-get-line-yrange () nil
699 (text-view text-view)
704 (defbinding text-view-get-iter-at-location
705 (text-view x y &optional (iter (make-instance 'text-iter))) nil
706 (text-view text-view)
707 (iter text-iter :return)
711 (defbinding text-view-buffer-to-window-coords () nil
712 (text-view text-view)
713 (win text-window-type)
719 (defbinding text-view-window-to-buffer-coords () nil
720 (text-view text-view)
721 (win text-window-type)
727 (defbinding text-view-get-window () gdk:window
728 (text-view text-view)
729 (win text-window-type))
731 (defbinding text-view-get-window-type () text-window-type
732 (text-view text-view)
735 (defbinding %text-view-set-border-window-size () nil
736 (text-view text-view)
737 (win text-window-type)
740 (defun (setf text-view-border-window-size) (size text-view win)
741 (%text-view-set-border-window-size text-view win size)
744 (defbinding (text-view-border-window-size
745 "gtk_text_view_get_border_window_size") () int
746 (text-view text-view)
747 (win text-window-type))
749 (defbinding text-view-forward-display-line () boolean
750 (text-view text-view)
753 (defbinding text-view-backward-display-line () boolean
754 (text-view text-view)
757 (defbinding text-view-forward-display-line-end () boolean
758 (text-view text-view)
761 (defbinding text-view-backward-display-line-start () boolean
762 (text-view text-view)
765 (defbinding (text-view-starts-display-line-p
766 "gtk_text_view_starts_display_line") () boolean
767 (text-view text-view)
770 (defbinding text-view-move-visually () boolean
771 (text-view text-view)
775 (defbinding text-view-add-child-at-anchor () nil
776 (text-view text-view)
778 (anchor text-child-anchor))
780 (defbinding text-view-add-child-in-window () nil
781 (text-view text-view)
783 (win text-window-type)
787 (defbinding text-view-move-child () nil
788 (text-view text-view)
796 (defbinding (text-view-child-anchor-deleted-p
797 "gtk_text_child_anchor_get_deleted") () boolean
798 (anchor text-child-anchor))