C++ classes have a corresponding CLOS class. The can be used like any CLOS class; E.g:
to make a QObject
instance:
(make-instance 'qt:object
)
Supply arguments as list to the :args
keyword:
(let ((parent (make-instance 'qt:object
))) (make-instance 'qt:object
:args (list parent)))
or use :arg0
, :arg1
and :arg2
.
(let ((parent (make-instance 'qt:object
))) (make-instance 'qt:object
:arg0 parent))
To extend a C++ class you have to use cxx:class
as metaclass:
(defclass my-object (qt:object
) () (:metaclasscxx:class
)) (make-instance 'my-object)
The first superclass must be a Smoke class. When you define a class that has several Smoke superclasses,
they will be constructed with their default constructor. For the first Smoke superclass you can supply arguments
with the :args
and :arg0
etc. keywords.
(defclass my-graphics-object (qt:object
qt:graphics-item
) () (:metaclasscxx:class
))