@qooxdoo/framework
Version:
The JS Framework for Coders
148 lines (125 loc) • 4.48 kB
JavaScript
/* ************************************************************************
qooxdoo - the new era of web development
http://qooxdoo.org
Copyright:
2004-2011 1&1 Internet AG, Germany, http://www.1und1.de
License:
MIT: https://opensource.org/licenses/MIT
See the LICENSE file in the project's top-level directory for details.
Authors:
* Martin Wittemann (wittemann)
************************************************************************ */
/**
* Responsible for checking all relevant CSS transform properties.
*
* Specs:
* http://www.w3.org/TR/css3-2d-transforms/
* http://www.w3.org/TR/css3-3d-transforms/
*
* @internal
*/
qx.Bootstrap.define("qx.bom.client.CssTransform",
{
statics :
{
/**
* Main check method which returns an object if CSS animations are
* supported. This object contains all necessary keys to work with CSS
* animations.
* <ul>
* <li><code>name</code> The name of the css transform style</li>
* <li><code>style</code> The name of the css transform-style style</li>
* <li><code>origin</code> The name of the transform-origin style</li>
* <li><code>3d</code> Whether 3d transforms are supported</li>
* <li><code>perspective</code> The name of the perspective style</li>
* <li><code>perspective-origin</code> The name of the perspective-origin style</li>
* <li><code>backface-visibility</code> The name of the backface-visibility style</li>
* </ul>
*
* @internal
* @return {Object|null} The described object or null, if animations are
* not supported.
*/
getSupport : function() {
var name = qx.bom.client.CssTransform.getName();
if (name != null) {
return {
"name" : name,
"style" : qx.bom.client.CssTransform.getStyle(),
"origin" : qx.bom.client.CssTransform.getOrigin(),
"3d" : qx.bom.client.CssTransform.get3D(),
"perspective" : qx.bom.client.CssTransform.getPerspective(),
"perspective-origin" : qx.bom.client.CssTransform.getPerspectiveOrigin(),
"backface-visibility" : qx.bom.client.CssTransform.getBackFaceVisibility()
};
}
return null;
},
/**
* Checks for the style name used to set the transform origin.
* @internal
* @return {String|null} The name of the style or null, if the style is
* not supported.
*/
getStyle : function() {
return qx.bom.Style.getPropertyName("transformStyle");
},
/**
* Checks for the style name used to set the transform origin.
* @internal
* @return {String|null} The name of the style or null, if the style is
* not supported.
*/
getPerspective : function() {
return qx.bom.Style.getPropertyName("perspective");
},
/**
* Checks for the style name used to set the perspective origin.
* @internal
* @return {String|null} The name of the style or null, if the style is
* not supported.
*/
getPerspectiveOrigin : function() {
return qx.bom.Style.getPropertyName("perspectiveOrigin");
},
/**
* Checks for the style name used to set the backface visibility.
* @internal
* @return {String|null} The name of the style or null, if the style is
* not supported.
*/
getBackFaceVisibility : function() {
return qx.bom.Style.getPropertyName("backfaceVisibility");
},
/**
* Checks for the style name used to set the transform origin.
* @internal
* @return {String|null} The name of the style or null, if the style is
* not supported.
*/
getOrigin : function() {
return qx.bom.Style.getPropertyName("transformOrigin");
},
/**
* Checks for the style name used for transforms.
* @internal
* @return {String|null} The name of the style or null, if the style is
* not supported.
*/
getName : function() {
return qx.bom.Style.getPropertyName("transform");
},
/**
* Checks if 3D transforms are supported.
* @internal
* @return {Boolean} <code>true</code>, if 3D transformations are supported
*/
get3D : function() {
return qx.bom.client.CssTransform.getPerspective() != null;
}
},
defer : function(statics) {
qx.core.Environment.add("css.transform", statics.getSupport);
qx.core.Environment.add("css.transform.3d", statics.get3D);
}
});