Lots of bindings

This commit is contained in:
Daniel Ziltener 2020-09-04 01:57:54 +02:00
parent bf8d8b10e4
commit 010fa91972
3 changed files with 385 additions and 2 deletions

@ -1 +1 @@
Subproject commit 984f30e0a9967d3c6cc60a01b51a2bdff4553fc2
Subproject commit f357c6edd9b07c769af2a54e1f85d4908b0a08d4

View File

@ -6,4 +6,5 @@
(foreign-dependencies dotherside)
(components (extension qml
(c-include DOtherSide "DOtherSide/DOtherSide.h")
(c-include DOtherSideTypes "DOtherSide/DOtherSideTypes.h")
(csc-options "-Idotherside/lib/include"))))

384
qml.scm
View File

@ -5,6 +5,388 @@
(import foreigners)
(export dos_qcoreapplication_application_dir_path)
(begin
(foreign-declare "#include <DOtherSide/DOtherSideTypes.h>")
(foreign-declare "#include <DOtherSide/DOtherSide.h>")
(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());"))))
"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);"))
))