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 }