repos
/
qt.core
/ annotate_shade
summary
|
shortlog
|
log
|
tree
|
commit
|
commitdiff
|
headdiff
|
annotate
|
headblob
|
headfilediff
|
filehistory
normal
|
plain
|
shade
|
zebra
initial import
Annotate for file src/string-list.lisp
2009-04-05 tobias
1
(in-package :qt)
17:56:16 '
2
'
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
'
20
(define-foreign-type string-list ()
'
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))))
'
43
(dotimes (index (length vector) vector)
'
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
'
49
(defmethod free-translated-object (string-list (type string-list) param)
'
50
(declare (ignore param))
'
51
(qt-smoke-free-string-list string-list))
2009-08-02 tobias
52