mirror of
https://github.com/status-im/nimqml.git
synced 2025-02-24 04:18:22 +00:00
Started working on QMetaObject bindings
This commit is contained in:
parent
62c3b32cbb
commit
6f112c9fab
@ -11,16 +11,18 @@ template debugMsg(typeName: string, procName: string) =
|
|||||||
message &= procName
|
message &= procName
|
||||||
debugMsg(message)
|
debugMsg(message)
|
||||||
|
|
||||||
include private.nimqmltypes
|
include private/qmetaobject.nim
|
||||||
var qobjectRegistry = initTable[ptr QObjectObj, bool]()
|
|
||||||
include private/qvariant.nim
|
#include private.nimqmltypes
|
||||||
include private/qqmlapplicationengine.nim
|
#var qobjectRegistry = initTable[ptr QObjectObj, bool]()
|
||||||
include private/qqmlcontext.nim
|
#include private/qvariant.nim
|
||||||
include private/qapplication.nim
|
#include private/qqmlapplicationengine.nim
|
||||||
include private/qguiapplication.nim
|
#include private/qqmlcontext.nim
|
||||||
include private/qobject.nim
|
#include private/qapplication.nim
|
||||||
include private/qquickview.nim
|
#include private/qguiapplication.nim
|
||||||
include private/qmodelindex.nim
|
#include private/qobject.nim
|
||||||
include private/qhashintbytearray.nim
|
#include private/qquickview.nim
|
||||||
include private/qabstractlistmodel.nim
|
#include private/qmodelindex.nim
|
||||||
include private.nimqmlmacros
|
#include private/qhashintbytearray.nim
|
||||||
|
#include private/qabstractlistmodel.nim
|
||||||
|
#include private.nimqmlmacros
|
||||||
|
41
src/private/dotherside.nim
Normal file
41
src/private/dotherside.nim
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
type
|
||||||
|
CArray* {.unchecked.}[T] = array[0..0, T]
|
||||||
|
|
||||||
|
DosSignalDefinition* = object
|
||||||
|
name*: cstring
|
||||||
|
parametersCount*: cint
|
||||||
|
parametersMetaTypes*: pointer
|
||||||
|
|
||||||
|
DosSignalDefinitions* = object
|
||||||
|
count*: cint
|
||||||
|
definitions*: pointer
|
||||||
|
|
||||||
|
DosSlotDefinition* = object
|
||||||
|
name*: cstring
|
||||||
|
returnMetaType*: cint
|
||||||
|
paremetersCount*: cint
|
||||||
|
parametersMetaTypes*: pointer
|
||||||
|
|
||||||
|
DosSlotDefinitions* = object
|
||||||
|
count*: cint
|
||||||
|
definitions*: pointer
|
||||||
|
|
||||||
|
DosPropertyDefinition* = object
|
||||||
|
name*: cstring
|
||||||
|
propertyMetaType*: cint
|
||||||
|
readSlot*: cstring
|
||||||
|
writeSlot*: cstring
|
||||||
|
notifySignal*: cstring
|
||||||
|
|
||||||
|
DosPropertyDefinitions* = object
|
||||||
|
count*: cint
|
||||||
|
definitions*: pointer
|
||||||
|
|
||||||
|
proc dos_qmetaobject_create*(vptr: var pointer,
|
||||||
|
superclassMetaObject: pointer,
|
||||||
|
className: cstring,
|
||||||
|
signalDefinitions: DosSignalDefinitions,
|
||||||
|
slotDefinitions: DosSlotDefinitions,
|
||||||
|
propertyDefinitions: DosPropertyDefinitions) {.cdecl, importc.}
|
||||||
|
|
||||||
|
proc dos_qmetaobject_delete*(vptr: var pointer) {.cdecl, importc.}
|
40
src/private/qmetaobject.nim
Normal file
40
src/private/qmetaobject.nim
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
import dotherside
|
||||||
|
|
||||||
|
type
|
||||||
|
QMetaType = int
|
||||||
|
|
||||||
|
SignalDefinition* = object
|
||||||
|
name: string
|
||||||
|
parametersTypes: seq[QMetaType]
|
||||||
|
|
||||||
|
SlotDefinition* = object
|
||||||
|
name: string
|
||||||
|
returnType: QMetaType
|
||||||
|
parametersTypes: seq[QMetaType]
|
||||||
|
|
||||||
|
PropertyDefinition* = object
|
||||||
|
name: string
|
||||||
|
propertyType: QMetaType
|
||||||
|
readSlot: string
|
||||||
|
writeSlot: string
|
||||||
|
notifySignal: string
|
||||||
|
|
||||||
|
QMetaObject = ref object of RootObj
|
||||||
|
vptr: pointer
|
||||||
|
signalDefinitions: seq[SignalDefinition]
|
||||||
|
slotDefinitions: seq[SlotDefinition]
|
||||||
|
propertyDefinitions: seq[PropertyDefinition]
|
||||||
|
|
||||||
|
|
||||||
|
proc convert(signals: seq[SignalDefinition]): seq[DosSignalDefinition] =
|
||||||
|
discard()
|
||||||
|
|
||||||
|
|
||||||
|
proc newQMetaObject(superClass: QMetaObject, className: string,
|
||||||
|
signalDefinitions: seq[SignalDefinition],
|
||||||
|
slotDefinitions: seq[SlotDefinition],
|
||||||
|
propertyDefinitions: seq[PropertyDefinition]): QMetaObject =
|
||||||
|
new(result)
|
||||||
|
result.signalDefinitions = signalDefinitions
|
||||||
|
result.slotDefinitions = slotDefinitions
|
||||||
|
result.propertyDefinitions = propertyDefinitions
|
Loading…
x
Reference in New Issue
Block a user