chiark / gitweb /
Add a boundp-function slot, which is required by virtual slot getter.
[clg] / gtk / gtktext.lisp
index d5a1f7db873e93ca8cfe1a40a2792160ec94627b..827f928180009b82a5b3a01a565a9747d5cc8ca8 100644 (file)
@@ -1,21 +1,26 @@
-;; Common Lisp bindings for GTK+ v2.0
-;; Copyright (C) 1999-2004 Espen S. Johnsen <espen@users.sourceforge.net>
+;; Common Lisp bindings for GTK+ v2.x
+;; Copyright 2004-2005 Espen S. Johnsen <espen@users.sf.net>
 ;;
-;; This library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public
-;; License as published by the Free Software Foundation; either
-;; version 2 of the License, or (at your option) any later version.
+;; Permission is hereby granted, free of charge, to any person obtaining
+;; a copy of this software and associated documentation files (the
+;; "Software"), to deal in the Software without restriction, including
+;; without limitation the rights to use, copy, modify, merge, publish,
+;; distribute, sublicense, and/or sell copies of the Software, and to
+;; permit persons to whom the Software is furnished to do so, subject to
+;; the following conditions:
 ;;
-;; This library is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; Lesser General Public License for more details.
+;; The above copyright notice and this permission notice shall be
+;; included in all copies or substantial portions of the Software.
 ;;
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with this library; if not, write to the Free Software
-;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+;; IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+;; CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-;; $Id: gtktext.lisp,v 1.5 2005-02-03 23:09:09 espen Exp $
+;; $Id: gtktext.lisp,v 1.10 2007-10-22 09:21:50 espen Exp $
 
 
 (in-package "GTK")
@@ -86,7 +91,7 @@ (defbinding text-buffer-delete-interactive () boolean
   (end text-iter)
   (default-editable boolean))
 
-#+gtk2.6
+#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0")
 (defbinding text-buffer-backspace () boolean
   (buffer text-buffer)
   (iter text-iter)
@@ -238,14 +243,14 @@ (defun text-buffer-create-tag (buffer name &rest initargs)
 (defbinding text-buffer-get-iter-at-line-offset 
     (buffer line offset &optional (iter (make-instance 'text-iter))) nil
   (buffer text-buffer)
-  (iter text-iter :return)
+  (iter text-iter :in/return)
   (line int)
   (offset int))
 
 (defbinding text-buffer-get-iter-at-offset 
     (buffer offset &optional (iter (make-instance 'text-iter))) nil
   (buffer text-buffer)
-  (iter text-iter :return)
+  (iter text-iter :in/return)
   ((case offset
      (:start 0)
      (:end -1)
@@ -254,20 +259,20 @@ (defbinding text-buffer-get-iter-at-offset
 (defbinding text-buffer-get-iter-at-line 
     (buffer line &optional (iter (make-instance 'text-iter))) nil
   (buffer text-buffer)
-  (iter text-iter :return)
+  (iter text-iter :in/return)
   (line int))
 
 (defbinding text-buffer-get-iter-at-line-index 
     (buffer line index &optional (iter (make-instance 'text-iter))) nil
   (buffer text-buffer)
-  (iter text-iter :return)
+  (iter text-iter :in/return)
   (line int)
   (index int))
 
 (defbinding text-buffer-get-iter-at-mark 
     (buffer mark &optional (iter (make-instance 'text-iter))) nil
   (buffer text-buffer)
-  (iter text-iter :return)
+  (iter text-iter :in/return)
   (mark text-mark))
 
 (defun text-buffer-get-iter-at-insert (buffer &optional (iter (make-instance 'text-iter)))
@@ -276,15 +281,15 @@ (defun text-buffer-get-iter-at-insert (buffer &optional (iter (make-instance 'te
 (defbinding text-buffer-get-iter-at-child-anchor 
     (buffer anchor &optional (iter (make-instance 'text-iter))) nil
   (buffer text-buffer)
-  (iter text-iter :return)
+  (iter text-iter :in/return)
   (anchor text-child-anchor))
 
 (defbinding text-buffer-get-bounds 
     (buffer &optional (start (make-instance 'text-iter))
      (end (make-instance 'text-iter))) nil
   (buffer text-buffer)
-  (start text-iter :return)
-  (end text-iter :return))
+  (start text-iter :in/return)
+  (end text-iter :in/return))
 
 (defbinding text-buffer-delete-selection () boolean
   (buffer text-buffer)
@@ -310,8 +315,8 @@ (defbinding text-buffer-get-selection-bounds
     (buffer &optional (start (make-instance 'text-iter))
      (end (make-instance 'text-iter))) boolean
   (buffer text-buffer)
-  (start text-iter :return)
-  (end text-iter :return))
+  (start text-iter :in/return)
+  (end text-iter :in/return))
 
 (defbinding text-buffer-begin-user-action () nil
   (buffer text-buffer))
@@ -338,6 +343,12 @@ (defbinding text-buffer-remove-selection-clipboard () nil
 
 ;;; Text Iter
 
+#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.10.0")
+(defmethod allocate-foreign ((text-iter text-iter) &rest initargs)
+  (declare (ignore initargs))
+  (let ((size (foreign-size (class-of text-iter))))
+    (slice-alloc size)))
+
 (defbinding text-iter-get-char () int
   (iter text-iter))
 
@@ -440,7 +451,7 @@ (defbinding text-iter-get-bytes-in-line () int
 (defbinding text-iter-get-attributes 
     (iter &optional (values (make-instance 'text-attributes))) boolean
   (iter text-iter)
-  (values text-attributes :return))
+  (values text-attributes :in/return))
 
 (defbinding text-iter-get-language () pango:language
   (iter text-iter))
@@ -563,17 +574,17 @@ (defbinding text-iter-backward-to-tag-toggle (iter tag) boolean
   (iter text-iter)
   ((%ensure-tag tag iter) text-tag))
 
-(def-callback-marshal %text-char-predicate (boolean int))
+(define-callback-marshal %text-char-predicate-callback boolean (int))
 
 (defbinding text-iter-forward-find-char (iter predicate &optional limit) boolean
   (iter text-iter)
-  ((callback %text-char-predicate) pointer)
+  (%text-char-predicate-callback callback)
   ((register-callback-function predicate) unsigned-int)
   (limit (or null text-iter)))
 
 (defbinding text-iter-backward-find-char (iter predicate &optional limit) boolean
   (iter text-iter)
-  ((callback %text-char-predicate) pointer)
+  (%text-char-predicate-callback callback)
   ((register-callback-function predicate) unsigned-int)
   (limit (or null text-iter)))
 
@@ -583,8 +594,8 @@ (defbinding text-iter-forward-search
   (iter text-iter)
   (text string)
   (flags text-search-flags)
-  (match-start text-iter :return)
-  (match-end text-iter :return)
+  (match-start text-iter :in/return)
+  (match-end text-iter :in/return)
   (limit (or null text-iter)))
 
 (defbinding text-iter-backward-search 
@@ -593,8 +604,8 @@ (defbinding text-iter-backward-search
   (iter text-iter)
   (text string)
   (flags text-search-flags)
-  (match-start text-iter :return)
-  (match-end text-iter :return)
+  (match-start text-iter :in/return)
+  (match-end text-iter :in/return)
   (limit (or null text-iter)))
 
 (defbinding text-iter-equal-p () boolean
@@ -640,11 +651,11 @@ (defbinding text-tag-table-lookup () text-tag
   (table text-tag-table)
   (name string))
 
-(def-callback-marshal %text-tag-table-foreach (nil text-tag))
+(define-callback-marshal %text-tag-table-foreach-callback nil (text-tag))
 
 (defbinding text-tag-table-foreach (table function) nil
   (table text-tag-table)
-  ((callback %text-tag-table-foreach) pointer)
+  (%text-tag-table-foreach-callback callback)
   ((register-callback-function function) unsigned-int))
 
 
@@ -680,18 +691,18 @@ (defbinding text-view-place-cursor-onscreen () nil
 (defbinding text-view-get-visible-rect 
     (text-view &optional (rect (make-instance 'gdk:rectangle))) nil
   (text-view text-view)
-  (rect gdk:rectangle :return))
+  (rect gdk:rectangle :in/return))
 
 (defbinding text-view-get-iter-location 
     (text-view iter &optional (location (make-instance 'gdk:rectangle))) nil
   (text-view text-view)
   (iter text-iter)
-  (location gdk:rectangle :return))
+  (location gdk:rectangle :in/return))
 
 (defbinding text-view-get-line-at-y 
     (text-view y &optional (iter (make-instance 'text-iter))) nil
   (text-view text-view)
-  (iter text-iter :return)
+  (iter text-iter :in/return)
   (y int)
   (line-top int :out))
 
@@ -704,7 +715,7 @@ (defbinding text-view-get-line-yrange () nil
 (defbinding text-view-get-iter-at-location 
     (text-view x y &optional (iter (make-instance 'text-iter))) nil
   (text-view text-view)
-  (iter text-iter :return)
+  (iter text-iter :in/return)
   (x int)
   (y int))