123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- goog.provide('goog.ui.ImagelessButtonRenderer');
- goog.require('goog.dom.TagName');
- goog.require('goog.dom.classlist');
- goog.require('goog.ui.Button');
- goog.require('goog.ui.Component');
- goog.require('goog.ui.CustomButtonRenderer');
- goog.require('goog.ui.INLINE_BLOCK_CLASSNAME');
- goog.require('goog.ui.registry');
- goog.ui.ImagelessButtonRenderer = function() {
- goog.ui.CustomButtonRenderer.call(this);
- };
- goog.inherits(goog.ui.ImagelessButtonRenderer, goog.ui.CustomButtonRenderer);
- goog.addSingletonGetter(goog.ui.ImagelessButtonRenderer);
- goog.ui.ImagelessButtonRenderer.CSS_CLASS =
- goog.getCssName('goog-imageless-button');
- goog.ui.ImagelessButtonRenderer.prototype.createDom;
- goog.ui.ImagelessButtonRenderer.prototype.getContentElement = function(
- element) {
- return (
- element && element.firstChild && element.firstChild.firstChild &&
- element.firstChild.firstChild.firstChild.lastChild);
- };
- goog.ui.ImagelessButtonRenderer.prototype.createButton = function(
- content, dom) {
- var baseClass = this.getCssClass();
- var inlineBlock = goog.ui.INLINE_BLOCK_CLASSNAME + ' ';
- return dom.createDom(
- goog.dom.TagName.DIV,
- inlineBlock + goog.getCssName(baseClass, 'outer-box'),
- dom.createDom(
- goog.dom.TagName.DIV,
- inlineBlock + goog.getCssName(baseClass, 'inner-box'),
- dom.createDom(
- goog.dom.TagName.DIV, goog.getCssName(baseClass, 'pos'),
- dom.createDom(
- goog.dom.TagName.DIV,
- goog.getCssName(baseClass, 'top-shadow'), '\u00A0'),
- dom.createDom(
- goog.dom.TagName.DIV, goog.getCssName(baseClass, 'content'),
- content))));
- };
- goog.ui.ImagelessButtonRenderer.prototype.hasBoxStructure = function(
- button, element) {
- var outer = button.getDomHelper().getFirstElementChild(element);
- var outerClassName = goog.getCssName(this.getCssClass(), 'outer-box');
- if (outer && goog.dom.classlist.contains(outer, outerClassName)) {
- var inner = button.getDomHelper().getFirstElementChild(outer);
- var innerClassName = goog.getCssName(this.getCssClass(), 'inner-box');
- if (inner && goog.dom.classlist.contains(inner, innerClassName)) {
- var pos = button.getDomHelper().getFirstElementChild(inner);
- var posClassName = goog.getCssName(this.getCssClass(), 'pos');
- if (pos && goog.dom.classlist.contains(pos, posClassName)) {
- var shadow = button.getDomHelper().getFirstElementChild(pos);
- var shadowClassName = goog.getCssName(this.getCssClass(), 'top-shadow');
- if (shadow && goog.dom.classlist.contains(shadow, shadowClassName)) {
- var content = button.getDomHelper().getNextElementSibling(shadow);
- var contentClassName = goog.getCssName(this.getCssClass(), 'content');
- if (content &&
- goog.dom.classlist.contains(content, contentClassName)) {
-
- return true;
- }
- }
- }
- }
- }
- return false;
- };
- goog.ui.ImagelessButtonRenderer.prototype.getCssClass = function() {
- return goog.ui.ImagelessButtonRenderer.CSS_CLASS;
- };
- goog.ui.registry.setDecoratorByClassName(
- goog.ui.ImagelessButtonRenderer.CSS_CLASS, function() {
- return new goog.ui.Button(
- null, goog.ui.ImagelessButtonRenderer.getInstance());
- });
- goog.ui.registry.setDecoratorByClassName(
- goog.getCssName('goog-imageless-toggle-button'), function() {
- var button = new goog.ui.Button(
- null, goog.ui.ImagelessButtonRenderer.getInstance());
- button.setSupportedState(goog.ui.Component.State.CHECKED, true);
- return button;
- });
|