1 module dqml.dothersideinterface; 2 3 extern(C) 4 { 5 // QCoreApplication 6 char* dos_qcoreapplication_application_dir_path(); 7 8 // QApplication 9 void dos_qapplication_create(); 10 void dos_qapplication_exec(); 11 void dos_qapplication_delete(); 12 void dos_qapplication_quit(); 13 14 // QGuiApplication 15 void dos_qguiapplication_create(); 16 void dos_qguiapplication_exec(); 17 void dos_qguiapplication_delete(); 18 void dos_qguiapplication_quit(); 19 20 // QQmlApplicationEngine 21 void* dos_qqmlapplicationengine_create(); 22 void dos_qqmlapplicationengine_load(void*, immutable (char)* filename); 23 void dos_qqmlapplicationengine_load_url(void*, void*); 24 void dos_qqmlapplicationengine_load_data(void*, immutable (char)* data); 25 void dos_qqmlapplicationengine_add_import_path(void* vptr, immutable (char)* path); 26 void* dos_qqmlapplicationengine_context(void*); 27 void dos_qqmlapplicationengine_delete(void*); 28 29 // QQuickView 30 void* dos_qquickview_create(); 31 void dos_qquickview_show(void*); 32 char* dos_qquickview_source(void*); 33 void dos_qquickview_set_source(void*, immutable (char)* filename); 34 void dos_qquickview_set_source_url(void*, void*); 35 void dos_qquickview_set_resize_mode(void*, int); 36 void* dos_qquickview_rootContext(void*); 37 void dos_qquickview_delete(void*); 38 39 // CharArray 40 void dos_chararray_delete(char*); 41 42 // QQmlContext 43 char* dos_qqmlcontext_baseUrl(void*); 44 void dos_qqmlcontext_setcontextproperty(void*, immutable (char)*, void*); 45 46 // QVariant 47 void* dos_qvariant_create(); 48 void* dos_qvariant_create_int(int); 49 void* dos_qvariant_create_bool(bool); 50 void* dos_qvariant_create_string(immutable(char)*); 51 void* dos_qvariant_create_qobject(void*); 52 void* dos_qvariant_create_float(float); 53 void* dos_qvariant_create_double(double); 54 void* dos_qvariant_create_qvariant(void*); 55 int dos_qvariant_toInt(void*); 56 bool dos_qvariant_toBool(void*); 57 char* dos_qvariant_toString(void*); 58 float dos_qvariant_toFloat(void*); 59 double dos_qvariant_toDouble(void*); 60 void* dos_qvariant_toQObject(void*); 61 void dos_qvariant_setInt(void*, int); 62 void dos_qvariant_setBool(void*, bool); 63 void dos_qvariant_setString(void*, immutable(char)*); 64 void dos_qvariant_setFloat(void*, float); 65 void dos_qvariant_setDouble(void*, double); 66 void dos_qvariant_setQObject(void*, void*); 67 bool dos_qvariant_isnull(void*); 68 void dos_qvariant_delete(void*); 69 void dos_qvariant_assign(void*, void*); 70 71 // QObject 72 void* dos_qobject_qmetaobject(); 73 void* dos_qobject_create(void*, void*, 74 void function (void*, void*, int , void**)); 75 void dos_qobject_signal_emit(void*, immutable(char)* name, 76 int parametersCount, 77 void** parameters); 78 bool dos_qobject_signal_connect(void*, 79 immutable(char)*, 80 void*, 81 immutable(char)*, 82 int); 83 bool dos_qobject_signal_disconnect(void*, 84 immutable(char)*, 85 void*, 86 immutable(char)*); 87 char* dos_qobject_objectName(void*); 88 void dos_qobject_delete(void*); 89 90 // QModelIndex 91 void* dos_qmodelindex_create(); 92 void* dos_qmodelindex_create_qmodelindex(void* other); 93 void dos_qmodelindex_delete(void* index); 94 int dos_qmodelindex_row(void*); 95 int dos_qmodelindex_column(void*); 96 bool dos_qmodelindex_isValid(void* index); 97 void* dos_qmodelindex_data(void* index, int role); 98 void* dos_qmodelindex_parent(void* index); 99 void* dos_qmodelindex_child(void* index, int r, int c); 100 void* dos_qmodelindex_sibling(void* index, int r, int c); 101 void dos_qmodelindex_assign(void* leftSide, void* rightSide); 102 void* dos_qmodelindex_internalPointer(void* index); 103 104 // QHashIntByteArray 105 void* dos_qhash_int_qbytearray_create(); 106 void dos_qhash_int_qbytearray_delete(void*); 107 void dos_qhash_int_qbytearray_insert(void*, int, immutable(char)*); 108 char* dos_qhash_int_qbytearray_value(void*, int); 109 110 111 struct DosQAbstractItemModelCallbacks 112 { 113 void function (void*, void*, ref int) rowCount; 114 void function (void*, void*, ref int) columnCount; 115 void function (void*, void*, int, void*) data; 116 void function (void*, void*, void*, int, ref bool) setData; 117 void function (void*, void*) roleNames; 118 void function (void*, void*, ref int) flags; 119 void function (void*, int, int, int, void*) headerData; 120 void function (void*, int, int, void*, void*) index; 121 void function (void*, void*, void*) parent; 122 void function (void*, void*, ref bool) hasChildren; 123 void function (void*, void*, ref bool) canFetchMore; 124 void function (void*, void*) fetchMore; 125 } 126 127 // QAbstractItemModel 128 void* dos_qabstractitemmodel_qmetaobject(); 129 void* dos_qabstractitemmodel_create(void*, void*, 130 void function (void*, void*, int, void**), 131 const ref DosQAbstractItemModelCallbacks callbacks); 132 void dos_qabstractitemmodel_beginInsertRows(void* vptr, void* parent, int first, int last); 133 void dos_qabstractitemmodel_endInsertRows(void* vptr); 134 void dos_qabstractitemmodel_beginRemoveRows(void* vptr, void* parent, int first, int last); 135 void dos_qabstractitemmodel_endRemoveRows(void* vptr); 136 void dos_qabstractitemmodel_beginInsertColumns(void* vptr, void* parent, int first, int last); 137 void dos_qabstractitemmodel_endInsertColumns(void* vptr); 138 void dos_qabstractitemmodel_beginRemoveColumns(void* vptr, void* parent, int first, int last); 139 void dos_qabstractitemmodel_endRemoveColumns(void* vptr); 140 void dos_qabstractitemmodel_beginResetModel(void* vptr); 141 void dos_qabstractitemmodel_endResetModel(void* vptr); 142 void dos_qabstractitemmodel_dataChanged(void* vptr, void* topLeft, void* bottomRight, int* rolesPtr, int rolesLength); 143 void* dos_qabstractitemmodel_createIndex(void* vptr, int row, int column, void* pointer); 144 bool dos_qabstractitemmodel_setData(void* vptr, void* modelIndex, void* valueVariant, int role); 145 void* dos_qabstractitemmodel_roleNames(void* vptr); 146 int dos_qabstractitemmodel_flags(void *vptr, void* modelIndex); 147 void* dos_qabstractitemmodel_headerData(void *vptr, int section, int orientation, int role); 148 bool dos_qabstractitemmodel_hasChildren(void *vptr, void* parent); 149 bool dos_qabstractitemmodel_hasIndex(void *vptr, int row, int column, void* parent); 150 bool dos_qabstractitemmodel_canFetchMore(void *vptr, void* parent); 151 void dos_qabstractitemmodel_fetchMore(void *vptr, void* parent); 152 153 // QAbstractListModel 154 void* dos_qabstractlistmodel_qmetaobject(); 155 void* dos_qabstractlistmodel_create(void*, void*, 156 void function (void*, void*, int, void**), 157 const ref DosQAbstractItemModelCallbacks callbacks); 158 159 void* dos_qabstractlistmodel_index(void *vptr, int row, int column, void* parentIndex); 160 void* dos_qabstractlistmodel_parent(void *vptr, void* childIndex); 161 int dos_qabstractlistmodel_columnCount(void *vptr, void* parentIndex); 162 163 // QAbstractTableModel 164 void* dos_qabstracttablemodel_qmetaobject(); 165 void* dos_qabstracttablemodel_create(void*, void*, 166 void function (void*, void*, int, void**), 167 const ref DosQAbstractItemModelCallbacks callbacks); 168 169 void* dos_qabstracttablemodel_index(void *vptr, int row, int column, void* parentIndex); 170 void* dos_qabstracttablemodel_parent(void *vptr, void* childIndex); 171 172 // QResource 173 void dos_qresource_register(immutable(char)* filename); 174 175 // QUrl 176 void* dos_qurl_create(immutable(char)*, int); 177 void dos_qurl_delete(void*); 178 char* dos_qurl_to_string(void* vptr); 179 180 // QMetaObjectFactory 181 struct DosParameterDefinition 182 { 183 immutable(char)* name; 184 int metaType; 185 } 186 187 struct DosSignalDefinition 188 { 189 immutable(char)* name; 190 int parametersCount; 191 DosParameterDefinition* parameters; 192 } 193 194 struct DosSignalDefinitions 195 { 196 int count; 197 DosSignalDefinition* definitions; 198 } 199 200 struct DosSlotDefinition 201 { 202 immutable(char)* name; 203 int returnType; 204 int parametersCount; 205 DosParameterDefinition* parameters; 206 } 207 208 struct DosSlotDefinitions 209 { 210 int count; 211 DosSlotDefinition* definitions; 212 } 213 214 struct DosPropertyDefinition 215 { 216 immutable(char)* name; 217 int type; 218 immutable(char)* readSlot; 219 immutable(char)* writeSlot; 220 immutable(char)* notifySignal; 221 } 222 223 struct DosPropertyDefinitions 224 { 225 int count; 226 DosPropertyDefinition* definitions; 227 } 228 229 void* dos_qmetaobject_create(void* superclass, 230 immutable(char)* className, 231 const ref DosSignalDefinitions signalDefinitions, 232 const ref DosSlotDefinitions slotDefinitions, 233 const ref DosPropertyDefinitions propertyDefinitions); 234 void dos_qmetaobject_delete(void*); 235 236 237 struct DosQmlRegisterType 238 { 239 int major; 240 int minor; 241 immutable(char)* uri; 242 immutable(char)* qml; 243 void* staticMetaObject; 244 void function(int, void*, ref void*, ref void*) createFunction; 245 void function(int, void*) deleteFunction; 246 } 247 248 int dos_qdeclarative_qmlregistertype(const ref DosQmlRegisterType args); 249 int dos_qdeclarative_qmlregistersingletontype(const ref DosQmlRegisterType args); 250 }