X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=gtk%2Fgtk.text.lisp;h=2f98d5b725d629c5c8d40affafa512ec3656248e;hb=16863d91ec98d17a3ec36c37f73e7859bf97841b;hp=10a994a2b67e71b440c56aa25e92d1b55ab72f69;hpb=0d03b82a77743d2ea5ef69bea08735fa12857d92;p=cl-gtk2.git diff --git a/gtk/gtk.text.lisp b/gtk/gtk.text.lisp index 10a994a..2f98d5b 100644 --- a/gtk/gtk.text.lisp +++ b/gtk/gtk.text.lisp @@ -26,7 +26,7 @@ (text-iter-pixbuf :reader "gtk_text_iter_get_pixbuf" :type (g-object pixbuf)) (text-iter-marks :reader "gtk_text_iter_get_marks" :type (gslist (g-object text-mark) :free-from-foreign t)) (text-iter-child-anchor :reader "gtk_text_iter_get_child_anchor" :type (g-object text-child-anchor)) - (text-iter-tags :reader "gtk_text_iter_get_tags" :type (gslist (g-object text-mark) :free-from-foreign t)) + (text-iter-tags :reader "gtk_text_iter_get_tags" :type (gslist (g-object text-tag) :free-from-foreign t)) (text-iter-chars-in-line :reader "gtk_text_iter_get_chars_in_line" :type :int) (text-iter-language :reader "gtk_text_iter_get_language" :type :pointer) (text-iter-is-end :reader "gtk_text_iter_is_end" :type :boolean) @@ -343,11 +343,6 @@ (export 'text-buffer) -(defcfun (text-buffer-tag-table "gtk_text_buffer_get_tag_table") (g-object text-tag-table) - (buffer (g-object text-buffer))) - -(export 'text-buffer-tag-table) - (defcfun gtk-text-buffer-insert :void (buffer (g-object text-buffer)) (iter (g-boxed-ref text-iter)) @@ -376,11 +371,11 @@ (assert (typep position '(or text-iter (member :cursor)))) (if interactive (if (eq position :cursor) - (gtk-text-buffer-insert-interactive-at-cursor buffer text (length text) default-editable) - (gtk-text-buffer-insert-interactive buffer position text (length text) default-editable)) + (gtk-text-buffer-insert-interactive-at-cursor buffer text -1 default-editable) + (gtk-text-buffer-insert-interactive buffer position text -1 default-editable)) (progn (if (eq position :cursor) - (gtk-text-buffer-insert-at-cursor buffer text (length text)) - (gtk-text-buffer-insert buffer position text (length text))) + (gtk-text-buffer-insert-at-cursor buffer text -1) + (gtk-text-buffer-insert buffer position text -1)) t))) (export 'text-buffer-insert) @@ -601,8 +596,9 @@ (char-offset :int)) (defun text-buffer-get-iter-at-line-offset (buffer line-number char-offset) - (aprog1 (make-instance 'text-iter) - (gtk-text-buffer-get-iter-at-line-offset buffer it line-number char-offset))) + (let ((iter (make-instance 'text-iter))) + (gtk-text-buffer-get-iter-at-line-offset buffer iter line-number char-offset) + iter)) (export 'text-buffer-get-iter-at-line-offset) @@ -612,8 +608,9 @@ (char-offset :int)) (defun text-buffer-get-iter-at-offset (buffer offset) - (aprog1 (make-instance 'text-iter) - (gtk-text-buffer-get-iter-at-offset buffer it offset))) + (let ((iter (make-instance 'text-iter))) + (gtk-text-buffer-get-iter-at-offset buffer iter offset) + iter)) (export 'text-buffer-get-iter-at-offset) @@ -623,8 +620,9 @@ (line-number :int)) (defun text-buffer-get-iter-at-line (buffer line-number) - (aprog1 (make-instance 'text-iter) - (gtk-text-buffer-get-iter-at-line buffer it line-number))) + (let ((iter (make-instance 'text-iter))) + (gtk-text-buffer-get-iter-at-line buffer iter line-number) + iter)) (export 'text-buffet-get-iter-at-line) @@ -636,8 +634,9 @@ (defun text-buffer-get-iter-at-mark (buffer mark) (when (stringp mark) (setf mark (text-buffer-get-mark buffer mark))) - (aprog1 (make-instance 'text-iter) - (gtk-text-buffer-get-iter-at-mark buffer it mark))) + (let ((iter (make-instance 'text-iter))) + (gtk-text-buffer-get-iter-at-mark buffer iter mark) + iter)) (export 'text-buffer-get-iter-at-mark) @@ -647,8 +646,9 @@ (anchor (g-object text-child-anchor))) (defun text-buffer-get-iter-at-child-anchor (buffer anchor) - (aprog1 (make-instance 'text-iter) - (gtk-text-buffer-get-iter-at-child-anchor buffer it anchor))) + (let ((iter (make-instance 'text-iter))) + (gtk-text-buffer-get-iter-at-child-anchor buffer iter anchor) + iter)) (export 'text-buffer-get-iter-at-child-anchor) @@ -657,8 +657,9 @@ (iter (g-boxed-ref text-iter))) (defun text-buffer-get-start-iter (buffer) - (aprog1 (make-instance 'text-iter) - (gtk-text-buffer-get-start-iter buffer it))) + (let ((iter (make-instance 'text-iter))) + (gtk-text-buffer-get-start-iter buffer iter) + iter)) (export 'text-buffer-get-start-iter) @@ -667,8 +668,9 @@ (iter (g-boxed-ref text-iter))) (defun text-buffer-get-end-iter (buffer) - (aprog1 (make-instance 'text-iter) - (gtk-text-buffer-get-end-iter buffer it))) + (let ((iter (make-instance 'text-iter))) + (gtk-text-buffer-get-end-iter buffer iter) + iter)) (export 'text-buffer-get-end-iter) @@ -680,7 +682,8 @@ (defun text-buffer-get-bounds (buffer) (let ((start (make-instance 'text-iter)) (end (make-instance 'text-iter))) - (gtk-text-buffer-get-bounds buffer start end))) + (gtk-text-buffer-get-bounds buffer start end) + (values start end))) (export 'text-buffer-get-bounds) @@ -835,18 +838,6 @@ ;; text tag -(defcfun (text-tag-priority "gtk_text_tag_get_priority") :int - (tag (g-object text-tag))) - -(defcfun gtk-text-tag-set-priority :void - (tag (g-object text-tag)) - (priority :int)) - -(defun (setf text-tag-priority) (new-value tag) - (gtk-text-tag-set-priority tag new-value)) - -(export 'text-tag-priority) - ;; text tag table (defcallback gtk-text-tag-table-foreach-function :void ((tag (g-object text-tag)) (data :pointer)) @@ -877,7 +868,7 @@ (defun text-tag-table-foreach (table function) (with-stable-pointer (ptr function) - (gtk-text-tag-table-foreach table (callback gtk-text-table-foreach-function) ptr))) + (gtk-text-tag-table-foreach table (callback gtk-text-tag-table-foreach-function) ptr))) (export 'text-tag-table-foreach) @@ -930,8 +921,9 @@ (visible-rect (g-boxed-ptr rectangle :in-out))) (defun text-view-visible-rect (text-view) - (aprog1 (make-rectangle :x 0 :y 0 :width 0 :height 0) - (gtk-text-view-get-visible-rect text-view it))) + (let ((rect (make-rectangle :x 0 :y 0 :width 0 :height 0))) + (gtk-text-view-get-visible-rect text-view rect) + rect)) (export 'text-view-visible-rect) @@ -941,8 +933,9 @@ (location (g-boxed-ptr rectangle :in-out))) (defun text-view-iter-location (text-view iter) - (aprog1 (make-rectangle :x 0 :y 0 :width 0 :height 0) - (gtk-text-view-get-iter-location text-view iter it))) + (let ((rect (make-rectangle :x 0 :y 0 :width 0 :height 0))) + (gtk-text-view-get-iter-location text-view iter rect) + rect)) (export 'text-view-iter-location) @@ -955,10 +948,20 @@ ;; const GtkTextIter *iter, ;; gint *y, ;; gint *height); -;; void gtk_text_view_get_iter_at_location (GtkTextView *text_view, -;; GtkTextIter *iter, -;; gint x, -;; gint y); + +(defcfun gtk-text-view-get-iter-at-location :void + (text-view (g-object text-view)) + (iter (g-boxed-ref text-iter)) + (x :int) + (y :int)) + +(defun text-view-get-iter-at-location (view x y) + (let ((iter (make-instance 'text-iter))) + (gtk-text-view-get-iter-at-location view iter x y) + iter)) + +(export 'text-view-get-iter-at-location) + ;; void gtk_text_view_get_iter_at_position (GtkTextView *text_view, ;; GtkTextIter *iter, ;; gint *trailing, @@ -971,15 +974,32 @@ ;; gint buffer_y, ;; gint *window_x, ;; gint *window_y); -;; void gtk_text_view_window_to_buffer_coords -;; (GtkTextView *text_view, -;; GtkTextWindowType win, -;; gint window_x, -;; gint window_y, -;; gint *buffer_x, -;; gint *buffer_y); -;; GdkWindow* gtk_text_view_get_window (GtkTextView *text_view, -;; GtkTextWindowType win); + +(defcfun gtk-text-view-window-to-buffer-coords :void + (text-view (g-object text-view)) + (win text-window-type) + (window-x :int) + (window-y :int) + (buffer-x :pointer) + (buffer-y :pointer)) + +(defun text-view-window-to-buffer-coords (text-view win window-x window-y) + (with-foreign-objects ((buffer-x :int) (buffer-y :int)) + (gtk-text-view-window-to-buffer-coords text-view win window-x window-y buffer-x buffer-y) + (values (mem-ref buffer-x :int) + (mem-ref buffer-y :int)))) + +(export 'text-view-window-to-buffer-coords) + +(defcfun gtk-text-view-get-window (g-object gdk:gdk-window) + (text-view (g-object text-view)) + (win text-window-type)) + +(defun text-view-get-window (text-view win) + (gtk-text-view-get-window text-view win)) + +(export 'text-view-get-window) + ;; GtkTextWindowType gtk_text_view_get_window_type (GtkTextView *text_view, ;; GdkWindow *window); ;; void gtk_text_view_set_border_window_size @@ -1007,6 +1027,14 @@ ;; void gtk_text_view_add_child_at_anchor (GtkTextView *text_view, ;; GtkWidget *child, ;; GtkTextChildAnchor *anchor); + +(defcfun (text-view-add-child-at-anchor "gtk_text_view_add_child_at_anchor") :void + (text-view g-object) + (child g-object) + (anchor g-object)) + +(export 'text-view-add-child-at-anchor) + ;; GtkTextChildAnchor; ;; GtkTextChildAnchor* gtk_text_child_anchor_new (void); ;; GList* gtk_text_child_anchor_get_widgets (GtkTextChildAnchor *anchor);