123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- goog.provide('goog.ui.MenuButtonRenderer');
- goog.require('goog.dom');
- goog.require('goog.dom.TagName');
- goog.require('goog.style');
- goog.require('goog.ui.CustomButtonRenderer');
- goog.require('goog.ui.INLINE_BLOCK_CLASSNAME');
- goog.require('goog.ui.Menu');
- goog.require('goog.ui.MenuRenderer');
- goog.ui.MenuButtonRenderer = function() {
- goog.ui.CustomButtonRenderer.call(this);
- };
- goog.inherits(goog.ui.MenuButtonRenderer, goog.ui.CustomButtonRenderer);
- goog.addSingletonGetter(goog.ui.MenuButtonRenderer);
- goog.ui.MenuButtonRenderer.CSS_CLASS = goog.getCssName('goog-menu-button');
- goog.ui.MenuButtonRenderer.prototype.getContentElement = function(element) {
- return goog.ui.MenuButtonRenderer.superClass_.getContentElement.call(
- this,
- (element && element.firstChild));
- };
- goog.ui.MenuButtonRenderer.prototype.decorate = function(control, element) {
- var button = (control);
-
- var menuElem = goog.dom.getElementsByTagNameAndClass(
- '*', goog.ui.MenuRenderer.CSS_CLASS, element)[0];
- if (menuElem) {
-
-
- goog.style.setElementShown(menuElem, false);
- goog.dom.appendChild(goog.dom.getOwnerDocument(menuElem).body, menuElem);
-
- var menu = new goog.ui.Menu();
- menu.decorate(menuElem);
- button.setMenu(menu);
- }
-
- return goog.ui.MenuButtonRenderer.superClass_.decorate.call(
- this, button, element);
- };
- goog.ui.MenuButtonRenderer.prototype.createButton = function(content, dom) {
- return goog.ui.MenuButtonRenderer.superClass_.createButton.call(
- this, [this.createCaption(content, dom), this.createDropdown(dom)], dom);
- };
- goog.ui.MenuButtonRenderer.prototype.createCaption = function(content, dom) {
- return goog.ui.MenuButtonRenderer.wrapCaption(
- content, this.getCssClass(), dom);
- };
- goog.ui.MenuButtonRenderer.wrapCaption = function(content, cssClass, dom) {
- return dom.createDom(
- goog.dom.TagName.DIV, goog.ui.INLINE_BLOCK_CLASSNAME + ' ' +
- goog.getCssName(cssClass, 'caption'),
- content);
- };
- goog.ui.MenuButtonRenderer.prototype.createDropdown = function(dom) {
-
- return dom.createDom(
- goog.dom.TagName.DIV, goog.ui.INLINE_BLOCK_CLASSNAME + ' ' +
- goog.getCssName(this.getCssClass(), 'dropdown'),
- '\u00A0');
- };
- goog.ui.MenuButtonRenderer.prototype.getCssClass = function() {
- return goog.ui.MenuButtonRenderer.CSS_CLASS;
- };
|