From 18e45ba6957c2b3b8d9645b90f7dbef4687126f7 Mon Sep 17 00:00:00 2001 Message-Id: <18e45ba6957c2b3b8d9645b90f7dbef4687126f7.1714940408.git.mdw@distorted.org.uk> From: Mark Wooding Date: Fri, 17 Dec 2004 00:36:32 +0000 Subject: [PATCH] Added lots of bindings Organization: Straylight/Edgeware From: espen --- gtk/gtktext.lisp | 625 ++++++++++++++++++++++++++++++++++++++++++++++- gtk/gtktree.lisp | 9 +- 2 files changed, 629 insertions(+), 5 deletions(-) diff --git a/gtk/gtktext.lisp b/gtk/gtktext.lisp index d43d027..4788a4f 100644 --- a/gtk/gtktext.lisp +++ b/gtk/gtktext.lisp @@ -15,11 +15,634 @@ ;; License along with this library; if not, write to the Free Software ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -;; $Id: gtktext.lisp,v 1.1 2004-12-04 18:19:59 espen Exp $ +;; $Id: gtktext.lisp,v 1.2 2004-12-17 00:37:50 espen Exp $ (in-package "GTK") +;;; Text Buffer + +(defbinding %text-buffer-insert () nil + (buffer text-buffer) + (iter text-iter) + (text string) + (-1 int)) + +(defun text-buffer-insert (buffer iter text &rest tags) + (if tags + (let ((start-offset (text-iter-offset iter))) + (%text-buffer-insert buffer iter text) + (let ((start (text-buffer-get-iter-at-offset buffer start-offset))) + (loop + for tag in tags + do (text-buffer-apply-tag buffer tag start iter)))) + (%text-buffer-insert buffer iter text))) + +(defbinding %text-buffer-insert-at-cursor () nil + (buffer text-buffer) + (text string) + (-1 int)) + +(defun text-buffer-insert-at-cursor (buffer text &rest tags) + (if tags + (apply #'text-buffer-insert buffer + (text-buffer-get-iter-at-insert buffer) text tags) + (%text-buffer-insert-at-cursor buffer text))) + +(defbinding text-buffer-insert-interactive () boolean + (buffer text-buffer) + (iter text-iter) + (text string) + (-1 int) + (default-editable boolean)) + +(defbinding text-buffer-insert-interactive-at-cursor () boolean + (buffer text-buffer) + (text string) + (-1 int) + (default-editable boolean)) + +(defbinding text-buffer-insert-range () nil + (buffer text-buffer) + (iter text-iter) + (start text-iter) + (end text-iter)) + +(defbinding text-buffer-insert-range-interactive () nil + (buffer text-buffer) + (iter text-iter) + (start text-iter) + (end text-iter) + (default-editable boolean)) + +(defbinding text-buffer-delete () nil + (buffer text-buffer) + (start text-iter) + (end text-iter)) + +(defbinding text-buffer-delete-interactive () boolean + (buffer text-buffer) + (start text-iter) + (end text-iter) + (default-editable boolean)) + +#+gtk2.6 +(defbinding text-buffer-backspace () boolean + (buffer text-buffer) + (iter text-iter) + (interactive boolean) + (default-editable boolean)) + +(defbinding text-buffer-set-text () nil + (buffer text-buffer) + (text string) + (-1 int)) + +(defbinding text-buffer-get-text () string + (buffer text-buffer) + (start text-iter) + (end text-iter) + (include-hidden-char boolean)) + +(defbinding text-buffer-get-slice () string + (buffer text-buffer) + (start text-iter) + (end text-iter) + (include-hidden-char boolean)) + +(defbinding text-buffer-insert-pixbuf () nil + (buffer text-buffer) + (iter text-iter) + (pixbuf gdk:pixbuf)) + +(defbinding text-buffer-insert-child-anchor () nil + (buffer text-buffer) + (iter text-iter) + (anchor text-child-anchor)) + +(defbinding text-buffer-create-child-anchor () text-child-anchor + (buffer text-buffer) + (iter text-iter)) + +(defbinding text-buffer-create-mark () text-mark + (buffer text-buffer) + (mark-name (or null string)) + (where text-iter) + (left-gravity boolean)) + +(defbinding %text-buffer-move-mark () nil + (buffer text-buffer) + (mark text-mark) + (where text-iter)) + +(defbinding %text-buffer-move-mark-by-name () nil + (buffer text-buffer) + (mark-name string) + (where text-iter)) + +(defgeneric text-buffer-move-mark (buffer mark where)) + +(defmethod text-buffer-move-mark ((buffer text-buffer) (mark text-mark) where) + (%text-buffer-move-mark buffer mark where)) + +(defmethod text-buffer-move-mark ((buffer text-buffer) (name string) where) + (%text-buffer-move-mark-by-name buffer name where)) + +(defbinding %text-buffer-delete-mark () nil + (buffer text-buffer) + (mark text-mark)) + +(defbinding %text-buffer-delete-mark-by-name () nil + (buffer text-buffer) + (mark-name string)) + +(defgeneric text-buffer-delete-mark (buffer mark)) + +(defmethod text-buffer-delete-mark ((buffer text-buffer) (mark text-mark)) + (%text-buffer-delete-mark buffer mark)) + +(defmethod text-buffer-delete-mark ((buffer text-buffer) (mark-name string)) + (%text-buffer-delete-mark-by-name buffer mark-name)) + +(defbinding text-buffer-get-mark () text-mark + (buffer text-buffer) + (mark-name string)) + +(defbinding text-buffer-get-insert () text-mark + (buffer text-buffer)) + +(defbinding text-buffer-get-selection-bound () text-mark + (buffer text-buffer)) + +(defbinding text-buffer-place-cursor () nil + (buffer text-buffer) + (where text-iter)) + +(defbinding text-buffer-select-range () nil + (buffer text-buffer) + (insert text-iter) + (bound text-iter)) + +(defbinding %text-buffer-apply-tag () nil + (buffer text-buffer) + (tag text-tag) + (start text-iter) + (end text-iter)) + +(defbinding %text-buffer-remove-tag () nil + (buffer text-buffer) + (tag text-tag) + (start text-iter) + (end text-iter)) + +(defbinding %text-buffer-apply-tag-by-name () nil + (buffer text-buffer) + (tag-name string) + (start text-iter) + (end text-iter)) + +(defbinding %text-buffer-remove-tag-by-name () nil + (buffer text-buffer) + (tag-name string) + (start text-iter) + (end text-iter)) + +(defgeneric text-buffer-apply-tag (buffer tag start end)) + +(defmethod text-buffer-apply-tag ((buffer text-buffer) (tag text-tag) start end) + (%text-buffer-apply-tag buffer tag start end)) + +(defmethod text-buffer-apply-tag ((buffer text-buffer) (name string) start end) + (%text-buffer-apply-tag-by-name buffer name start end)) + +(defgeneric text-buffer-remove-tag (buffer tag start end)) + +(defmethod text-buffer-remove-tag ((buffer text-buffer) (tag text-tag) start end) + (%text-buffer-remove-tag buffer tag start end)) + +(defmethod text-buffer-remove-tag ((buffer text-buffer) (name string) start end) + (%text-buffer-remove-tag-by-name buffer name start end)) + +(defbinding text-buffer-remove-all-tags () nil + (buffer text-buffer) + (start text-iter) + (end text-iter)) + +(defun text-buffer-create-tag (buffer name &rest initargs) + (text-tag-table-add + (text-buffer-tag-table buffer) + (if name + (apply #'make-instance 'text-tag :name name initargs) + (apply #'make-instance 'text-tag 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) + (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) + ((case offset + (:start 0) + (:end -1) + (t offset)) int)) + +(defbinding text-buffer-get-iter-at-line + (buffer line &optional (iter (make-instance 'text-iter))) nil + (buffer text-buffer) + (iter text-iter :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) + (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) + (mark text-mark)) + +(defun text-buffer-get-iter-at-insert (buffer &optional (iter (make-instance 'text-iter))) + (text-buffer-get-iter-at-mark buffer (text-buffer-get-insert buffer) iter)) + +(defbinding text-buffer-get-iter-at-child-anchor + (buffer anchor &optional (iter (make-instance 'text-iter))) nil + (buffer text-buffer) + (iter text-iter :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)) + +(defbinding text-buffer-delete-selection () boolean + (buffer text-buffer) + (interactive boolean) + (default-editable boolean)) + +(defbinding text-buffer-paste-clipboard () nil + (buffer text-buffer) + (clipboard clipboard) + (override-location (or null text-iter)) + (default-editable boolean)) + +(defbinding text-buffer-copy-clipboard () nil + (buffer text-buffer) + (clipboard clipboard)) + +(defbinding text-buffer-cut-clipboard () nil + (buffer text-buffer) + (clipboard clipboard) + (default-editable boolean)) + +(defbinding text-buffer-get-selection-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)) + +(defbinding text-buffer-begin-user-action () nil + (buffer text-buffer)) + +(defbinding text-buffer-end-user-action () nil + (buffer text-buffer)) + +(defmacro text-buffer-with-user-action ((buffer) &body body) + (let ((bufvar (make-symbol "BUFFER"))) + `(let ((,bufvar ,buffer)) + (text-buffer-begin-user-action ,bufvar) + (unwind-protect + (progn ,@body) + (text-buffer-end-user-action ,bufvar))))) + +(defbinding text-buffer-add-selection-clipboard () nil + (buffer text-buffer) + (clipboard clipboard)) + +(defbinding text-buffer-remove-selection-clipboard () nil + (buffer text-buffer) + (clipboard clipboard)) + + +;;; Text Iter + +(defbinding text-iter-get-char () int + (iter text-iter)) + +(defbinding text-iter-get-slice () string + (start text-iter) + (end text-iter)) + +(defbinding text-iter-get-text () string + (start text-iter) + (end text-iter)) + +(defbinding text-iter-get-visible-slice () string + (start text-iter) + (end text-iter)) + +(defbinding text-iter-get-visible-text () string + (start text-iter) + (end text-iter)) + +(defbinding text-iter-get-pixbuf () string + (iter text-iter)) + +(defbinding text-iter-get-marks () (gslist text-mark) + (iter text-iter)) + +(defbinding text-iter-get-toggled-tags () (gslist text-tag) + (iter text-iter) + (toggoled-on boolean)) + +(defbinding text-iter-get-child-anchor () text-child-anchor + (iter text-iter)) + +(defun %ensure-tag (tag iter) + (etypecase tag + (text-tag tag) + (string + (text-tag-table-lookup + (text-buffer-tag-table (text-iter-buffer iter)) tag)))) + +(defbinding text-iter-begins-tag-p (iter tag) boolean + (iter text-iter) + ((%ensure-tag tag iter) text-tag)) + +(defbinding text-iter-ends-tag-p (iter tag) boolean + (iter text-iter) + ((%ensure-tag tag iter) text-tag)) + +(defbinding text-iter-toggles-tag-p (iter tag) boolean + (iter text-iter) + ((%ensure-tag tag iter) text-tag)) + +(defbinding text-iter-has-tag-p (iter tag) boolean + (iter text-iter) + ((%ensure-tag tag iter) text-tag)) + +(defbinding text-iter-get-tags () (gslist text-tag) + (iter text-iter)) + +(defbinding text-iter-editable-p () boolean + (iter text-iter) + (default-setting boolean)) + +(defbinding text-iter-can-insert-p () boolean + (iter text-iter) + (default-editability boolean)) + +(defbinding text-iter-starts-word-p () boolean + (iter text-iter)) + +(defbinding text-iter-ends-word-p () boolean + (iter text-iter)) + +(defbinding text-iter-inside-word-p () boolean + (iter text-iter)) + +(defbinding text-iter-starts-line-p () boolean + (iter text-iter)) + +(defbinding text-iter-ends-line-p () boolean + (iter text-iter)) + +(defbinding text-iter-starts-sentence-p () boolean + (iter text-iter)) + +(defbinding text-iter-ends-sentence-p () boolean + (iter text-iter)) + +(defbinding text-iter-inside-sentence-p () boolean + (iter text-iter)) + +(defbinding text-iter-is-cursor-position-p () boolean + (iter text-iter)) + +(defbinding text-iter-get-chars-in-line () int + (iter text-iter)) + +(defbinding text-iter-get-bytes-in-line () int + (iter text-iter)) + +(defbinding text-iter-get-attributes + (iter &optional (values (make-instance 'text-attributes))) boolean + (iter text-iter) + (values text-attributes :return)) + +(defbinding text-iter-get-language () pango:language + (iter text-iter)) + +(defbinding text-iter-is-end-p () boolean + (iter text-iter)) + +(defbinding text-iter-is-start-p () boolean + (iter text-iter)) + +(defbinding text-iter-forward-char () boolean + (iter text-iter)) + +(defbinding text-iter-backward-char () boolean + (iter text-iter)) + +(defbinding text-iter-forward-chars () boolean + (iter text-iter) + (count int)) + +(defbinding text-iter-backward-chars () boolean + (iter text-iter) + (count int)) + +(defbinding text-iter-forward-line () boolean + (iter text-iter)) + +(defbinding text-iter-backward-line () boolean + (iter text-iter)) + +(defbinding text-iter-forward-lines () boolean + (iter text-iter) + (count int)) + +(defbinding text-iter-backward-lines () boolean + (iter text-iter) + (count int)) + +(defbinding text-iter-forward-word-ends () boolean + (iter text-iter) + (count int)) + +(defbinding text-iter-backward-word-starts () boolean + (iter text-iter) + (count int)) + +(defbinding text-iter-forward-word-end () boolean + (iter text-iter)) + +(defbinding text-iter-backward-word-start () boolean + (iter text-iter)) + +(defbinding text-iter-forward-cursor-position () boolean + (iter text-iter)) + +(defbinding text-iter-backward-cursor-position () boolean + (iter text-iter)) + +(defbinding text-iter-forward-cursor-positions () boolean + (iter text-iter) + (count int)) + +(defbinding text-iter-backward-cursor-positions () boolean + (iter text-iter) + (count int)) + +(defbinding text-iter-backward-sentence-start () boolean + (iter text-iter)) + +(defbinding text-iter-backward-sentence-starts () boolean + (iter text-iter) + (count int)) + +(defbinding text-iter-forward-sentence-end () boolean + (iter text-iter)) + +(defbinding text-iter-forward-sentence-ends () boolean + (iter text-iter) + (count int)) + +(defbinding text-iter-forward-visible-word-ends () boolean + (iter text-iter) + (count int)) + +(defbinding text-iter-backward-visible-word-starts () boolean + (iter text-iter) + (count int)) + +(defbinding text-iter-forward-visible-word-end () boolean + (iter text-iter)) + +(defbinding text-iter-backward-visible-word-start () boolean + (iter text-iter)) + +(defbinding text-iter-forward-visible-cursor-position () boolean + (iter text-iter)) + +(defbinding text-iter-backward-visible-cursor-position () boolean + (iter text-iter)) + +(defbinding text-iter-forward-visible-cursor-positions () boolean + (iter text-iter) + (count int)) + +(defbinding text-iter-backward-visible-cursor-positions () boolean + (iter text-iter) + (count int)) + +(defbinding text-iter-forward-to-end () nil + (iter text-iter)) + +(defbinding text-iter-forward-to-line-end () boolean + (iter text-iter)) + +(defbinding text-iter-forward-to-tag-toggle (iter tag) boolean + (iter text-iter) + ((%ensure-tag tag iter) text-tag)) + +(defbinding text-iter-backward-to-tag-toggle (iter tag) boolean + (iter text-iter) + ((%ensure-tag tag iter) text-tag)) + +(def-callback-marshal %text-char-prediacte (boolean int)) + +(defbinding text-iter-forward-find-char (iter predicate &optional limit) boolean + (iter text-iter) + ((callback %text-char-redicate) pointer) + ((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-redicate) pointer) + ((register-callback-function predicate) unsigned-int) + (limit (or null text-iter))) + +(defbinding text-iter-forward-search + (iter text &optional flags limit (match-start (make-instance 'text-iter)) + (match-end (make-instance 'text-iter))) boolean + (iter text-iter) + (text string) + (flags text-search-flags) + (match-start text-iter :return) + (match-end text-iter :return) + (limit (or null text-iter))) + +(defbinding text-iter-backward-search + (iter text &optional flags limit (match-start (make-instance 'text-iter)) + (match-end (make-instance 'text-iter))) boolean + (iter text-iter) + (text string) + (flags text-search-flags) + (match-start text-iter :return) + (match-end text-iter :return) + (limit (or null text-iter))) + +(defbinding text-iter-equal-p () boolean + (lhs text-iter) + (rhs text-iter)) + +(defbinding text-iter-compare () int + (lhs text-iter) + (rhs text-iter)) + +(defbinding text-iter-in-range-p () boolean + (iter text-iter) + (start text-iter) + (end text-iter)) + +(defbinding text-iter-order () nil + (first text-iter) + (second text-iter)) + + +;;; Text Tag Table + +(defbinding text-tag-table-add () nil + (table text-tag-table) + (tag text-tag)) + +(defbinding text-tag-table-remove () nil + (table text-tag-table) + (tag text-tag)) + +(defbinding text-tag-table-lookup () text-tag + (table text-tag-table) + (name string)) + +(def-callback-marshal %text-tag-table-foreach (nil text-tag)) + +(defbinding text-tag-table-foreach (table function) nil + (table text-tag-table) + ((callback %text-tag-table-foreach) pointer) + ((register-callback-function function) unsigned-int)) + +;; (defbinding text-tag-event () boolean +;; (tag text-tag) +;; (event-object object) +;; (event gdk:event) +;; (iter text-iter)) + + ;;; Text View (defbinding text-view-scroll-to-mark () nil diff --git a/gtk/gtktree.lisp b/gtk/gtktree.lisp index 7864a12..349188a 100644 --- a/gtk/gtktree.lisp +++ b/gtk/gtktree.lisp @@ -15,7 +15,7 @@ ;; License along with this library; if not, write to the Free Software ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -;; $Id: gtktree.lisp,v 1.3 2004-11-21 17:57:56 espen Exp $ +;; $Id: gtktree.lisp,v 1.4 2004-12-17 00:36:32 espen Exp $ (in-package "GTK") @@ -292,7 +292,7 @@ (defbinding (tree-row-reference-valid-p "gtk_tree_row_reference_valid") () boole (reference tree-row-reference)) -(defbinding tree-model-get-column-type () type-number +(defbinding tree-model-get-column-type () gtype ;type-number (tree-model tree-model) (index int)) @@ -312,7 +312,7 @@ (defbinding %tree-model-get-value () nil (column int) (gvalue gvalue)) -(defun tree-model-get-column-value (model iter column) +(defun tree-model-column-value (model iter column) (let ((index (column-index model column))) (with-gvalue (gvalue (tree-model-get-column-type model index)) (%tree-model-get-value model iter index gvalue)))) @@ -418,7 +418,8 @@ (defun tree-model-column-value-setter (model column) (let ((setter (mkbinding (column-setter-name model) nil (type-of model) 'tree-iter 'int - (type-from-number (tree-model-get-column-type model index)) +; (type-from-number (tree-model-get-column-type model index)) + (tree-model-get-column-type model index) 'int))) #'(lambda (value iter) (funcall setter model iter index value -1)))))))) -- [mdw]