1 module dqml.qquickview;
2 
3 import dqml.dothersideinterface;
4 import dqml.qqmlcontext;
5 import dqml.qurl;
6 import std.string;
7 
8 class QQuickView
9 {
10     this()
11     {
12         this.vptr = dos_qquickview_create();
13     }
14 
15     ~this()
16     {
17         dos_qquickview_delete(this.vptr);
18     }
19 
20     public void* voidPointer()
21     {
22         return this.vptr;
23     }
24 
25     public void show()
26     {
27         dos_qquickview_show(this.vptr);
28     }
29 
30     public QQmlContext rootContext()
31     {
32         void* contextData = dos_qquickview_rootContext(this.vptr);
33         return new QQmlContext(contextData);
34     }
35 
36     public string source()
37     {
38         char* array = dos_qquickview_source(this.vptr);
39         string result = fromStringz(array).dup;
40         dos_chararray_delete(array);
41         return result;
42     }
43 
44     public void setSource(string filename)
45     {
46         immutable(char)* filenameAsCString = filename.toStringz();
47         dos_qquickview_set_source(this.vptr, filenameAsCString);
48     }
49 
50     public void setSource(QUrl url)
51     {
52         dos_qquickview_set_source_url(this.vptr, url.voidPointer);
53     }
54 
55     enum ResizeMode : int
56     {
57         SizeViewToRootObject = 0,
58         SizeRootObjectToView
59     }
60 
61     void setResizeMode(ResizeMode resizeMode)
62     {
63         dos_qquickview_set_resize_mode(this.vptr, resizeMode);
64     }
65 
66     private void* vptr;
67 }