1 module uim.css.containers.mediaqueries;
2 
3 @safe:
4 import uim.css;
5 
6 class DCSSMediaQueries {
7   this() {
8     _queries["default"] = CSSMediaQuery;
9   }
10 
11   protected DCSSMediaQuery[string] _queries;
12 
13   auto query(string queryName = null) {
14     if (queryName) return _queries.get(queryName, null);
15     return _queries.get("default", null); }
16   unittest {
17     version(uim_css) {
18       /// TODO
19     }}
20 
21   O query(this O)(string queryName, string condition) {
22     if (queryName !in _queries) _queries[queryName] = CSSMediaQuery(condition);
23     return cast(O)this; }
24   unittest {
25     version(uim_css) {
26       /// TODO
27     }}
28 
29   auto rule(this O)(string name) {
30     return _queries["default"].rule(name, properties); }
31   unittest {
32     version(uim_css) {
33       /// TODO
34     }}
35 
36   O rule(this O)(string name, string properties) {
37     _queries["default"].rule(name, properties); 
38     return cast(O)this; }
39   unittest {
40     version(uim_css) {
41       /// TODO
42     }}
43 
44   O rule(this O)(string queryName, string name, string properties) {
45     if (queryName in _queries) _queries[query].rule(name, properties); 
46     return cast(O)this; }
47   unittest {
48     version(uim_css) {
49       /// TODO
50     }}
51 
52  O removeRule(this O)(string name) {
53     _queries["default"].removeRule(name); 
54     return cast(O)this; }
55   unittest {
56     version(uim_css) {
57       /// TODO
58     }}
59 
60   O removeRule(this O)(string queryName, string name) {
61     if (queryName in _queries) _queries[queryName].removeRule(name); 
62     return cast(O)this; }
63   unittest {
64     version(uim_css) {
65       /// TODO
66     }}
67 
68   override string toString() {
69     string result;
70 
71     foreach(query; _queries.byValue) if (query) result ~= query.toString; 
72 
73     return result;
74   } 
75   unittest {
76     version(uim_css) {
77       /// TODO
78     }}
79 
80   string toString(string[] queryNames) {
81     string result;
82     foreach(query; _queries.byValue) if (query) result ~= query.toString;     
83     return result;
84   } 
85   unittest {
86     version(uim_css) {
87       /// TODO
88     }}
89 }
90 auto CSSMediaQueries() { return new DCSSMediaQueries; }