Basic class refcounter that will probably break
This commit is contained in:
parent
9d861f666a
commit
c15a7e69ea
292
qml.core.scm
292
qml.core.scm
|
@ -1,48 +1,82 @@
|
|||
;; -*- geiser-scheme: chicken -*-
|
||||
(module (qml core)
|
||||
*
|
||||
(import (scheme base))
|
||||
(import (chicken gc))
|
||||
(import (chicken string))
|
||||
(import (chicken base))
|
||||
(import (chicken condition))
|
||||
(import (qml lowlevel))
|
||||
(import coops coops-primitive-objects coops-extras)
|
||||
(import coops coops-primitive-objects coops-extras srfi-1 srfi-69)
|
||||
|
||||
;; Enums
|
||||
(define-class <Enum> ()
|
||||
((value accessor: value)))
|
||||
((val accessor: val)))
|
||||
|
||||
(define-class <QEventLoopProcessEventFlag> (<Enum>))
|
||||
(define (qevent-loop-process-event-flag value)
|
||||
(case value
|
||||
(define (qevent-loop-process-event-flag val)
|
||||
(case val
|
||||
((process-all-events:)
|
||||
(make <QEventLoopProcessEventFlag> 'value DosQEventLoopProcessEventFlagProcessAllEvents))
|
||||
(make <QEventLoopProcessEventFlag> 'val DosQEventLoopProcessEventFlagProcessAllEvents))
|
||||
((exclude-user-input-events:)
|
||||
(make <QEventLoopProcessEventFlag> 'value DosQEventLoopProcessEventFlagExcludeUserInputEvents))
|
||||
(make <QEventLoopProcessEventFlag> 'val DosQEventLoopProcessEventFlagExcludeUserInputEvents))
|
||||
((process-exclude-socket-notifiers:)
|
||||
(make <QEventLoopProcessEventFlag> 'value DosQEventLoopProcessEventFlagProcessExcludeSocketNotifiers))
|
||||
(make <QEventLoopProcessEventFlag> 'val DosQEventLoopProcessEventFlagProcessExcludeSocketNotifiers))
|
||||
((process-all-events-wait-for-more-events:)
|
||||
(make <QEventLoopProcessEventFlag> 'value DosQEventLoopProcessEventFlagProcessAllEventsWaitForMoreEvents))))
|
||||
(make <QEventLoopProcessEventFlag> 'val DosQEventLoopProcessEventFlagProcessAllEventsWaitForMoreEvents))))
|
||||
|
||||
(define-class <QtConnectionType> (<Enum>))
|
||||
(define (qt-connection-type value)
|
||||
(case value
|
||||
(define (qt-connection-type val)
|
||||
(case val
|
||||
((auto:)
|
||||
(make <QtConnectionType> 'value DosQtConnectionTypeAutoConnection))
|
||||
(make <QtConnectionType> 'val DosQtConnectionTypeAutoConnection))
|
||||
((direct:)
|
||||
(make <QtConnectionType> 'value DosQtConnectionTypeDirectConnection))
|
||||
(make <QtConnectionType> 'val DosQtConnectionTypeDirectConnection))
|
||||
((queued:)
|
||||
(make <QtConnectionType> 'value DosQtConnectionTypeQueuedConnection))
|
||||
(make <QtConnectionType> 'val DosQtConnectionTypeQueuedConnection))
|
||||
((blocking:)
|
||||
(make <QtConnectionType> 'value DosQtConnectionTypeBlockingConnection))
|
||||
(make <QtConnectionType> 'val DosQtConnectionTypeBlockingConnection))
|
||||
((unique:)
|
||||
(make <QtConnectionType> 'value DosQtConnectionTypeUniqueConnection))))
|
||||
(make <QtConnectionType> 'val DosQtConnectionTypeUniqueConnection))))
|
||||
|
||||
(define-class <QQuickViewResizeMode> (<Enum>))
|
||||
(define (qquick-view-resize-mode val)
|
||||
(case val
|
||||
((size-view-to-root-object:) (make <QQuickViewResizeMode> 'val #x0))
|
||||
((size-root-object-to-view:) (make <QQuickViewResizeMode> 'val #x1))))
|
||||
|
||||
(define-class <QItemDataRole> (<Enum>))
|
||||
(define (qitem-data-role val)
|
||||
(case val
|
||||
((display:) (make <QItemDataRole> 'val 0))
|
||||
((decoration:) (make <QItemDataRole> 'val 1))
|
||||
((edit:) (make <QItemDataRole> 'val 2))
|
||||
((tool-tip:) (make <QItemDataRole> 'val 3))
|
||||
((status-tip:) (make <QItemDataRole> 'val 4))
|
||||
((whats-this:) (make <QItemDataRole> 'val 5))
|
||||
((font:) (make <QItemDataRole> 'val 6))
|
||||
((text-alignment:) (make <QItemDataRole> 'val 7))
|
||||
((background:) (make <QItemDataRole> 'val 8))
|
||||
((foreground:) (make <QItemDataRole> 'val 9))
|
||||
((check-state:) (make <QItemDataRole> 'val 10))
|
||||
((accessible-text:) (make <QItemDataRole> 'val 11))
|
||||
((accessible-description:) (make <QItemDataRole> 'val 12))
|
||||
((size-hint:) (make <QItemDataRole> 'val 13))
|
||||
((initial-sort-order:) (make <QItemDataRole> 'val 14))))
|
||||
|
||||
(define-class <QtOrientation> (<Enum>))
|
||||
(define (qt-orientation val)
|
||||
(case val
|
||||
((horizontal:) (make <QtOrientation> 'val #x01))
|
||||
((vertical:) (make <QtOrientation> 'val #x02))))
|
||||
|
||||
;; Helpers
|
||||
(define (application-dir-path)
|
||||
(dos_qcoreapplication_application_dir_path))
|
||||
(define-method (process-events (flag <QEventLoopProcessEventFlag>))
|
||||
(dos_qcoreapplication_process_events (value flag)))
|
||||
(dos_qcoreapplication_process_events (val flag)))
|
||||
(define-method (process-events-timed (flag <QEventLoopProcessEventFlag>) (timed <integer>))
|
||||
(dos_qcoreapplication_process_events_timed (value flag) timed))
|
||||
(dos_qcoreapplication_process_events_timed (val flag) timed))
|
||||
|
||||
(define (gui-application-create)
|
||||
(dos_qguiapplication_create))
|
||||
|
@ -68,26 +102,96 @@
|
|||
(dos_qquickstyle_set_fallback_style style))
|
||||
|
||||
;; Objects
|
||||
(define-class <QObject> ()
|
||||
((ptr accessor: ptr)))
|
||||
(define callback-registry
|
||||
(make-hash-table))
|
||||
|
||||
(define-method (refcount (alist <list>))
|
||||
(cdr (find (lambda (a) (eq? refcount: (car a))) alist)))
|
||||
(define-method (refcount (ht <hash-table>) (ptr <pointer>))
|
||||
(if (hash-table-exists? callback-registry ptr)
|
||||
(refcount (hash-table-ref ht ptr))
|
||||
0))
|
||||
|
||||
(define-class <QMLBase> ()
|
||||
((ptr accessor: ptr initform: #f)))
|
||||
(define-method (delete-pointer (qbase <QMLBase>))
|
||||
(abort (make-property-condition 'exn 'Message "Please implement the delete method for your subtype.")))
|
||||
(define-method (add-ptrentry (qbase <QMLBase>))
|
||||
(hash-table-update! callback-registry (ptr qbase)
|
||||
(lambda (alist)
|
||||
(alist-update refcount: (+ 1 (refcount alist)) alist))
|
||||
(lambda ()
|
||||
(alist-cons refcount: 1 '()))))
|
||||
(define-method (remove-ptrentry (qbase <QMLBase>))
|
||||
(if (eq? 1 (refcount callback-registry (ptr qbase)))
|
||||
(hash-table-delete! callback-registry (ptr qbase))
|
||||
(hash-table-update! callback-registry (ptr qbase)
|
||||
(lambda (alist)
|
||||
(alist-update refcount: (- (refcount alist) 1) alist)))))
|
||||
(define-method (initialize-instance (qbase <QMLBase>))
|
||||
(call-next-method)
|
||||
(add-ptrentry qbase)
|
||||
(set-finalizer! qbase (lambda (obj)
|
||||
(remove-ptrentry qbase)
|
||||
(when (= 0 (refcount callback-registry (ptr qbase)))
|
||||
(delete-pointer qbase)))))
|
||||
|
||||
(define-class <QObject> (<QMLBase>))
|
||||
(define-method (signal-emit (qo <QObject>) (name <string>) (paramcount <integer>) (parameters <sequence>))
|
||||
(dos_qobject_signal_emit (ptr qo) name paramcount parameters))
|
||||
(define-method (delete (qo <QObject>))
|
||||
(define-method (delete-pointer (qo <QObject>))
|
||||
(dos_qobject_delete (ptr qo)))
|
||||
(define-method (delete-later (qo <QObject>))
|
||||
(define-method (delete-pointer-later (qo <QObject>))
|
||||
(dos_qobject_deleteLater (ptr qo)))
|
||||
|
||||
(define-class <QVariant> ()
|
||||
(define-class <QVariant> (<QMLBase>)
|
||||
((ptr accessor: ptr)))
|
||||
(define-method (initialize-instance (qv <QVariant>))
|
||||
(set! (ptr qv) (dos_qvariant_create))
|
||||
(call-next-method))
|
||||
(define-method (qvariant (val <integer>))
|
||||
(make <QVariant> 'ptr (dos_qvariant_create_int val)))
|
||||
(define-method (qvariant (val <boolean>))
|
||||
(make <QVariant> 'ptr (dos_qvariant_create_bool val)))
|
||||
(define-method (qvariant (val <string>))
|
||||
(make <QVariant> 'ptr (dos_qvariant_create_string val)))
|
||||
(define-method (qvariant (val <QObject>))
|
||||
(make <QVariant> 'ptr (dos_qvariant_create_qobject (ptr val))))
|
||||
(define-method (qvariant (val <flonum>))
|
||||
(make <QVariant> 'ptr (dos_qvariant_create_float val)))
|
||||
(define-method (set (qv <QVariant>) (val <integer>))
|
||||
(dos_qvariant_setInt (ptr qv) val))
|
||||
(define-method (set (qv <QVariant>) (val <boolean>))
|
||||
(dos_qvariant_setBool (ptr qv) val))
|
||||
(define-method (set (qv <QVariant>) (val <flonum>))
|
||||
(dos_qvariant_setFloat (ptr qv) val))
|
||||
(define-method (set (qv <QVariant>) (val <string>))
|
||||
(dos_qvariant_setString (ptr qv) val))
|
||||
(define-method (set (qv <QVariant>) (val <QObject>))
|
||||
(dos_qvariant_setQObject (ptr qv) (ptr val)))
|
||||
(define-method (to (qv <QVariant>) (target <keyword>))
|
||||
(case target
|
||||
((integer:) (dos_qvariant_toInt (ptr qv)))
|
||||
((boolean:) (dos_qvariant_toBool (ptr qv)))
|
||||
((string:) (dos_qvariant_toString (ptr qv)))
|
||||
((flonum:) (dos_qvariant_toFloat (ptr qv)))
|
||||
((qobject:) (dos_qvariant_toQObject (ptr qv)))))
|
||||
(define-method (is-null? (qv <QVariant>))
|
||||
(dos_qvariant_isnull (ptr qv)))
|
||||
(define-method (assign (qv <QVariant>) (other <QVariant>))
|
||||
(dos_qvariant_assign (ptr qv) (ptr other)))
|
||||
(define-method (copy (qv <QVariant>))
|
||||
(make <QVariant> 'ptr (dos_qvariant_create_qvariant (ptr qv))))
|
||||
(define-method (delete-pointer (qv <QVariant>))
|
||||
(dos_qvariant_delete (ptr qv)))
|
||||
|
||||
(define-class <QQmlContext> (<QObject>))
|
||||
(define-method (base-url (context <QQmlContext>))
|
||||
(dos_qqmlcontext_baseUrl (ptr context)))
|
||||
(define-method (set-property (context <QQmlContext>) (name <string>) (value <QVariant>))
|
||||
(dos_qqmlcontext_setcontextproperty (ptr context) name (ptr value)))
|
||||
(define-method (set-property (context <QQmlContext>) (name <string>) (qvalue <QVariant>))
|
||||
(dos_qqmlcontext_setcontextproperty (ptr context) name (ptr qvalue)))
|
||||
|
||||
(define-class <QUrl> ()
|
||||
((ptr accessor: ptr)))
|
||||
(define-class <QUrl> (<QMLBase>))
|
||||
(define (new-QUrl url)
|
||||
(let ((qurl (make <QUrl> 'ptr (dos_qurl_create url 0))))
|
||||
qurl))
|
||||
|
@ -95,13 +199,13 @@
|
|||
(dos_qurl_to_string (ptr qurl)))
|
||||
(define-method (valid? (qurl <QUrl>))
|
||||
(dos_qurl_isValid (ptr qurl)))
|
||||
(define-method (delete (qurl <QUrl>))
|
||||
(define-method (delete-pointer (qurl <QUrl>))
|
||||
(dos_qurl_delete (ptr qurl)))
|
||||
|
||||
(define-class <QPixmap> ()
|
||||
((ptr accessor: ptr)))
|
||||
(define (new-QPixmap)
|
||||
(make <QPixmap> 'ptr (dos_qpixmap_create)))
|
||||
(define-class <QPixmap> (<QMLBase>))
|
||||
(define-method (initialize-instance (qpx <QPixmap>))
|
||||
(set! (slot-value qpx 'ptr) (dos_qpixmap_create))
|
||||
(call-next-method))
|
||||
(define (new-QPixmap width height)
|
||||
(make <QPixmap> 'ptr (dos_qpixmap_create_width_and_height width height)))
|
||||
(define-method (copy (qpix <QPixmap>))
|
||||
|
@ -116,19 +220,19 @@
|
|||
(dos_qpixmap_assign (ptr qpix) (ptr other)))
|
||||
(define-method (is-null? (qpix <QPixmap>))
|
||||
(dos_qpixmap_isNull (ptr qpix)))
|
||||
(define-method (delete (qpix <QPixmap>))
|
||||
(define-method (delete-pointer (qpix <QPixmap>))
|
||||
(dos_qpixmap_delete (ptr qpix)))
|
||||
|
||||
(define-class <QQuickImageProvider> ()
|
||||
((ptr accessor: ptr)))
|
||||
(define-class <QQuickImageProvider> (<QMLBase>))
|
||||
(define-method (new-QQuickImageProvider callback)
|
||||
(make <QQuickImageProvider> 'ptr (dos_qquickimageprovider_create callback)))
|
||||
(define-method (delete (qip <QQuickImageProvider>))
|
||||
(define-method (delete-pointer (qip <QQuickImageProvider>))
|
||||
(dos_qquickimageprovider_delete (ptr qip)))
|
||||
|
||||
(define-class <QQmlApplicationEngine> (<QObject>))
|
||||
(define (new-QQmlApplicationEngine)
|
||||
(make <QQmlApplicationEngine> 'ptr (dos_qqmlapplicationengine_create)))
|
||||
(define-method (initialize-instance (qae <QQmlApplicationEngine>))
|
||||
(set! (slot-value qae 'ptr) (dos_qqmlapplicationengine_create))
|
||||
(call-next-method))
|
||||
(define-method (load (appengine <QQmlApplicationEngine>) (filePath <string>))
|
||||
(dos_qqmlapplicationengine_load (ptr appengine) filePath))
|
||||
(define-method (load-url (appengine <QQmlApplicationEngine>) (qurl <QUrl>))
|
||||
|
@ -141,18 +245,13 @@
|
|||
(make <QQmlContext> 'ptr (dos_qqmlapplicationengine_context (ptr appengine))))
|
||||
(define-method (add-image-provider (appengine <QQmlApplicationEngine>) (provider-id <string>) (provider <QQuickImageProvider>))
|
||||
(dos_qqmlapplicationengine_addImageProvider (ptr appengine) provider-id (ptr provider)))
|
||||
(define-method (delete (appengine <QQmlApplicationEngine>))
|
||||
(define-method (delete-pointer (appengine <QQmlApplicationEngine>))
|
||||
(dos_qqmlapplicationengine_delete (ptr appengine)))
|
||||
|
||||
(define-class <QQuickViewResizeMode> (<Enum>))
|
||||
(define (qquick-view-resize-mode value)
|
||||
(case value
|
||||
((size-view-to-root-object:) (make <QQuickViewResizeMode> 'value 0))
|
||||
((size-root-object-to-view:) (make <QQuickViewResizeMode> 'value 1))))
|
||||
|
||||
(define-class <QQuickView> (<QObject>))
|
||||
(define (new-QQuickView)
|
||||
(make <QQuickView> 'ptr (dos_qquickview_create)))
|
||||
(define-method (initialize-instance (qqv <QQuickView>))
|
||||
(set! (slot-value qqv 'ptr) (dos_qquickview_create))
|
||||
(call-next-method))
|
||||
(define-method (show (qqv <QQuickView>))
|
||||
(dos_qquickview_show (ptr qqv)))
|
||||
(define-method (source (qqv <QQuickView>))
|
||||
|
@ -162,90 +261,55 @@
|
|||
(define-method (set-source (qqv <QQuickView>) (filename <string>))
|
||||
(dos_qquickview_set_source (ptr qqv) filename))
|
||||
(define-method (set-resize-mode (qqv <QQuickView>) (mode <QQuickViewResizeMode>))
|
||||
(dos_qquickview_set_resize_mode (ptr qqv) (value mode)))
|
||||
(dos_qquickview_set_resize_mode (ptr qqv) (val mode)))
|
||||
(define-method (root-context (qqv <QQuickView>))
|
||||
(make <QQmlContext> 'ptr (dos_qquickview_rootContext (ptr qqv))))
|
||||
(define-method (delete (qqv <QQuickView>))
|
||||
(define-method (delete-pointer (qqv <QQuickView>))
|
||||
(dos_qquickview_delete (ptr qqv)))
|
||||
|
||||
(define-class <QVariant> ()
|
||||
((ptr accessor: ptr)))
|
||||
(define-method (initialize-instance (qv <QVariant>))
|
||||
(call-next-method)
|
||||
(set! (ptr qv) (dos_qvariant_create)))
|
||||
(define-method (qvariant (value <integer>))
|
||||
(make <QVariant> 'ptr (dos_qvariant_create_int value)))
|
||||
(define-method (qvariant (value <boolean>))
|
||||
(make <QVariant> 'ptr (dos_qvariant_create_bool value)))
|
||||
(define-method (qvariant (value <string>))
|
||||
(make <QVariant> 'ptr (dos_qvariant_create_string value)))
|
||||
(define-method (qvariant (value <QObject>))
|
||||
(make <QVariant> 'ptr (dos_qvariant_create_qobject (ptr value))))
|
||||
(define-method (qvariant (value <flonum>))
|
||||
(make <QVariant> 'ptr (dos_qvariant_create_float value)))
|
||||
(define-method (set (qv <QVariant>) (value <integer>))
|
||||
(dos_qvariant_setInt (ptr qv) value))
|
||||
(define-method (set (qv <QVariant>) (value <boolean>))
|
||||
(dos_qvariant_setBool (ptr qv) value))
|
||||
(define-method (set (qv <QVariant>) (value <flonum>))
|
||||
(dos_qvariant_setFloat (ptr qv) value))
|
||||
(define-method (set (qv <QVariant>) (value <string>))
|
||||
(dos_qvariant_setString (ptr qv) value))
|
||||
(define-method (set (qv <QVariant>) (value <QObject>))
|
||||
(dos_qvariant_setQObject (ptr qv) (ptr value)))
|
||||
(define-method (to (qv <QVariant>) (target <keyword>))
|
||||
(case target
|
||||
((integer:) (dos_qvariant_toInt (ptr qv)))
|
||||
((boolean:) (dos_qvariant_toBool (ptr qv)))
|
||||
((string:) (dos_qvariant_toString (ptr qv)))
|
||||
((flonum:) (dos_qvariant_toFloat (ptr qv)))
|
||||
((qobject:) (dos_qvariant_toQObject (ptr qv)))))
|
||||
(define-method (is-null? (qv <QVariant>))
|
||||
(dos_qvariant_isnull (ptr qv)))
|
||||
(define-method (assign (qv <QVariant>) (other <QVariant>))
|
||||
(dos_qvariant_assign (ptr qv) (ptr other)))
|
||||
(define-method (copy (qv <QVariant>))
|
||||
(make <QVariant> 'ptr (dos_qvariant_create_qvariant (ptr qv))))
|
||||
(define-method (delete (qv <QVariant>))
|
||||
(dos_qvariant_delete (ptr qv)))
|
||||
|
||||
(define-class <QMetaObject> ()
|
||||
((ptr accessor: ptr)))
|
||||
(define (new-QMetaObject superclass, classname, signal-definitions, slot-definitions, property-definitions)
|
||||
(define-class <QMetaObject> (<QMLBase>))
|
||||
(define (new-QMetaObject superclass classname signal-definitions slot-definitions property-definitions)
|
||||
(make <QMetaObject> 'ptr (dos_qmetaobject_create (ptr superclass) classname signal-definitions
|
||||
slot-definitions property-definitions)))
|
||||
(define-method (invoke-method (qmo <QMetaObject>) (callback <procedure>) (data <pointer>) (connection-type <QtConnectionType>))
|
||||
(dos_qmetaobject_invoke_method (ptr qmo) callback data (value connection-type)))
|
||||
(define-method (delete (qmo <QMetaObject>))
|
||||
(dos_qmetaobject_invoke_method (ptr qmo) callback data (val connection-type)))
|
||||
(define-method (delete-pointer (qmo <QMetaObject>))
|
||||
(dos_qmetaobject_delete (ptr qmo)))
|
||||
|
||||
(define-class <QItemDataRole> (<Enum>))
|
||||
(define (qitem-data-role value)
|
||||
(case value
|
||||
((display:) (make <QItemDataRole> 'value 0))
|
||||
((decoration:) (make <QItemDataRole> 'value 1))
|
||||
((edit:) (make <QItemDataRole> 'value 2))
|
||||
((tool-tip:) (make <QItemDataRole> 'value 3))
|
||||
((status-tip:) (make <QItemDataRole> 'value 4))
|
||||
((whats-this:) (make <QItemDataRole> 'value 5))
|
||||
((font:) (make <QItemDataRole> 'value 6))
|
||||
((text-alignment:) (make <QItemDataRole> 'value 7))
|
||||
((background:) (make <QItemDataRole> 'value 8))
|
||||
((foreground:) (make <QItemDataRole> 'value 9))
|
||||
((check-state:) (make <QItemDataRole> 'value 10))
|
||||
((accessible-text:) (make <QItemDataRole> 'value 11))
|
||||
((accessible-description:) (make <QItemDataRole> 'value 12))
|
||||
((size-hint:) (make <QItemDataRole> 'value 13))
|
||||
((initial-sort-order:) (make <QItemDataRole> 'value 14))))
|
||||
(define-class <QModelIndex> (<QMLBase>))
|
||||
(define-method (initialize-instance (qmi <QModelIndex>))
|
||||
(set! (ptr qmi) (dos_qmodelindex_create))
|
||||
(call-next-method))
|
||||
(define-method (copy (qmi <QModelIndex>) (other <QModelIndex>))
|
||||
(make <QModelIndex> 'ptr (dos_qmodelindex_create_qmodelindex (ptr qmi) (ptr other))))
|
||||
(define-method (row (qmi <QModelIndex>))
|
||||
(dos_qmodelindex_row (ptr qmi)))
|
||||
(define-method (column (qmi <QModelIndex>))
|
||||
(dos_qmodelindex_column (ptr qmi)))
|
||||
(define-method (is-valid? (qmi <QModelIndex>))
|
||||
(dos_qmodelindex_isValid (ptr qmi)))
|
||||
(define-method (data (qmi <QModelIndex>) (role <QItemDataRole>))
|
||||
(dos_qmodelindex_data (ptr qmi) (val role)))
|
||||
(define-method (parent (qmi <QModelIndex>))
|
||||
(make <QModelIndex> 'ptr (dos_qmodelindex_parent (ptr qmi))))
|
||||
(define-method (child (qmi <QModelIndex>) (row <integer>) (column <integer>))
|
||||
(make <QModelIndex> 'ptr (dos_qmodelindex_child (ptr qmi) row column)))
|
||||
(define-method (sibling (qmi <QModelIndex>) (row <integer>) (column <integer>))
|
||||
(make <QModelIndex> 'ptr (dos_qmodelindex_sibling (ptr qmi) row column)))
|
||||
(define-method (assign (qmi <QModelIndex>) (other <QModelIndex>))
|
||||
(dos_qmodelindex_assign (ptr qmi) (ptr other)))
|
||||
(define-method (delete-pointer (qmi <QModelIndex>))
|
||||
(dos_qmodelindex_delete (ptr qmi)))
|
||||
|
||||
(define-class <QAbstractItemModel> (<QObject>))
|
||||
(define (new-QAbstractItemModel callback meta-object dcallback callbacks)
|
||||
(dos_qabstractitemmodel_create callback (ptr meta-object) dcallback (ptr callbacks)))
|
||||
(define-method (set-data (qaim <QAbstractItemModel>) (qmi <QModelIndex>) (qv <QVariant>) (role <QItemDataRole>))
|
||||
(dos_qabstractitemmodel_setData (ptr qaim) (ptr qmi) (ptr qv) (value role)))
|
||||
(dos_qabstractitemmodel_setData (ptr qaim) (ptr qmi) (ptr qv) (val role)))
|
||||
(define-method (flags (qaim <QAbstractItemModel>) (qmi <QModelIndex>))
|
||||
(dos_qabstractitemmodel_flags (ptr qaim) (ptr qmi)))
|
||||
(define-method (header-data))
|
||||
(define-method (header-data (qaim <QAbstractItemModel>) (section <integer>) (orientation <QtOrientation>) (role <integer>))
|
||||
(dos_qabstractitemmodel_headerData (ptr qaim) section (val orientation) role))
|
||||
|
||||
(define-class <QAbstractListModel> (<QObject>))
|
||||
(define (new-QAbstractListModel callback qalm dcallback callbacks)
|
||||
|
|
8
qml.egg
8
qml.egg
|
@ -3,7 +3,7 @@
|
|||
(synopsis "A Chicken wrapper for DOtherSide")
|
||||
(category ui)
|
||||
(license "LGPLv3")
|
||||
(dependencies coops coops-utils foreigners utf8)
|
||||
(dependencies coops coops-utils foreigners utf8 srfi-69)
|
||||
(foreign-dependencies Qt5Core
|
||||
Qt5Widgets
|
||||
Qt5Gui
|
||||
|
@ -57,7 +57,7 @@
|
|||
"-L" "-lQt5Network"
|
||||
"-L" "-lQt5Test"
|
||||
"-L" "-lQt5QuickTest"
|
||||
"-L" "-lOpenGL"))))
|
||||
;;(extension qml.core
|
||||
;; (component-dependencies qml.lowlevel))
|
||||
"-L" "-lOpenGL"))
|
||||
(extension qml.core
|
||||
(component-dependencies qml.lowlevel))))
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
;; -*- geiser-scheme: chicken -*-
|
||||
(module (qml lowlevel)
|
||||
*
|
||||
(import (scheme base))
|
||||
|
@ -109,17 +110,17 @@
|
|||
(define-foreign-type DosQAbstractItemModelCallbacks (struct "DosQAbstractItemModelCallbacks"))
|
||||
|
||||
(define-foreign-type DosQEventLoopProcessEventFlag (enum "DosQEventLoopProcessEventFlag"))
|
||||
(define DosQEventLoopProcessEventFlagProcessAllEvents (foreign-value "0x00" byte))
|
||||
(define DosQEventLoopProcessEventFlagExcludeUserInputEvents (foreign-value "0x01" byte))
|
||||
(define DosQEventLoopProcessEventFlagProcessExcludeSocketNotifiers (foreign-value "0x02" byte))
|
||||
(define DosQEventLoopProcessEventFlagProcessAllEventsWaitForMoreEvents (foreign-value "0x03" byte))
|
||||
(define DosQEventLoopProcessEventFlagProcessAllEvents #x00)
|
||||
(define DosQEventLoopProcessEventFlagExcludeUserInputEvents #x01)
|
||||
(define DosQEventLoopProcessEventFlagProcessExcludeSocketNotifiers #x02)
|
||||
(define DosQEventLoopProcessEventFlagProcessAllEventsWaitForMoreEvents #x03)
|
||||
|
||||
(define-foreign-type DosQtConnectionType (enum "DosQtConnectionType"))
|
||||
(define DosQtConnectionTypeAutoConnection 0)
|
||||
(define DosQtConnectionTypeDirectConnection 1)
|
||||
(define DosQtConnectionTypeQueuedConnection 2)
|
||||
(define DosQtConnectionTypeBlockingConnection 3)
|
||||
(define DosQtConnectionTypeUniqueConnection (foreign-value "0x80" byte))
|
||||
(define DosQtConnectionTypeUniqueConnection #x80)
|
||||
|
||||
;; Functions
|
||||
;; QCoreApplication
|
||||
|
|
Loading…
Reference in New Issue