]>
Commit | Line | Data |
---|---|---|
2f01fe57 | 1 | /* |
81bea17a | 2 | Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved. |
2f01fe57 AD |
3 | Available via Academic Free License >= 2.1 OR the modified BSD license. |
4 | see: http://dojotoolkit.org/license for details | |
5 | */ | |
6 | ||
7 | ||
a089699c AD |
8 | if(!dojo._hasResource["dojo.uacss"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. |
9 | dojo._hasResource["dojo.uacss"] = true; | |
2f01fe57 | 10 | dojo.provide("dojo.uacss"); |
a089699c | 11 | |
81bea17a | 12 | |
2f01fe57 | 13 | (function(){ |
a089699c AD |
14 | // summary: |
15 | // Applies pre-set CSS classes to the top-level HTML node, based on: | |
16 | // - browser (ex: dj_ie) | |
17 | // - browser version (ex: dj_ie6) | |
18 | // - box model (ex: dj_contentBox) | |
19 | // - text direction (ex: dijitRtl) | |
20 | // | |
21 | // In addition, browser, browser version, and box model are | |
22 | // combined with an RTL flag when browser text is RTL. ex: dj_ie-rtl. | |
23 | ||
24 | var d = dojo, | |
25 | html = d.doc.documentElement, | |
26 | ie = d.isIE, | |
27 | opera = d.isOpera, | |
28 | maj = Math.floor, | |
29 | ff = d.isFF, | |
30 | boxModel = d.boxModel.replace(/-/,''), | |
31 | ||
32 | classes = { | |
33 | dj_ie: ie, | |
34 | dj_ie6: maj(ie) == 6, | |
35 | dj_ie7: maj(ie) == 7, | |
36 | dj_ie8: maj(ie) == 8, | |
81bea17a | 37 | dj_ie9: maj(ie) == 9, |
a089699c AD |
38 | dj_quirks: d.isQuirks, |
39 | dj_iequirks: ie && d.isQuirks, | |
40 | ||
41 | // NOTE: Opera not supported by dijit | |
42 | dj_opera: opera, | |
43 | ||
44 | dj_khtml: d.isKhtml, | |
45 | ||
46 | dj_webkit: d.isWebKit, | |
47 | dj_safari: d.isSafari, | |
48 | dj_chrome: d.isChrome, | |
49 | ||
50 | dj_gecko: d.isMozilla, | |
51 | dj_ff3: maj(ff) == 3 | |
52 | }; // no dojo unsupported browsers | |
53 | ||
54 | classes["dj_" + boxModel] = true; | |
55 | ||
56 | // apply browser, browser version, and box model class names | |
57 | var classStr = ""; | |
58 | for(var clz in classes){ | |
59 | if(classes[clz]){ | |
60 | classStr += clz + " "; | |
61 | } | |
62 | } | |
63 | html.className = d.trim(html.className + " " + classStr); | |
64 | ||
65 | // If RTL mode, then add dj_rtl flag plus repeat existing classes with -rtl extension. | |
81bea17a | 66 | // We can't run the code below until the <body> tag has loaded (so we can check for dir=rtl). |
a089699c AD |
67 | // Unshift() is to run sniff code before the parser. |
68 | dojo._loaders.unshift(function(){ | |
69 | if(!dojo._isBodyLtr()){ | |
70 | var rtlClassStr = "dj_rtl dijitRtl " + classStr.replace(/ /g, "-rtl ") | |
71 | html.className = d.trim(html.className + " " + rtlClassStr); | |
72 | } | |
73 | }); | |
2f01fe57 | 74 | })(); |
a089699c | 75 | |
2f01fe57 | 76 | } |