2020-09-26 13:02:52 +00:00
|
|
|
(module (qml core)
|
|
|
|
*
|
|
|
|
(import (scheme base))
|
|
|
|
(import (chicken gc))
|
|
|
|
(import (chicken string))
|
|
|
|
(import (qml lowlevel))
|
|
|
|
(import coops coops-primitive-objects coops-extras)
|
|
|
|
|
|
|
|
;; Enums
|
|
|
|
(define-class <Enum> ()
|
|
|
|
((value accessor: value)))
|
|
|
|
|
|
|
|
(define-class <QEventLoopProcessEventFlag> (<Enum>))
|
|
|
|
(define (qevent-loop-process-event-flag value)
|
|
|
|
(case value
|
|
|
|
((process-all-events:)
|
|
|
|
(make <QEventLoopProcessEventFlag> 'value DosQEventLoopProcessEventFlagProcessAllEvents))
|
|
|
|
((exclude-user-input-events:)
|
|
|
|
(make <QEventLoopProcessEventFlag> 'value DosQEventLoopProcessEventFlagExcludeUserInputEvents))
|
|
|
|
((process-exclude-socket-notifiers:)
|
|
|
|
(make <QEventLoopProcessEventFlag> 'value DosQEventLoopProcessEventFlagProcessExcludeSocketNotifiers))
|
|
|
|
((process-all-events-wait-for-more-events:)
|
|
|
|
(make <QEventLoopProcessEventFlag> 'value DosQEventLoopProcessEventFlagProcessAllEventsWaitForMoreEvents))))
|
|
|
|
|
|
|
|
(define-class <QtConnectionType> (<Enum>))
|
|
|
|
(define (qt-connection-type value)
|
|
|
|
(case value
|
2020-09-27 18:15:20 +00:00
|
|
|
((auto:)
|
2020-09-26 13:02:52 +00:00
|
|
|
(make <QtConnectionType> 'value DosQtConnectionTypeAutoConnection))
|
2020-09-27 18:15:20 +00:00
|
|
|
((direct:)
|
2020-09-26 13:02:52 +00:00
|
|
|
(make <QtConnectionType> 'value DosQtConnectionTypeDirectConnection))
|
2020-09-27 18:15:20 +00:00
|
|
|
((queued:)
|
2020-09-26 13:02:52 +00:00
|
|
|
(make <QtConnectionType> 'value DosQtConnectionTypeQueuedConnection))
|
2020-09-27 18:15:20 +00:00
|
|
|
((blocking:)
|
2020-09-26 13:02:52 +00:00
|
|
|
(make <QtConnectionType> 'value DosQtConnectionTypeBlockingConnection))
|
2020-09-27 18:15:20 +00:00
|
|
|
((unique:)
|
2020-09-26 13:02:52 +00:00
|
|
|
(make <QtConnectionType> 'value DosQtConnectionTypeUniqueConnection))))
|
|
|
|
|
|
|
|
;; Helpers
|
|
|
|
(define (application-dir-path)
|
|
|
|
(dos_qcoreapplication_application_dir_path))
|
|
|
|
(define-method (process-events (flag <QEventLoopProcessEventFlag>))
|
|
|
|
(dos_qcoreapplication_process_events (value flag)))
|
|
|
|
(define-method (process-events-timed (flag <QEventLoopProcessEventFlag>) (timed <integer>))
|
|
|
|
(dos_qcoreapplication_process_events_timed (value flag) timed))
|
|
|
|
|
|
|
|
(define (gui-application-create)
|
|
|
|
(dos_qguiapplication_create))
|
|
|
|
(define (gui-application-exec)
|
|
|
|
(dos_qguiapplication_exec))
|
|
|
|
(define (gui-application-quit)
|
|
|
|
(dos_qguiapplication_quit))
|
|
|
|
(define (gui-application-delete)
|
|
|
|
(dos_qguiapplication_delete))
|
|
|
|
|
|
|
|
(define (qapplication-create)
|
|
|
|
(dos_qapplication_create))
|
|
|
|
(define (qapplication-exec)
|
|
|
|
(dos_qapplication_exec))
|
|
|
|
(define (qapplication-quit)
|
|
|
|
(dos_qapplication_quit))
|
|
|
|
(define (qapplication-delete)
|
|
|
|
(dos_qapplication_delete))
|
|
|
|
|
|
|
|
(define (qquickstyle-set-style style)
|
|
|
|
(dos_qquickstyle_set_style style))
|
|
|
|
(define (qquickstyle-set-fallback-style style)
|
|
|
|
(dos_qquickstyle_set_fallback_style style))
|
|
|
|
|
|
|
|
;; Objects
|
|
|
|
(define-class <QObject> ()
|
|
|
|
((ptr accessor: ptr)))
|
2020-09-27 18:15:20 +00:00
|
|
|
(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>))
|
|
|
|
(dos_qobject_delete (ptr qo)))
|
|
|
|
(define-method (delete-later (qo <QObject>))
|
|
|
|
(dos_qobject_deleteLater (ptr qo)))
|
2020-09-26 13:02:52 +00:00
|
|
|
|
|
|
|
(define-class <QVariant> ()
|
|
|
|
((ptr accessor: ptr)))
|
|
|
|
|
2020-09-27 18:15:20 +00:00
|
|
|
(define-class <QQmlContext> (<QObject>))
|
2020-09-26 13:02:52 +00:00
|
|
|
(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-class <QUrl> ()
|
|
|
|
((ptr accessor: ptr)))
|
|
|
|
(define (new-QUrl url)
|
|
|
|
(let ((qurl (make <QUrl> 'ptr (dos_qurl_create url 0))))
|
|
|
|
qurl))
|
|
|
|
(define-method (to-string (qurl <QUrl>))
|
|
|
|
(dos_qurl_to_string (ptr qurl)))
|
|
|
|
(define-method (valid? (qurl <QUrl>))
|
|
|
|
(dos_qurl_isValid (ptr qurl)))
|
|
|
|
(define-method (delete (qurl <QUrl>))
|
|
|
|
(dos_qurl_delete (ptr qurl)))
|
|
|
|
|
|
|
|
(define-class <QPixmap> ()
|
|
|
|
((ptr accessor: ptr)))
|
|
|
|
(define (new-QPixmap)
|
|
|
|
(make <QPixmap> 'ptr (dos_qpixmap_create)))
|
|
|
|
(define (new-QPixmap width height)
|
|
|
|
(make <QPixmap> 'ptr (dos_qpixmap_create_width_and_height width height)))
|
|
|
|
(define-method (copy (qpix <QPixmap>))
|
|
|
|
(make <QPixmap> 'ptr (dos_qpixmap_create_qpixmap (ptr qpix))))
|
|
|
|
(define-method (load (qpix <QPixmap>) (filepath <string>) (format <string>))
|
|
|
|
(dos_qpixmap_load (ptr qpix) filepath format))
|
|
|
|
(define-method (load-from-data (qpix <QPixmap>) (data <string>) (len <integer>))
|
|
|
|
(dos_qpixmap_loadFromData (ptr qpix) data len))
|
|
|
|
(define-method (fill (qpix <QPixmap>) (r <char>) (g <char>) (b <char>) (a <char>))
|
|
|
|
(dos_qpixmap_fill (ptr qpix) r g b a))
|
|
|
|
(define-method (assign (qpix <QPixmap>) (other <QPixmap>))
|
|
|
|
(dos_qpixmap_assign (ptr qpix) (ptr other)))
|
|
|
|
(define-method (is-null? (qpix <QPixmap>))
|
|
|
|
(dos_qpixmap_isNull (ptr qpix)))
|
|
|
|
(define-method (delete (qpix <QPixmap>))
|
|
|
|
(dos_qpixmap_delete (ptr qpix)))
|
|
|
|
|
|
|
|
(define-class <QQuickImageProvider> ()
|
|
|
|
((ptr accessor: ptr)))
|
|
|
|
(define-method (new-QQuickImageProvider callback)
|
|
|
|
(make <QQuickImageProvider> 'ptr (dos_qquickimageprovider_create callback)))
|
|
|
|
(define-method (delete (qip <QQuickImageProvider>))
|
|
|
|
(dos_qquickimageprovider_delete (ptr qip)))
|
|
|
|
|
2020-09-27 18:15:20 +00:00
|
|
|
(define-class <QQmlApplicationEngine> (<QObject>))
|
2020-09-26 13:02:52 +00:00
|
|
|
(define (new-QQmlApplicationEngine)
|
|
|
|
(make <QQmlApplicationEngine> 'ptr (dos_qqmlapplicationengine_create)))
|
|
|
|
(define-method (load (appengine <QQmlApplicationEngine>) (filePath <string>))
|
|
|
|
(dos_qqmlapplicationengine_load (ptr appengine) filePath))
|
|
|
|
(define-method (load-url (appengine <QQmlApplicationEngine>) (qurl <QUrl>))
|
|
|
|
(dos_qqmlapplicationengine_load_url (ptr appengine) (ptr qurl)))
|
|
|
|
(define-method (load-data (appengine <QQmlApplicationEngine>) (data <string>))
|
|
|
|
(dos_qqmlapplicationengine_load_data (ptr appengine) data))
|
|
|
|
(define-method (add-import-path (appengine <QQmlApplicationEngine>) (import-path <string>))
|
|
|
|
(dos_qqmlapplicationengine_add_import_path (ptr appengine) import-path))
|
|
|
|
(define-method (context (appengine <QQmlApplicationEngine>))
|
|
|
|
(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>))
|
|
|
|
(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))))
|
|
|
|
|
2020-09-27 18:15:20 +00:00
|
|
|
(define-class <QQuickView> (<QObject>))
|
2020-09-26 13:02:52 +00:00
|
|
|
(define (new-QQuickView)
|
|
|
|
(make <QQuickView> 'ptr (dos_qquickview_create)))
|
|
|
|
(define-method (show (qqv <QQuickView>))
|
|
|
|
(dos_qquickview_show (ptr qqv)))
|
|
|
|
(define-method (source (qqv <QQuickView>))
|
|
|
|
(dos_qquickview_source (ptr qqv)))
|
|
|
|
(define-method (set-source-url (qqv <QQuickView>) (qurl <QUrl>))
|
|
|
|
(dos_qquickview_set_source_url (ptr qqv) (ptr qurl)))
|
|
|
|
(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)))
|
|
|
|
(define-method (root-context (qqv <QQuickView>))
|
|
|
|
(make <QQmlContext> 'ptr (dos_qquickview_rootContext (ptr qqv))))
|
|
|
|
(define-method (delete (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>))
|
2020-09-27 18:15:20 +00:00
|
|
|
(dos_qvariant_delete (ptr qv)))
|
|
|
|
|
|
|
|
(define-class <QMetaObject> ()
|
|
|
|
((ptr accessor: ptr)))
|
|
|
|
(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_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 <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)))
|
|
|
|
(define-method (flags (qaim <QAbstractItemModel>) (qmi <QModelIndex>))
|
|
|
|
(dos_qabstractitemmodel_flags (ptr qaim) (ptr qmi)))
|
|
|
|
(define-method (header-data))
|
|
|
|
|
|
|
|
(define-class <QAbstractListModel> (<QObject>))
|
|
|
|
(define (new-QAbstractListModel callback qalm dcallback callbacks)
|
|
|
|
(dos_qabstractlistmodel_create callback (ptr qalm) dcallback (ptr callbacks)))
|
|
|
|
(define-method (index (qalm <QAbstractListModel>) (row <integer>) (column <integer>) (parent <QModelIndex>))
|
|
|
|
(dos_qabstractlistmodel_index (ptr qalm) row column (ptr parent)))
|
|
|
|
(define-method (parent (qalm <QAbstractListModel>) (child <QModelIndex>))
|
|
|
|
(dos_qabstractlistmodel_parent (ptr qalm) (ptr child)))
|
|
|
|
(define-method (column-count (qalm <QAbstractListModel>) (parent <QModelIndex>))
|
|
|
|
(dos_qabstractlistmodel_columnCount (ptr qalm) (ptr parent)))
|
|
|
|
|
|
|
|
(define-class <QAbstractTableModel> (<QAbstractItemModel>))
|
|
|
|
(define (new-QAbstractTableModel callback meta-object dcallback callbacks)
|
|
|
|
(dos_qabstracttablemodel_create callback (ptr meta-object) dcallback (ptr callbacks)))
|
|
|
|
(define-method (index (qatm <QAbstractTableModel>) (row <integer>) (column <integer>) (parent <QModelIndex>))
|
|
|
|
(dos_qabstracttablemodel_index (ptr qatm) row column (ptr parent)))
|
|
|
|
(define-method (parent (qatm <QAbstractTableModel>) (child <QModelIndex>))
|
|
|
|
(dos_qabstracttablemodel_parent (ptr qatm) (ptr child))))
|