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
|
||||
debugMsg(message)
|
||||
|
||||
include private.nimqmltypes
|
||||
var qobjectRegistry = initTable[ptr QObjectObj, bool]()
|
||||
include private/qvariant.nim
|
||||
include private/qqmlapplicationengine.nim
|
||||
include private/qqmlcontext.nim
|
||||
include private/qapplication.nim
|
||||
include private/qguiapplication.nim
|
||||
include private/qobject.nim
|
||||
include private/qquickview.nim
|
||||
include private/qmodelindex.nim
|
||||
include private/qhashintbytearray.nim
|
||||
include private/qabstractlistmodel.nim
|
||||
include private.nimqmlmacros
|
||||
include private/qmetaobject.nim
|
||||
|
||||
#include private.nimqmltypes
|
||||
#var qobjectRegistry = initTable[ptr QObjectObj, bool]()
|
||||
#include private/qvariant.nim
|
||||
#include private/qqmlapplicationengine.nim
|
||||
#include private/qqmlcontext.nim
|
||||
#include private/qapplication.nim
|
||||
#include private/qguiapplication.nim
|
||||
#include private/qobject.nim
|
||||
#include private/qquickview.nim
|
||||
#include private/qmodelindex.nim
|
||||
#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