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.10 2007-10-22 09:21:50 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 #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.10.0")
347 (defmethod allocate-foreign ((text-iter text-iter) &rest initargs)
348 (declare (ignore initargs))
349 (let ((size (foreign-size (class-of text-iter))))
352 (defbinding text-iter-get-char () int
355 (defbinding text-iter-get-slice () string
359 (defbinding text-iter-get-text () string
363 (defbinding text-iter-get-visible-slice () string
367 (defbinding text-iter-get-visible-text () string
371 (defbinding text-iter-get-pixbuf () string
374 (defbinding text-iter-get-marks () (gslist text-mark)
377 (defbinding text-iter-get-toggled-tags () (gslist text-tag)
379 (toggoled-on boolean))
381 (defbinding text-iter-get-child-anchor () text-child-anchor
384 (defun %ensure-tag (tag iter)
388 (text-tag-table-lookup
389 (text-buffer-tag-table (text-iter-buffer iter)) tag))))
391 (defbinding text-iter-begins-tag-p (iter tag) boolean
393 ((%ensure-tag tag iter) text-tag))
395 (defbinding text-iter-ends-tag-p (iter tag) boolean
397 ((%ensure-tag tag iter) text-tag))
399 (defbinding text-iter-toggles-tag-p (iter tag) boolean
401 ((%ensure-tag tag iter) text-tag))
403 (defbinding text-iter-has-tag-p (iter tag) boolean
405 ((%ensure-tag tag iter) text-tag))
407 (defbinding text-iter-get-tags () (gslist text-tag)
410 (defbinding text-iter-editable-p () boolean
412 (default-setting boolean))
414 (defbinding text-iter-can-insert-p () boolean
416 (default-editability boolean))
418 (defbinding text-iter-starts-word-p () boolean
421 (defbinding text-iter-ends-word-p () boolean
424 (defbinding text-iter-inside-word-p () boolean
427 (defbinding text-iter-starts-line-p () boolean
430 (defbinding text-iter-ends-line-p () boolean
433 (defbinding text-iter-starts-sentence-p () boolean
436 (defbinding text-iter-ends-sentence-p () boolean
439 (defbinding text-iter-inside-sentence-p () boolean
442 (defbinding text-iter-is-cursor-position-p () boolean
445 (defbinding text-iter-get-chars-in-line () int
448 (defbinding text-iter-get-bytes-in-line () int
451 (defbinding text-iter-get-attributes
452 (iter &optional (values (make-instance 'text-attributes))) boolean
454 (values text-attributes :in/return))
456 (defbinding text-iter-get-language () pango:language
459 (defbinding text-iter-is-end-p () boolean
462 (defbinding text-iter-is-start-p () boolean
465 (defbinding text-iter-forward-char () boolean
468 (defbinding text-iter-backward-char () boolean
471 (defbinding text-iter-forward-chars () boolean
475 (defbinding text-iter-backward-chars () boolean
479 (defbinding text-iter-forward-line () boolean
482 (defbinding text-iter-backward-line () boolean
485 (defbinding text-iter-forward-lines () boolean
489 (defbinding text-iter-backward-lines () boolean
493 (defbinding text-iter-forward-word-ends () boolean
497 (defbinding text-iter-backward-word-starts () boolean
501 (defbinding text-iter-forward-word-end () boolean
504 (defbinding text-iter-backward-word-start () boolean
507 (defbinding text-iter-forward-cursor-position () boolean
510 (defbinding text-iter-backward-cursor-position () boolean
513 (defbinding text-iter-forward-cursor-positions () boolean
517 (defbinding text-iter-backward-cursor-positions () boolean
521 (defbinding text-iter-backward-sentence-start () boolean
524 (defbinding text-iter-backward-sentence-starts () boolean
528 (defbinding text-iter-forward-sentence-end () boolean
531 (defbinding text-iter-forward-sentence-ends () boolean
535 (defbinding text-iter-forward-visible-word-ends () boolean
539 (defbinding text-iter-backward-visible-word-starts () boolean
543 (defbinding text-iter-forward-visible-word-end () boolean
546 (defbinding text-iter-backward-visible-word-start () boolean
549 (defbinding text-iter-forward-visible-cursor-position () boolean
552 (defbinding text-iter-backward-visible-cursor-position () boolean
555 (defbinding text-iter-forward-visible-cursor-positions () boolean
559 (defbinding text-iter-backward-visible-cursor-positions () boolean
563 (defbinding text-iter-forward-to-end () nil
566 (defbinding text-iter-forward-to-line-end () boolean
569 (defbinding text-iter-forward-to-tag-toggle (iter tag) boolean
571 ((%ensure-tag tag iter) text-tag))
573 (defbinding text-iter-backward-to-tag-toggle (iter tag) boolean
575 ((%ensure-tag tag iter) text-tag))
577 (define-callback-marshal %text-char-predicate-callback boolean (int))
579 (defbinding text-iter-forward-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-backward-find-char (iter predicate &optional limit) boolean
587 (%text-char-predicate-callback callback)
588 ((register-callback-function predicate) unsigned-int)
589 (limit (or null text-iter)))
591 (defbinding text-iter-forward-search
592 (iter text &optional flags limit (match-start (make-instance 'text-iter))
593 (match-end (make-instance 'text-iter))) boolean
596 (flags text-search-flags)
597 (match-start text-iter :in/return)
598 (match-end text-iter :in/return)
599 (limit (or null text-iter)))
601 (defbinding text-iter-backward-search
602 (iter text &optional flags limit (match-start (make-instance 'text-iter))
603 (match-end (make-instance 'text-iter))) boolean
606 (flags text-search-flags)
607 (match-start text-iter :in/return)
608 (match-end text-iter :in/return)
609 (limit (or null text-iter)))
611 (defbinding text-iter-equal-p () boolean
615 (defbinding text-iter-compare () int
619 (defbinding text-iter-in-range-p () boolean
624 (defbinding text-iter-order () nil
632 (defbinding text-tag-event () boolean
634 (event-object gobject)
642 (defbinding text-tag-table-add () nil
643 (table text-tag-table)
646 (defbinding text-tag-table-remove () nil
647 (table text-tag-table)
650 (defbinding text-tag-table-lookup () text-tag
651 (table text-tag-table)
654 (define-callback-marshal %text-tag-table-foreach-callback nil (text-tag))
656 (defbinding text-tag-table-foreach (table function) nil
657 (table text-tag-table)
658 (%text-tag-table-foreach-callback callback)
659 ((register-callback-function function) unsigned-int))
664 (defbinding text-view-scroll-to-mark () nil
665 (text-view text-view)
667 (within-margin boolean)
669 (xalign double-float)
670 (yalign double-float))
672 (defbinding text-view-scroll-to-iter () nil
673 (text-view text-view)
675 (within-margin boolean)
677 (xalign double-float)
678 (yalign double-float))
680 (defbinding text-view-scroll-mark-onscreen () nil
681 (text-view text-view)
684 (defbinding text-view-move-mark-onscreen () nil
685 (text-view text-view)
688 (defbinding text-view-place-cursor-onscreen () nil
689 (text-view text-view))
691 (defbinding text-view-get-visible-rect
692 (text-view &optional (rect (make-instance 'gdk:rectangle))) nil
693 (text-view text-view)
694 (rect gdk:rectangle :in/return))
696 (defbinding text-view-get-iter-location
697 (text-view iter &optional (location (make-instance 'gdk:rectangle))) nil
698 (text-view text-view)
700 (location gdk:rectangle :in/return))
702 (defbinding text-view-get-line-at-y
703 (text-view y &optional (iter (make-instance 'text-iter))) nil
704 (text-view text-view)
705 (iter text-iter :in/return)
709 (defbinding text-view-get-line-yrange () nil
710 (text-view text-view)
715 (defbinding text-view-get-iter-at-location
716 (text-view x y &optional (iter (make-instance 'text-iter))) nil
717 (text-view text-view)
718 (iter text-iter :in/return)
722 (defbinding text-view-buffer-to-window-coords () nil
723 (text-view text-view)
724 (win text-window-type)
730 (defbinding text-view-window-to-buffer-coords () nil
731 (text-view text-view)
732 (win text-window-type)
738 (defbinding text-view-get-window () gdk:window
739 (text-view text-view)
740 (win text-window-type))
742 (defbinding text-view-get-window-type () text-window-type
743 (text-view text-view)
746 (defbinding %text-view-set-border-window-size () nil
747 (text-view text-view)
748 (win text-window-type)
751 (defun (setf text-view-border-window-size) (size text-view win)
752 (%text-view-set-border-window-size text-view win size)
755 (defbinding (text-view-border-window-size
756 "gtk_text_view_get_border_window_size") () int
757 (text-view text-view)
758 (win text-window-type))
760 (defbinding text-view-forward-display-line () boolean
761 (text-view text-view)
764 (defbinding text-view-backward-display-line () boolean
765 (text-view text-view)
768 (defbinding text-view-forward-display-line-end () boolean
769 (text-view text-view)
772 (defbinding text-view-backward-display-line-start () boolean
773 (text-view text-view)
776 (defbinding (text-view-starts-display-line-p
777 "gtk_text_view_starts_display_line") () boolean
778 (text-view text-view)
781 (defbinding text-view-move-visually () boolean
782 (text-view text-view)
786 (defbinding text-view-add-child-at-anchor () nil
787 (text-view text-view)
789 (anchor text-child-anchor))
791 (defbinding text-view-add-child-in-window () nil
792 (text-view text-view)
794 (win text-window-type)
798 (defbinding text-view-move-child () nil
799 (text-view text-view)
807 (defbinding (text-view-child-anchor-deleted-p
808 "gtk_text_child_anchor_get_deleted") () boolean
809 (anchor text-child-anchor))