UNPKG

accessibility-developer-tools

Version:

This is a library of accessibility-related testing and utility code.

219 lines (205 loc) 8.02 kB
<!DOCTYPE html> <html> <!-- Copyright 2010 The Closure Library Authors. All Rights Reserved. Use of this source code is governed by the Apache License, Version 2.0. See the COPYING file for details. --> <head> <title>goog.ui.ColorMenuButton</title> <script src="../base.js"></script> <script> goog.require('goog.array'); goog.require('goog.color'); goog.require('goog.debug.DivConsole'); goog.require('goog.debug.LogManager'); goog.require('goog.events'); goog.require('goog.log'); goog.require('goog.object'); goog.require('goog.ui.ColorMenuButton'); goog.require('goog.ui.ColorMenuButtonRenderer'); goog.require('goog.ui.Component.EventType'); goog.require('goog.ui.CustomColorPalette'); goog.require('goog.ui.Menu'); goog.require('goog.ui.MenuItem'); goog.require('goog.ui.Separator'); goog.require('goog.ui.Toolbar'); goog.require('goog.ui.ToolbarColorMenuButton'); goog.require('goog.ui.ToolbarColorMenuButtonRenderer'); goog.require('goog.ui.decorate'); </script> <link rel="stylesheet" href="css/demo.css"> <link rel="stylesheet" href="../css/menu.css"> <link rel="stylesheet" href="../css/menuitem.css"> <link rel="stylesheet" href="../css/menuseparator.css"> <link rel="stylesheet" href="../css/menubutton.css"> <link rel="stylesheet" href="../css/custombutton.css"> <link rel="stylesheet" href="../css/palette.css"> <link rel="stylesheet" href="../css/colorpalette.css"> <link rel="stylesheet" href="../css/colormenubutton.css"> <link rel="stylesheet" href="../css/toolbar.css"> <style> /* Text color. */ .goog-text-color { width: 15px; height: 13px; background: url(../images/toolbar_icons.gif) no-repeat -48px; } /* Background color. */ .goog-bg-color { width: 15px; height: 13px; background: url(../images/toolbar_icons.gif) no-repeat -64px; } </style> </head> <body> <h2>goog.ui.ColorMenuButton Demo</h2> <table border="0" cellpadding="0" cellspacing="4" width="100%"> <tbody> <tr valign="top"> <td width="67%"> <fieldset> <legend><strong>goog.ui.ColorMenuButton</strong> demo:</legend> <div id="cmb1">This button was created programmatically:&nbsp;</div> <br> <div> This button decorates a <strong>DIV</strong>:&nbsp; <div id="cmb2" class="goog-color-menu-button" title="Decorated tooltip">Color</div> </div> <br> <div id="cmb3">This button has a custom color menu:&nbsp;</div> </fieldset> <br> <br> <fieldset> <legend> <strong>goog.ui.ToolbarColorMenuButtonRenderer</strong> demo: </legend> <div id="tcmb1"> This toolbar button was created programmatically:&nbsp; </div> <br> <div> This toolbar button decorates a <strong>DIV</strong>:&nbsp; <div id="tcmb2" class="goog-toolbar-color-menu-button" title="Decorated tooltip">Color</div> </div> <br> <div> This is what these would look like in an actual toolbar, with icons instead of text captions: <br> <br> <div id="tb" class="goog-toolbar"> <div id="textColor" class="goog-toolbar-color-menu-button" title="Text color"> <div class="goog-text-color"></div> </div> <div id="bgColor" class="goog-toolbar-color-menu-button" title="Background color"> <div class="goog-bg-color"></div> </div> </div> </div> <br> <div dir="rtl"> BiDi is all the rage these days <br> <br> <div id="tbRtl" class="goog-toolbar"> <div id="textColorRtl" class="goog-toolbar-color-menu-button" title="Text color"> <div class="goog-text-color"></div> </div> <div id="bgColorRtl" class="goog-toolbar-color-menu-button" title="Background color"> <div class="goog-bg-color"></div> </div> </div> </div> </fieldset> <br> <br> </td> <td width="33%"> <!-- Event log. --> <fieldset class="goog-debug-panel"> <legend>Event Log</legend> <div id="log"></div> </fieldset> </td> </tr> </tbody> </table> <br> <div id="perf"></div> <script> var timer = goog.now(); // Set up a logger. goog.debug.LogManager.getRoot().setLevel(goog.log.Level.ALL); var logger = goog.log.getLogger('demo'); var logConsole = new goog.debug.DivConsole(goog.dom.getElement('log')); logConsole.setCapturing(true); var EVENTS = goog.object.getValues(goog.ui.Component.EventType); goog.log.fine(logger, 'Listening for: ' + EVENTS.join(', ') + '.'); function logEvent(e) { var component = e.target; var caption = (typeof component.getCaption == 'function' && component.getCaption()) || component.getId(); goog.log.info(logger, '"' + caption + '" dispatched: ' + e.type); } // Create the first ColorMenuButton programmatically. var cmb1 = new goog.ui.ColorMenuButton('Color'); cmb1.setTooltip('Click to select color'); cmb1.setSelectedColor('#FF0000'); cmb1.render(goog.dom.getElement('cmb1')); goog.events.listen(cmb1, EVENTS, logEvent); // Decorate the second ColorMenuButton. var cmb2 = goog.ui.decorate(goog.dom.getElement('cmb2')); cmb2.setSelectedColor('#0000FF'); goog.events.listen(cmb2, EVENTS, logEvent); // Create a custom palette and add it to a menu. var customColorPalette = new goog.ui.CustomColorPalette( ['#FE1', '#ACD', '#119']); customColorPalette.setSize(8); var customColorMenu = new goog.ui.Menu(); customColorMenu.addItem(new goog.ui.MenuItem( 'None', goog.ui.ColorMenuButton.NO_COLOR)); customColorMenu.addItem(new goog.ui.Separator()); customColorMenu.addItem(customColorPalette); // Create a ColorMenuButton with a custom menu. var cmb3 = new goog.ui.ColorMenuButton('Custom', customColorMenu); cmb3.setTooltip('Click to select a custom color'); // Currently, the "add custom color" dialog created by CustomColorPalette // blurs the button unless we set it to non-focusable. cmb3.setSupportedState(goog.ui.Component.State.FOCUSED, false); cmb3.render(goog.dom.getElement('cmb3')); goog.events.listen(cmb3, EVENTS, logEvent); // Create the first toolbar-style ColorMenuButton programmatically. var tcmb1 = new goog.ui.ColorMenuButton('Color', goog.ui.ColorMenuButton.newColorMenu(), goog.ui.ToolbarColorMenuButtonRenderer.getInstance()); tcmb1.render(goog.dom.getElement('tcmb1')); tcmb1.setTooltip('Click to select color'); tcmb1.setSelectedColor('#FF00FF'); goog.events.listen(tcmb1, EVENTS, logEvent); // Decorate the second toolbar-style ColorMenuButton. var tcmb2 = goog.ui.decorate(goog.dom.getElement('tcmb2')); tcmb2.setSelectedColor('#FFFF00'); goog.events.listen(tcmb2, EVENTS, logEvent); // Decorate the sample toolbar. var tb = new goog.ui.Toolbar(); tb.decorate(goog.dom.getElement('tb')); goog.events.listen(tb, EVENTS, logEvent); // Decorate the BiDi toolbar. var tbRtl = new goog.ui.Toolbar(); tbRtl.decorate(goog.dom.getElement('tbRtl')); goog.events.listen(tbRtl, EVENTS, logEvent); // Perf and clean up goog.dom.setTextContent(goog.dom.getElement('perf'), (goog.now() - timer) + 'ms'); </script> </body> </html>