1 module dqml.qabstractlistmodel;
2 
3 import dqml.dothersideinterface;
4 import dqml.global;
5 import dqml.qabstractitemmodel;
6 import dqml.qmetaobject;
7 import dqml.qmodelindex;
8 import core.memory;
9 
10 abstract class QAbstractListModel : QAbstractItemModel
11 {
12     shared static this()
13     {
14         m_staticMetaObject = new QMetaObject(dos_qabstractlistmodel_qmetaobject());
15     }
16     
17     public static QMetaObject staticMetaObject() 
18     {
19         return m_staticMetaObject;
20     }
21 
22     public override QMetaObject metaObject() 
23     {
24         return m_staticMetaObject;
25     }
26     
27     public override int columnCount(QModelIndex parent)
28     {
29         return dos_qabstractlistmodel_columnCount(voidPointer(), parent.voidPointer());
30     }
31     
32     public override QModelIndex index(int row, int column, QModelIndex parent)
33     {
34         auto result = dos_qabstractlistmodel_index(voidPointer(), row, column, parent.voidPointer());
35         return new QModelIndex(result, Ownership.Take);
36     }
37     
38     public override QModelIndex parent(QModelIndex child)
39     {
40         auto result = dos_qabstractlistmodel_parent(voidPointer(), child.voidPointer());
41         return new QModelIndex(result, Ownership.Take);
42     }
43     
44     protected override void* createVoidPointer()
45     {
46         DosQAbstractItemModelCallbacks callbacks;
47         callbacks.rowCount = &rowCountCallback;
48 	callbacks.columnCount = &columnCountCallback;
49 	callbacks.data = &dataCallback;
50 	callbacks.setData = &setDataCallback;
51 	callbacks.headerData = &headerDataCallback;
52 	callbacks.roleNames = &roleNamesCallback;
53 	callbacks.flags = &flagsCallback;
54 	callbacks.index = &indexCallback;
55 	callbacks.parent = &parentCallback;
56 	callbacks.hasChildren = &hasChildrenCallback;
57 	callbacks.canFetchMore = &canFetchMoreCallback;
58 	callbacks.fetchMore = &fetchMoreCallback;
59 
60         return this.vptr = dos_qabstractlistmodel_create(cast(void*)this,
61                                                          metaObject().voidPointer(),
62                                                          &staticSlotCallback,
63 							 callbacks);
64     }
65     
66     private static QMetaObject m_staticMetaObject;
67 }