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; }