repos
/
qt.gui
/ annotate_shade
summary
|
shortlog
|
log
|
tree
|
commit
|
commitdiff
|
headdiff
|
annotate
|
filehistory
normal
|
plain
|
shade
|
zebra
:qt and :qt-impl packages to prevent collision with :cl symbols and fix object with non smoke parent.
Annotate for file src/string-list.lisp
2009-06-11 tobias
1
(in-package :cl-smoke.qt-impl)
2010-01-10 tobias
2
08:52:49 '
3
(defcfun qt-smoke-string-list-size :int
'
4
(string-list :pointer))
'
5
'
6
(defcfun qt-smoke-string-list-at :pointer
'
7
(string-list :pointer)
'
8
(index :int))
'
9
'
10
(defcfun qt-smoke-free-string-list :void
'
11
(string-list :pointer))
'
12
'
13
(defcfun qt-smoke-make-string-list :pointer)
'
14
'
15
(defcfun qt-smoke-string-list-append :void
'
16
(string-list :pointer)
'
17
(string :pointer)
'
18
(length :int))
'
19
2009-08-02 tobias
20
(define-foreign-type string-list ()
11:15:21 '
21
()
'
22
(:actual-type :pointer))
'
23
'
24
(eval-when (:load-toplevel)
'
25
(smoke::add-type "QStringList" 'string-list)
'
26
(smoke::add-type "const QStringList&" 'string-list))
'
27
'
28
'
29
(define-parse-method string-list ()
'
30
(make-instance 'string-list))
'
31
'
32
(defmethod translate-to-foreign (sequence (type string-list))
'
33
(let ((string-list (qt-smoke-make-string-list)))
'
34
(map nil #'(lambda (string)
'
35
(with-foreign-string ((data length) string :null-terminated-p nil)
'
36
(qt-smoke-string-list-append string-list data length)))
'
37
sequence)
'
38
string-list))
'
39
'
40
'
41
(defmethod translate-from-foreign (string-list (type string-list))
'
42
(let ((vector (make-array (qt-smoke-string-list-size string-list))))
2010-01-10 tobias
43
(dotimes (index (length vector) vector)
08:52:49 '
44
(setf (aref vector index)
'
45
(cxx:data (make-instance 'qt:byte-array
'
46
:pointer (qt-smoke-string-list-at
'
47
string-list index)))))))
'
48
2009-08-02 tobias
49
(defmethod free-translated-object (string-list (type string-list) param)
11:15:21 '
50
(declare (ignore param))
'
51
(qt-smoke-free-string-list string-list))
'
52
'
53
(defun coerce-string-list (list)
'
54
(make-cleanup-pointer
2009-06-11 tobias
55
(translate-to-foreign list (make-instance 'string-list))
2009-08-02 tobias
56
#'(lambda (pointer)
2009-06-11 tobias
57
(free-translated-object pointer (make-instance 'string-list)
2009-08-02 tobias
58
nil))))
2010-01-10 tobias
59
08:52:49 '
60
(define-from-lisp-translation "const QStringList&"
2009-09-02 tobias
61
(vector string) coerce-string-list)
2009-05-11 tobias
62