(import (r7rs)) (define-library (qml) (import (scheme base)) (import (chicken foreign)) (import foreigners) (export dos_qcoreapplication_application_dir_path) (begin (foreign-declare "#include ") (foreign-declare "#include ") (define-foreign-type DosQVariant "DosQVariant") (define-foreign-type DosQModelIndex "DosQModelIndex") (define-foreign-type DosQAbstractItemModel "DosQAbstractItemModel") (define-foreign-type DosQAbstractTableModel "DosQAbstractTableModel") (define-foreign-type DosQQmlApplicationEngine "DosQQmlApplicationEngine") (define-foreign-type DosQQuickView "DosQQuickView") (define-foreign-type DosQQmlContext "DosQQmlContext") (define-foreign-type DosQHashIntQByteArray "DosQHashIntQByteArray") (define-foreign-type DosQUrl "DosQUrl") (define-foreign-type DosQMetaObject "DosQMetaObject") (define-foreign-type DosQObject "DosQObject") (define-foreign-type DosQQuickImageProvider "DosQQuickImageProvider") (define-foreign-type DosPixmap "DosPixmap") (define-foreign-type DosQPointer "DosQPointer") (define-foreign-type RequestPixmapCallback (function void (c-string (c-pointer int) ; width (c-pointer int) ; height int ; requestedWidth int ; requestedHeight (c-pointer DosPixmap)))) (define-foreign-type DObjectCallback (function void ((c-pointer DosQObject) (c-pointer DosQVariant) int pointer-vector))) (define-foreign-type RowCountCallback (function void ((c-pointer DosQAbstractItemModel) (c-pointer DosQModelIndex) (c-pointer int)))) (define-foreign-type ColumnCountCallback (function void ((c-pointer DosQAbstractItemModel) (c-pointer DosQModelIndex) (c-pointer int)))) (define-foreign-type DataCallback (function void ((c-pointer DosQAbstractItemModel) (c-pointer DosQModelIndex) int (c-pointer DosQVariant)))) (define-foreign-type SetDataCallback (function void ((c-pointer DosQAbstractItemModel) ;; Is that correct? (c-pointer DosQModelIndex) (c-pointer DosQVariant) int (c-pointer bool)))) (define-foreign-type RoleNamesCallback (function void ((c-pointer DosQAbstractItemModel) (c-pointer DosQHashIntQByteArray)))) (define-foreign-type FlagsCallback (function void ((c-pointer DosQAbstractItemModel) (c-pointer DosQModelIndex) (c-pointer int)))) (define-foreign-type HeaderDataCallback (function void ((c-pointer DosQAbstractItemModel) int ; section int ; orientation int ; role (c-pointer DosQVariant)))) (define-foreign-type IndexCallback (function void ((c-pointer DosQAbstractItemModel) int ; row int ; column (c-pointer DosQModelIndex) ; parent (c-pointer DosQModelIndex)))) ; result (define-foreign-type ParentCallback (function void ((c-pointer QAbstractItemModel) (c-pointer DosQModelIndex) (c-pointer DosQModelIndex)))) (define-foreign-type HasChildrenCallback (function void ((c-pointer QAbstractItemModel) (c-pointer DosQModelIndex) (c-pointer bool)))) (define-foreign-type CanFetchMoreCallback (function void ((c-pointer QAbstractItemModel) (c-pointer DosQModelIndex) (c-pointer bool)))) (define-foreign-type FetchMoreCallback (function void ((c-pointer QAbstractItemModel) (c-pointer DosQModelIndex)))) (define-foreign-type CreateDObject (function void (int (c-pointer DosQObject) pointer-vector pointer-vector))) (define-foreign-type DeleteDObject (function void (int (c-pointer DosQObject)))) (define-foreign-type DosQVariantArray (struct "DosQVariantArray")) (define-foreign-type QmlRegisterType (struct "QmlRegisterType")) (define-foreign-type ParameterDefinition (struct "ParameterDefinition")) (define-foreign-type SignalDefinition (struct "SignalDefinition")) (define-foreign-type SignalDefinitions (struct "SignalDefinitions")) (define-foreign-type SlotDefinition (struct "SlotDefinition")) (define-foreign-type SlotDefinitions (struct "SlotDefinitions")) (define-foreign-type PropertyDefinition (struct "PropertyDefinition")) (define-foreign-type PropertyDefinitions (struct "PropertyDefinitions")) (define-foreign-type DosQAbstractItemModelCallbacks (struct "DosQAbstractItemModelCallbacks")) (define-foreign-type DosQEventLoopProcessEventFlag (enum "DosQEventLoopProcessEventFlag")) (define-foreign-type DosQtConnectionType (enum "DosQtConnectionType")) ;; Functions ;; QCoreApplication (define dos_qcoreapplication_application_dir_path (foreign-lambda* c-string () "C_return(dos_qcoreapplication_application_dir_path());")) (define dos_qcoreapplication_process_events (foreign-lambda* void ((DosQEventLoopProcessEventFlag flags)) "dos_qcoreapplication_process_events(flags);")) (define dos_qcoreapplication_process_events_timed (foreign-lambda* void ((DosQEventLoopProcessEventFlag flags) (int ms)) "dos_qcoreapplication_process_events_timed(flags, ms);")) ;; QGuiApplication (define dos_qguiapplication_create (foreign-lambda* void () "dos_qguiapplication_create();")) (define dos_qguiapplication_exec (foreign-lambda* void () "dos_qguiapplication_exec();")) (define dos_qguiapplication_quit (foreign-lambda* void () "dos_qguiapplication_quit();")) (define dos_qguiapplication_delete (foreign-lambda* void () "dos_qguiapplication_delete();")) ;; QApplication (define dos_qapplication_create (foreign-lambda* void () "dos_qapplication_create();")) (define dos_qapplication_exec (foreign-lambda* void () "dos_qapplication_exec();")) (define dos_qapplication_quit (foreign-lambda* void () "dos_qapplication_quit();")) (define dos_qapplication_delete (foreign-lambda* void () "dos_qapplication_delete();")) ;; QQmlApplicationEngine (define dos_qqmlapplicationengine_create (foreign-lambda* (c-pointer DosQQmlApplicationEngine) () "C_return(dos_qqmlapplicationengine_create());")) (define dos_qqmlapplicationengine_load (foreign-lambda* void (((c-pointer DosQQmlApplicationEngine) vptr) (c-string filename)) "dos_qqmlapplicationengine_load(vptr, filename);")) (define dos_qqmlapplicationengine_load_url (foreign-lambda* void (((c-pointer DosQQmlApplicationEngine) vptr) ((c-pointer DosQUrl) url)) "dos_qqmlapplicationengine_load_url(vptr, url);")) (define dos_qqmlapplicationengine_load_data (foreign-lambda* void (((c-pointer DosQQmlApplicationEngine) vptr) (c-string data)) "dos_qqmlapplicationengine_load_data(vptr, data);")) (define dos_qqmlapplicationengine_add_import_path (foreign-lambda* void (((c-pointer DosQQmlApplicationEngine) vptr) (c-string path)) "dos_qqmlapplicationengine_add_import_path(vptr, path);")) (define dos_qqmlapplicationengine_context (foreign-lambda* (c-pointer DosQQmlContext) (((c-pointer DosQQmlApplicationEngine) vptr)) "C_return(dos_qqmlapplicationengine_context(vptr));")) (define dos_qqmlapplicationengine_addImageProvider (foreign-lambda* void (((c-pointer DosQQmlApplicationEngine) vptr) (c-string name) ((c-pointer DosQQuickImageProvider) vptr_i)) "dos_qqmlapplicationengine_addImageProvider(vptr, name, vptr_i);")) (define dos_qqmlapplicationengine_delete (foreign-lambda* void (((c-pointer DosQQmlApplicationEngine) vptr)) "dos_qqmlapplicationengine_delete(vptr);")) ;; QQuickImageProvider (define dos_qquickimageprovider_create (foreign-lambda* (c-pointer DosQQuickImageProvider) ((RequestPixmapCallback callback)) "C_return(dos_qquickimageprovider_create((RequestPixmapCallback) callback));")) (define dos_qquickimageprovider_delete (foreign-lambda* void (((c-pointer DosQQuickImageProvider) vptr)) "dos_qquickimageprovider_delete(vptr);")) ;; QPixmap (define dos_qpixmap_create (foreign-lambda* (c-pointer DosPixmap) () "C_return(dos_qpixmap_create());")) (define dos_qpixmap_create_qpixmap (foreign-lambda* (c-pointer DosPixmap) (((c-pointer DosPixmap) other)) "C_return(dos_qpixmap_create_qpixmap(other));")) (define dos_qpixmap_create_width_and_height (foreign-lambda* (c-pointer DosPixmap) ((int width) (int height)) "C_return(dos_qpixmap_create_width_and_height(width, height));")) (define dos_qpixmap_delete (foreign-lambda* void (((c-pointer DosPixmap) vptr)) "dos_qpixmap_delete(vptr);")) (define dos_qpixmap_load (foreign-lambda* void (((c-pointer DosPixmap) vptr) (c-string filepath) (c-string format)) "dos_qpixmap_load(vptr, filepath, format);")) (define dos_qpixmap_loadFromData (foreign-lambda* void (((c-pointer DosPixmap) vptr) (unsigned-c-string data) (unsigned-int len)) "dos_qpixmap_loadFromData(vptr, data, len);")) (define dos_qpixmap_fill (foreign-lambda* void (((c-pointer DosPixmap) vptr) (unsigned-char r) (unsigned-char g) (unsigned-char b) (unsigned-char a)) "dos_qpixmap_fill(vptr, r, g, b, a);")) (define dos_qpixmap_assign (foreign-lambda* void (((c-pointer DosPixmap) vptr) ((c-pointer DosPixmap) other)) "dos_qpixmap_assign(vptr, other);")) (define dos_qpixmap_isNull (foreign-lambda* bool (((c-pointer DosPixmap) vptr)) "C_return(dos_qpixmap_isNull(vptr));")) ;; QQuickStyle (define dos_qquickstyle_set_style (foreign-lambda* void ((c-string style)) "dos_qquickstyle_set_style(style);")) (define dos_qquickstyle_set_fallback_style (foreign-lambda* void ((c-string style)) "dos_qquickstyle_set_fallback_style(style);")) ;; QQuickView (define dos_qquickview_create (foreign-lambda* (c-pointer DosQQuickView) () "C_return(dos_qquickview_create());")) (define dos_qquickview_show (foreign-lambda* void (((c-pointer DosQQuickView) vptr)) "dos_qquickview_show(vptr);")) (define dos_qquickview_source (foreign-lambda* c-string (((c-pointer DosQQuickView) vptr)) "dos_qquickview_source(vptr);")) (define dos_qquickview_set_source_url (foreign-lambda* void (((c-pointer DosQQuickView) vptr) ((c-pointer DosQUrl) url)) "dos_qquickview_set_source_url(vptr, url);")) (define dos_qquickview_set_source (foreign-lambda* void (((c-pointer DosQQuickView) vptr) (c-string filename)) "dos_qquickview_set_source(vptr, filename);")) (define dos_qquickview_set_resize_mode (foreign-lambda* void (((c-pointer DosQQuickView) vptr) (int resizeMode)) "dos_qquickview_set_resize_mode(vptr, resizeMode);")) (define dos_qquickview_delete (foreign-lambda* void (((c-pointer DosQQuickView) vptr)) "dos_qquickview_delete(vptr);")) (define dos_qquickview_rootContext (foreign-lambda* (c-pointer DosQQmlContext) (((c-pointer DosQQuickView) vptr)) "C_return(dos_qquickview_rootContext(vptr));")) ;; QQmlContext (define dos_qqmlcontext_baseUrl (foreign-lambda* c-string (((c-pointer DosQQmlContext) vptr)) "C_return(dos_qqmlcontext_baseUrl(vptr));")) (define dos_qqmlcontext_setcontextproperty (foreign-lambda* void (((c-pointer DosQQmlContext) vptr) (c-string name) ((c-pointer DosQVariant) value)) "dos_qqmlcontext_setcontextproperty(vptr, name, value);")) ;; String (define dos_chararray_delete (foreign-lambda* void ((c-string ptr)) "dos_chararray_delete(ptr);")) ;; QVariant (define dos_qvariantarray_delete (foreign-lambda* void (((c-pointer DosQVariantArray) ptr)) "dos_qvariantarray_delete(ptr);")) (define dos_qvariant_create (foreign-lambda* (c-pointer DosQVariant) () "C_return(dos_qvariant_create());")) (define dos_qvariant_create_int (foreign-lambda* (c-pointer DosQVariant) ((int value)) "C_return(dos_qvariant_create_int(value));")) (define dos_qvariant_create_bool (foreign-lambda* (c-pointer DosQVariant) ((bool value)) "C_return(dos_qvariant_create_bool(value));")) (define dos_qvariant_create_string (foreign-lambda* (c-pointer DosQVariant) ((c-string value)) "C_return(dos_qvariant_create_string(value));")) (define dos_qvariant_create_qobject (foreign-lambda* (c-pointer DosQVariant) (((c-pointer DosQObject) value)) "C_return(dos_qvariant_create_qobject(value));")) (define dos_qvariant_create_qvariant (foreign-lambda* (c-pointer DosQVariant) (((c-pointer DosQVariant) value)) "C_return(dos_qvariant_create_qvariant(value));")) (define dos_qvariant_create_float (foreign-lambda* (c-pointer DosQVariant) ((float value)) "C_return(dos_qvariant_create_float(value));")) (define dos_qvariant_create_double (foreign-lambda* (c-pointer DosQVariant) ((double value)) "C_return(dos_qvariant_create_double(value));")) (define dos_qvariant_create_array (foreign-lambda* (c-pointer DosQVariant) ((int size) (pointer-vector array)) "C_return(dos_qvariant_create_array(size, (DosQVariant**) array));")) (define dos_qvariant_setInt (foreign-lambda* void (((c-pointer DosQVariant) vptr) (int value)) "dos_qvariant_setInt(vptr, value);")) (define dos_qvariant_setBool (foreign-lambda* void (((c-pointer DosQVariant) vptr) (bool value)) "dos_qvariant_setBool(vptr, value);")) (define dos_qvariant_setFloat (foreign-lambda* void (((c-pointer DosQVariant) vptr) (float value)) "dos_qvariant_setFloat(vptr, value);")) (define dos_qvariant_setDouble (foreign-lambda* void (((c-pointer DosQVariant) vptr) (double value)) "dos_qvariant_setDouble(vptr, value);")) (define dos_qvariant_setString (foreign-lambda* void (((c-pointer DosQVariant) vptr) (c-string value)) "dos_qvariant_setString(vptr, value);")) (define dos_qvariant_setQObject (foreign-lambda* void (((c-pointer DosQVariant) vptr) ((c-pointer DosQObject) value)) "dos_qvariant_setQObject(vptr, value);")) (define dos_qvariant_setArray (foreign-lambda* void (((c-pointer DosQVariant) vptr) (int size) (pointer-vector array)) "dos_qvariant_setArray(vptr, size, array);")) (define dos_qvariant_isnull (foreign-lambda* bool (((c-pointer DosQVariant) vptr)) "C_return(dos_qvariant_isnull(vptr));")) (define dos_qvariant_delete (foreign-lambda* void (((c-pointer DosQVariant) vptr)) "dos_qvariant_delete(vptr);")) (define dos_qvariant_assign (foreign-lambda* void (((c-pointer DosQVariant) vptr) ((c-pointer DosQVariant) other)) "dos_qvariant_assign(vptr, other);")) (define dos_qvariant_toInt (foreign-lambda* int (((c-pointer DosQVariant) vptr)) "C_return(dos_qvariant_toInt(vptr));")) (define dos_qvariant_toBool (foreign-lambda* bool (((c-pointer DosQVariant) vptr)) "C_return(dos_qvariant_toBool(vptr));")) (define dos_qvariant_toString (foreign-lambda* c-string (((c-pointer DosQVariant) vptr)) "C_return(dos_qvariant_toString(vptr));")) (define dos_qvariant_toFloat (foreign-lambda* float (((c-pointer DosQVariant) vptr)) "C_return(dos_qvariant_toFloat(vptr));")) (define dos_qvariant_toDouble (foreign-lambda* double (((c-pointer DosQVariant) vptr)) "C_return(dos_qvariant_toDouble(vptr));")) (define dos_qvariant_toArray (foreign-lambda* (c-pointer DosQVariantArray) (((c-pointer DosQVariant) vptr)) "C_return(dos_qvariant_toArray(vptr));")) (define dos_qvariant_toQObject (foreign-lambda* (c-pointer DosQObject) (((c-pointer DosQVariant) vptr)) "C_return(dos_qvariant_toQObject(vptr));")) ;; QMetaObject ;; This is broken... (define dos_qmetaobject_create (foreign-lambda* (c-pointer DosQMetaObject) (((c-pointer DosQMetaObject) superClassMetaObject) (c-string className) ((c-pointer SignalDefinitions) signalDefinitions) ((c-pointer SlotDefinitions) slotDefinitions) ((c-pointer PropertyDefinitions) propertyDefinitions)) "C_return(dos_qmetaobject_create(superClassMetaObject, className, signalDefinitions, slotDefinitions, propertyDefinitions));")) (define dos_qmetaobject_delete (foreign-lambda* void (((c-pointer DosQMetaObject) vptr)) "dos_qmetaobject_delete(vptr);")) ))