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.9 2007-10-17 14:52:19 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 (defmethod allocate-foreign ((text-iter text-iter) &rest initargs)
347 (declare (ignore initargs))
348 (let ((size (foreign-size (class-of text-iter))))
351 (defbinding text-iter-get-char () int
354 (defbinding text-iter-get-slice () string
358 (defbinding text-iter-get-text () string
362 (defbinding text-iter-get-visible-slice () string
366 (defbinding text-iter-get-visible-text () string
370 (defbinding text-iter-get-pixbuf () string
373 (defbinding text-iter-get-marks () (gslist text-mark)
376 (defbinding text-iter-get-toggled-tags () (gslist text-tag)
378 (toggoled-on boolean))
380 (defbinding text-iter-get-child-anchor () text-child-anchor
383 (defun %ensure-tag (tag iter)
387 (text-tag-table-lookup
388 (text-buffer-tag-table (text-iter-buffer iter)) tag))))
390 (defbinding text-iter-begins-tag-p (iter tag) boolean
392 ((%ensure-tag tag iter) text-tag))
394 (defbinding text-iter-ends-tag-p (iter tag) boolean
396 ((%ensure-tag tag iter) text-tag))
398 (defbinding text-iter-toggles-tag-p (iter tag) boolean
400 ((%ensure-tag tag iter) text-tag))
402 (defbinding text-iter-has-tag-p (iter tag) boolean
404 ((%ensure-tag tag iter) text-tag))
406 (defbinding text-iter-get-tags () (gslist text-tag)
409 (defbinding text-iter-editable-p () boolean
411 (default-setting boolean))
413 (defbinding text-iter-can-insert-p () boolean
415 (default-editability boolean))
417 (defbinding text-iter-starts-word-p () boolean
420 (defbinding text-iter-ends-word-p () boolean
423 (defbinding text-iter-inside-word-p () boolean
426 (defbinding text-iter-starts-line-p () boolean
429 (defbinding text-iter-ends-line-p () boolean
432 (defbinding text-iter-starts-sentence-p () boolean
435 (defbinding text-iter-ends-sentence-p () boolean
438 (defbinding text-iter-inside-sentence-p () boolean
441 (defbinding text-iter-is-cursor-position-p () boolean
444 (defbinding text-iter-get-chars-in-line () int
447 (defbinding text-iter-get-bytes-in-line () int
450 (defbinding text-iter-get-attributes
451 (iter &optional (values (make-instance 'text-attributes))) boolean
453 (values text-attributes :in/return))
455 (defbinding text-iter-get-language () pango:language
458 (defbinding text-iter-is-end-p () boolean
461 (defbinding text-iter-is-start-p () boolean
464 (defbinding text-iter-forward-char () boolean
467 (defbinding text-iter-backward-char () boolean
470 (defbinding text-iter-forward-chars () boolean
474 (defbinding text-iter-backward-chars () boolean
478 (defbinding text-iter-forward-line () boolean
481 (defbinding text-iter-backward-line () boolean
484 (defbinding text-iter-forward-lines () boolean
488 (defbinding text-iter-backward-lines () boolean
492 (defbinding text-iter-forward-word-ends () boolean
496 (defbinding text-iter-backward-word-starts () boolean
500 (defbinding text-iter-forward-word-end () boolean
503 (defbinding text-iter-backward-word-start () boolean
506 (defbinding text-iter-forward-cursor-position () boolean
509 (defbinding text-iter-backward-cursor-position () boolean
512 (defbinding text-iter-forward-cursor-positions () boolean
516 (defbinding text-iter-backward-cursor-positions () boolean
520 (defbinding text-iter-backward-sentence-start () boolean
523 (defbinding text-iter-backward-sentence-starts () boolean
527 (defbinding text-iter-forward-sentence-end () boolean
530 (defbinding text-iter-forward-sentence-ends () boolean
534 (defbinding text-iter-forward-visible-word-ends () boolean
538 (defbinding text-iter-backward-visible-word-starts () boolean
542 (defbinding text-iter-forward-visible-word-end () boolean
545 (defbinding text-iter-backward-visible-word-start () boolean
548 (defbinding text-iter-forward-visible-cursor-position () boolean
551 (defbinding text-iter-backward-visible-cursor-position () boolean
554 (defbinding text-iter-forward-visible-cursor-positions () boolean
558 (defbinding text-iter-backward-visible-cursor-positions () boolean
562 (defbinding text-iter-forward-to-end () nil
565 (defbinding text-iter-forward-to-line-end () boolean
568 (defbinding text-iter-forward-to-tag-toggle (iter tag) boolean
570 ((%ensure-tag tag iter) text-tag))
572 (defbinding text-iter-backward-to-tag-toggle (iter tag) boolean
574 ((%ensure-tag tag iter) text-tag))
576 (define-callback-marshal %text-char-predicate-callback boolean (int))
578 (defbinding text-iter-forward-find-char (iter predicate &optional limit) boolean
580 (%text-char-predicate-callback callback)
581 ((register-callback-function predicate) unsigned-int)
582 (limit (or null text-iter)))
584 (defbinding text-iter-backward-find-char (iter predicate &optional limit) boolean
586 (%text-char-predicate-callback callback)
587 ((register-callback-function predicate) unsigned-int)
588 (limit (or null text-iter)))
590 (defbinding text-iter-forward-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 :in/return)
597 (match-end text-iter :in/return)
598 (limit (or null text-iter)))
600 (defbinding text-iter-backward-search
601 (iter text &optional flags limit (match-start (make-instance 'text-iter))
602 (match-end (make-instance 'text-iter))) boolean
605 (flags text-search-flags)
606 (match-start text-iter :in/return)
607 (match-end text-iter :in/return)
608 (limit (or null text-iter)))
610 (defbinding text-iter-equal-p () boolean
614 (defbinding text-iter-compare () int
618 (defbinding text-iter-in-range-p () boolean
623 (defbinding text-iter-order () nil
631 (defbinding text-tag-event () boolean
633 (event-object gobject)
641 (defbinding text-tag-table-add () nil
642 (table text-tag-table)
645 (defbinding text-tag-table-remove () nil
646 (table text-tag-table)
649 (defbinding text-tag-table-lookup () text-tag
650 (table text-tag-table)
653 (define-callback-marshal %text-tag-table-foreach-callback nil (text-tag))
655 (defbinding text-tag-table-foreach (table function) nil
656 (table text-tag-table)
657 (%text-tag-table-foreach-callback callback)
658 ((register-callback-function function) unsigned-int))
663 (defbinding text-view-scroll-to-mark () nil
664 (text-view text-view)
666 (within-margin boolean)
668 (xalign double-float)
669 (yalign double-float))
671 (defbinding text-view-scroll-to-iter () nil
672 (text-view text-view)
674 (within-margin boolean)
676 (xalign double-float)
677 (yalign double-float))
679 (defbinding text-view-scroll-mark-onscreen () nil
680 (text-view text-view)
683 (defbinding text-view-move-mark-onscreen () nil
684 (text-view text-view)
687 (defbinding text-view-place-cursor-onscreen () nil
688 (text-view text-view))
690 (defbinding text-view-get-visible-rect
691 (text-view &optional (rect (make-instance 'gdk:rectangle))) nil
692 (text-view text-view)
693 (rect gdk:rectangle :in/return))
695 (defbinding text-view-get-iter-location
696 (text-view iter &optional (location (make-instance 'gdk:rectangle))) nil
697 (text-view text-view)
699 (location gdk:rectangle :in/return))
701 (defbinding text-view-get-line-at-y
702 (text-view y &optional (iter (make-instance 'text-iter))) nil
703 (text-view text-view)
704 (iter text-iter :in/return)
708 (defbinding text-view-get-line-yrange () nil
709 (text-view text-view)
714 (defbinding text-view-get-iter-at-location
715 (text-view x y &optional (iter (make-instance 'text-iter))) nil
716 (text-view text-view)
717 (iter text-iter :in/return)
721 (defbinding text-view-buffer-to-window-coords () nil
722 (text-view text-view)
723 (win text-window-type)
729 (defbinding text-view-window-to-buffer-coords () nil
730 (text-view text-view)
731 (win text-window-type)
737 (defbinding text-view-get-window () gdk:window
738 (text-view text-view)
739 (win text-window-type))
741 (defbinding text-view-get-window-type () text-window-type
742 (text-view text-view)
745 (defbinding %text-view-set-border-window-size () nil
746 (text-view text-view)
747 (win text-window-type)
750 (defun (setf text-view-border-window-size) (size text-view win)
751 (%text-view-set-border-window-size text-view win size)
754 (defbinding (text-view-border-window-size
755 "gtk_text_view_get_border_window_size") () int
756 (text-view text-view)
757 (win text-window-type))
759 (defbinding text-view-forward-display-line () boolean
760 (text-view text-view)
763 (defbinding text-view-backward-display-line () boolean
764 (text-view text-view)
767 (defbinding text-view-forward-display-line-end () boolean
768 (text-view text-view)
771 (defbinding text-view-backward-display-line-start () boolean
772 (text-view text-view)
775 (defbinding (text-view-starts-display-line-p
776 "gtk_text_view_starts_display_line") () boolean
777 (text-view text-view)
780 (defbinding text-view-move-visually () boolean
781 (text-view text-view)
785 (defbinding text-view-add-child-at-anchor () nil
786 (text-view text-view)
788 (anchor text-child-anchor))
790 (defbinding text-view-add-child-in-window () nil
791 (text-view text-view)
793 (win text-window-type)
797 (defbinding text-view-move-child () nil
798 (text-view text-view)
806 (defbinding (text-view-child-anchor-deleted-p
807 "gtk_text_child_anchor_get_deleted") () boolean
808 (anchor text-child-anchor))