704 lines
23 KiB
HTML
704 lines
23 KiB
HTML
<!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.Toolbar</title>
|
|
<script src="../base.js"></script>
|
|
<script>
|
|
goog.require('goog.array');
|
|
goog.require('goog.debug.DivConsole');
|
|
goog.require('goog.debug.LogManager');
|
|
goog.require('goog.dom');
|
|
goog.require('goog.events');
|
|
goog.require('goog.events.EventType');
|
|
goog.require('goog.log');
|
|
goog.require('goog.object');
|
|
goog.require('goog.style');
|
|
goog.require('goog.ui.Button');
|
|
goog.require('goog.ui.ButtonSide');
|
|
goog.require('goog.ui.Component.EventType');
|
|
goog.require('goog.ui.Component.State');
|
|
goog.require('goog.ui.Menu');
|
|
goog.require('goog.ui.MenuItem');
|
|
goog.require('goog.ui.Option');
|
|
goog.require('goog.ui.SelectionModel');
|
|
goog.require('goog.ui.Separator');
|
|
goog.require('goog.ui.Toolbar');
|
|
goog.require('goog.ui.ToolbarButton');
|
|
goog.require('goog.ui.ToolbarMenuButton');
|
|
goog.require('goog.ui.ToolbarRenderer');
|
|
goog.require('goog.ui.ToolbarSelect');
|
|
goog.require('goog.ui.ToolbarSeparator');
|
|
goog.require('goog.ui.ToolbarToggleButton');
|
|
</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/toolbar.css">
|
|
<style>
|
|
/*
|
|
* Sample toolbar styles.
|
|
*/
|
|
|
|
/* Base class for all icon elements. */
|
|
.icon {
|
|
height: 16px;
|
|
width: 16px;
|
|
background-image: url(../images/toolbar_icons.gif);
|
|
background-repeat: no-repeat;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
/* Font select. */
|
|
.goog-edit-font .goog-toolbar-menu-button-caption {
|
|
color: #246;
|
|
width: 15ex;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Font select options. */
|
|
.goog-edit-font-normal {
|
|
font-family: Arial, sans-serif;
|
|
}
|
|
.goog-edit-font-times {
|
|
font-family: Times, serif;
|
|
}
|
|
.goog-edit-font-courier {
|
|
font-family: "Courier New", Courier, monospace;
|
|
}
|
|
.goog-edit-font-georgia {
|
|
font-family: Georgia, serif;
|
|
}
|
|
.goog-edit-font-trebuchet {
|
|
font-family: "Trebuchet MS", sans-serif;
|
|
}
|
|
.goog-edit-font-verdana {
|
|
font-family: Verdana, sans-serif;
|
|
}
|
|
|
|
/* Font size. */
|
|
.goog-edit-font-size .goog-toolbar-menu-button-caption {
|
|
color: #246;
|
|
width: 5ex;
|
|
}
|
|
|
|
/* Bold. */
|
|
.goog-edit-bold {
|
|
background-position: 0;
|
|
}
|
|
|
|
/* Italic. */
|
|
.goog-edit-italic {
|
|
background-position: -16px;
|
|
}
|
|
|
|
/* Underline. */
|
|
.goog-edit-underline {
|
|
background-position: -32px;
|
|
}
|
|
|
|
/* Color. */
|
|
.goog-edit-color {
|
|
background-position: -48px;
|
|
}
|
|
|
|
/* Background color. */
|
|
.goog-edit-background {
|
|
background-position: -64px;
|
|
}
|
|
|
|
/* Menu buttons. */
|
|
.goog-edit-style,
|
|
.goog-edit-insert,
|
|
.goog-edit-link,
|
|
.goog-edit-spellcheck {
|
|
font-weight: bold;
|
|
color: #246;
|
|
}
|
|
|
|
/* Link. */
|
|
.goog-edit-link {
|
|
color: #009;
|
|
text-decoration: underline;
|
|
}
|
|
|
|
/* Insert menu. */
|
|
.goog-edit-insert-icon {
|
|
background-position: -80px;
|
|
vertical-align: bottom;
|
|
}
|
|
.goog-edit-insert-caption {
|
|
padding: 0 2px;
|
|
vertical-align: bottom;
|
|
}
|
|
|
|
/* List style menu. */
|
|
.goog-edit-list-style {
|
|
background-position: -96px;
|
|
}
|
|
|
|
/* Text alignment buttons. */
|
|
.goog-edit-align-left {
|
|
background-position: -128px;
|
|
}
|
|
.goog-edit-align-center {
|
|
background-position: -144px;
|
|
}
|
|
.goog-edit-align-right {
|
|
background-position: -160px;
|
|
}
|
|
|
|
/*
|
|
* Menu styles, overriding those in menus.css to make these menus a little
|
|
* more like the CCC editor UI design.
|
|
*/
|
|
|
|
.goog-menu {
|
|
position: absolute;
|
|
margin: 0;
|
|
border-width: 1px;
|
|
border-style: solid;
|
|
border-color: #ccc #999 #999 #ccc;
|
|
padding: 0;
|
|
font: normal 10pt Arial, sans-serif;
|
|
color: #000;
|
|
background-color: #fff;
|
|
cursor: default;
|
|
outline: none;
|
|
}
|
|
|
|
.goog-menuitem {
|
|
margin: 0;
|
|
border: 0;
|
|
padding: 4px 32px 4px 4px;
|
|
color: #000;
|
|
background-color: #fff;
|
|
list-style: none;
|
|
}
|
|
|
|
.goog-menuitem-disabled {
|
|
color: #999;
|
|
}
|
|
|
|
.goog-menuitem-highlight {
|
|
background-color: #e8eef7 !important;
|
|
}
|
|
|
|
.goog-menuseparator {
|
|
position: relative;
|
|
margin: 2px 0;
|
|
border-top: 1px solid #999;
|
|
padding: 0;
|
|
outline: none;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h2>goog.ui.Toolbar</h2>
|
|
<fieldset>
|
|
<legend>These toolbars were created programmatically:</legend>
|
|
<label>
|
|
Show toolbar:
|
|
<input id="t1_show" type="checkbox" checked>
|
|
</label>
|
|
|
|
<label>
|
|
Enable toolbar:
|
|
<input id="t1_enable" type="checkbox" checked>
|
|
</label>
|
|
|
|
<label>
|
|
Enable last button:
|
|
<input id="toggleButton_enable" type="checkbox" checked>
|
|
</label>
|
|
<br>
|
|
<br>
|
|
<div id="t1"></div>
|
|
<br>
|
|
<div id="perf1" class="perf"></div>
|
|
<br>
|
|
<label>
|
|
Show right-to-left toolbar:
|
|
<input id="t1rtl_show" type="checkbox" checked>
|
|
</label>
|
|
|
|
<label>
|
|
Enable right-to-left toolbar:
|
|
<input id="t1rtl_enable" type="checkbox" checked>
|
|
</label>
|
|
|
|
<label>
|
|
Enable last button:
|
|
<input id="rtlToggleButton_enable" type="checkbox" checked>
|
|
</label>
|
|
<br>
|
|
<br>
|
|
<div id="t1rtl" dir="rtl"></div>
|
|
<br>
|
|
<div id="perf1rtl" class="perf"></div>
|
|
</fieldset>
|
|
<br>
|
|
<br>
|
|
<fieldset>
|
|
<legend>This toolbar was created by decorating a bunch of DIVs:</legend>
|
|
<label>
|
|
Show toolbar:
|
|
<input id="t2_show" type="checkbox" checked>
|
|
</label>
|
|
|
|
<label>
|
|
Enable toolbar:
|
|
<input id="t2_enable" type="checkbox">
|
|
</label>
|
|
|
|
<label>
|
|
Enable menu button:
|
|
<input id="menuButton_enable" type="checkbox" checked>
|
|
</label>
|
|
<br>
|
|
<br>
|
|
<div id="t2" class="goog-toolbar goog-toolbar-disabled">
|
|
<div class="goog-toolbar-button">Button</div>
|
|
<div class="goog-toolbar-button">
|
|
<b><i>Fancy</i></b> <u>Button</u>
|
|
</div>
|
|
<hr>
|
|
<div class="goog-toolbar-button goog-toolbar-button-disabled">
|
|
Disabled Button
|
|
</div>
|
|
<div id="menuButton" class="goog-toolbar-menu-button">
|
|
Menu Button
|
|
<div id="decoratedMenu" class="goog-menu">
|
|
<div class="goog-menuitem">Foo</div>
|
|
<div class="goog-menuitem">Bar</div>
|
|
<hr>
|
|
<div class="goog-menuitem goog-menuitem-disabled">Cake</div>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<div class="goog-toolbar-toggle-button goog-toolbar-button-checked">
|
|
Toggle Button
|
|
</div>
|
|
<div class="goog-toolbar-toggle-button">
|
|
<div class="icon goog-edit-underline"></div>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<div id="perf2" class="perf"></div>
|
|
<br>
|
|
<label>
|
|
Show right-to-left toolbar:
|
|
<input id="t2rtl_show" type="checkbox" checked>
|
|
</label>
|
|
|
|
<label>
|
|
Enable right-to-left toolbar:
|
|
<input id="t2rtl_enable" type="checkbox">
|
|
</label>
|
|
|
|
<label>
|
|
Enable menu button:
|
|
<input id="rtlMenuButton_enable" type="checkbox" checked>
|
|
</label>
|
|
<br>
|
|
<br>
|
|
<div id="t2rtl" class="goog-toolbar goog-toolbar-disabled" dir="rtl">
|
|
<div class="goog-toolbar-button">Button</div>
|
|
<div class="goog-toolbar-button">
|
|
<div><b><i>Fancy</i></b> <u>Button</u></div>
|
|
</div>
|
|
<hr>
|
|
<div class="goog-toolbar-button goog-toolbar-button-disabled">
|
|
Disabled Button
|
|
</div>
|
|
<div id="rtlMenuButton" class="goog-toolbar-menu-button">
|
|
Menu Button
|
|
<div id="rtlDecoratedMenu" class="goog-menu" dir="rtl">
|
|
<div class="goog-menuitem">Foo</div>
|
|
<div class="goog-menuitem">Bar</div>
|
|
<div class="goog-menuitem"><span>????... </span>
|
|
<span style="font-size:90%; text-align: left;">Ctrl+P</span></div>
|
|
<div class="goog-menuitem">???? ?-HTML (????? ZIP)</div>
|
|
<hr>
|
|
<div class="goog-menuitem goog-menuitem-disabled">Cake</div>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<div class="goog-toolbar-toggle-button goog-toolbar-button-checked">
|
|
Toggle Button
|
|
</div>
|
|
<div class="goog-toolbar-toggle-button">
|
|
<!-- For reasons unknown, on FF2, we need an for BiDi. -->
|
|
<div class="icon goog-edit-underline"> </div>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<div id="perf2rtl" class="perf"></div>
|
|
</fieldset>
|
|
<br>
|
|
<br>
|
|
<fieldset>
|
|
<legend>This is starting to look like an editor toolbar:</legend>
|
|
<label>
|
|
Show toolbar:
|
|
<input id="t3_show" type="checkbox" checked>
|
|
</label>
|
|
|
|
<label>
|
|
Enable toolbar:
|
|
<input id="t3_enable" type="checkbox" checked>
|
|
</label>
|
|
|
|
<label>
|
|
Enable font dropdown:
|
|
<input id="font_enable" type="checkbox" checked>
|
|
</label>
|
|
|
|
<label>
|
|
Show font size dropdown:
|
|
<input id="fontSize_show" type="checkbox" checked>
|
|
</label>
|
|
<br>
|
|
<br>
|
|
<div id="t3" class="goog-toolbar">
|
|
<div id="font" title="Font" class="goog-toolbar-select goog-edit-font">
|
|
Select font
|
|
<div id="fontMenu" class="goog-menu">
|
|
<div class="goog-option goog-edit-font-normal">Normal</div>
|
|
<div class="goog-option goog-edit-font-times">Times</div>
|
|
<div class="goog-option goog-edit-font-courier">Courier New</div>
|
|
<div class="goog-option goog-edit-font-georgia">Georgia</div>
|
|
<div class="goog-option goog-edit-font-trebuchet">Trebuchet</div>
|
|
<div class="goog-option goog-edit-font-verdana">Verdana</div>
|
|
</div>
|
|
</div>
|
|
<div id="fontSize" title="Font size"
|
|
class="goog-toolbar-select goog-edit-font-size">
|
|
Size
|
|
<div id="fontSizeMenu" class="goog-menu">
|
|
<div class="goog-option">7pt</div>
|
|
<div class="goog-option">10pt</div>
|
|
<div class="goog-option">14pt</div>
|
|
<div class="goog-option">18pt</div>
|
|
<div class="goog-option">24pt</div>
|
|
<div class="goog-option">36pt</div>
|
|
</div>
|
|
</div>
|
|
<div id="bold" title="Bold" class="goog-toolbar-toggle-button">
|
|
<div class="icon goog-edit-bold"></div>
|
|
</div>
|
|
<div id="italic" title="Italic"
|
|
class="goog-toolbar-toggle-button goog-toolbar-button-checked">
|
|
<div class="icon goog-edit-italic"></div>
|
|
</div>
|
|
<div id="underline" title="Underline" class="goog-toolbar-toggle-button">
|
|
<div class="icon goog-edit-underline"></div>
|
|
</div>
|
|
<div id="color" title="Text color" class="goog-toolbar-menu-button">
|
|
<div class="icon goog-edit-color"></div>
|
|
<div id="colorMenu" class="goog-menu">
|
|
<div class="goog-menuitem" style="color:#800;">Red</div>
|
|
<div class="goog-menuitem" style="color:#080;">Green</div>
|
|
<div class="goog-menuitem" style="color:#008;">Blue</div>
|
|
</div>
|
|
</div>
|
|
<div id="bgColor" title="Background color"
|
|
class="goog-toolbar-menu-button">
|
|
<div class="icon goog-edit-background"></div>
|
|
<div id="bgColorMenu" class="goog-menu">
|
|
<div class="goog-menuitem" style="color:#800;">Red</div>
|
|
<div class="goog-menuitem" style="color:#080;">Green</div>
|
|
<div class="goog-menuitem" style="color:#008;">Blue</div>
|
|
</div>
|
|
</div>
|
|
<div id="style" title="Style" class="goog-toolbar-menu-button">
|
|
<div class="goog-edit-style">Style</div>
|
|
<div id="styleMenu" class="goog-menu">
|
|
<div class="goog-menuitem">Clear formatting</div>
|
|
<hr>
|
|
<div class="goog-menuitem">Normal paragraph text</div>
|
|
<div class="goog-menuitem">Minor heading (H3)</div>
|
|
<div class="goog-menuitem">Sub-heading (H2)</div>
|
|
<div class="goog-menuitem">Heading (H1)</div>
|
|
<hr>
|
|
<div class="goog-menuitem">Indent more</div>
|
|
<div class="goog-menuitem">Indent less</div>
|
|
<div class="goog-menuitem goog-menuitem-disabled">Blockquote</div>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<div id="insert" title="Insert" class="goog-toolbar-menu-button">
|
|
<div class="goog-edit-insert">
|
|
<span class="icon goog-inline-block goog-edit-insert-icon"> </span>
|
|
<span class="goog-inline-block goog-edit-insert-caption">Insert</span>
|
|
</div>
|
|
<div id="insertMenu" class="goog-menu">
|
|
<div class="goog-menuitem">Picture</div>
|
|
<div class="goog-menuitem">Drawing</div>
|
|
<div class="goog-menuitem">Other...</div>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<div id="link" title="Create link" class="goog-toolbar-button">
|
|
<div class="goog-edit-link">Link</div>
|
|
</div>
|
|
<hr>
|
|
<div id="listStyle" title="List style"
|
|
class="goog-toolbar-menu-button goog-toolbar-menu-button-disabled">
|
|
<div class="icon goog-edit-list-style"></div>
|
|
</div>
|
|
<hr>
|
|
<div id="alignLeft" title="Left" class="goog-toolbar-toggle-button goog-toolbar-button-collapse-right">
|
|
<div class="icon goog-edit-align-left"></div>
|
|
</div>
|
|
<div id="alignCenter" title="Center"
|
|
class="goog-toolbar-toggle-button goog-toolbar-button-collapse-left goog-toolbar-button-collapse-right">
|
|
<div class="icon goog-edit-align-center"></div>
|
|
</div>
|
|
<div id="alignRight" title="Right" class="goog-toolbar-toggle-button goog-toolbar-button-collapse-left">
|
|
<div class="icon goog-edit-align-right"></div>
|
|
</div>
|
|
<hr>
|
|
<div id="spellcheck" title="Check spelling"
|
|
class="goog-toolbar-menu-button goog-toolbar-menu-button-disabled">
|
|
<div class="goog-edit-spellcheck">Check spelling</div>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<div id="perf3" class="perf"></div>
|
|
</fieldset>
|
|
<br>
|
|
<br>
|
|
<!-- Event log. -->
|
|
<fieldset class="goog-debug-panel">
|
|
<legend>Event Log</legend>
|
|
<div class="hint">
|
|
<b style="color: #800;">Warning!</b> On Gecko, the event log may cause
|
|
the page to flicker when mousing over toolbar items. This is a Gecko
|
|
issue triggered by scrolling in the event log; see
|
|
<a target="_blank" href="http://b/issue?id=756988">bug 756988</a>.<br>
|
|
<br>
|
|
Enable logging: <input id="enable_log" type="checkbox" checked>
|
|
</div>
|
|
<br>
|
|
<div id="log"></div>
|
|
</fieldset>
|
|
<script>
|
|
var timer;
|
|
|
|
// 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 caption = e.target.getId();
|
|
if (typeof e.target.getCaption == 'function' && e.target.getCaption()) {
|
|
caption += ' (' + e.target.getCaption() + ')';
|
|
}
|
|
goog.log.info(logger, '"' + caption + '" dispatched: ' + e.type);
|
|
}
|
|
|
|
function showPerf(id, start) {
|
|
goog.dom.setTextContent(goog.dom.getElement(id),
|
|
(goog.now() - start) + 'ms');
|
|
}
|
|
|
|
goog.events.listen(goog.dom.getElement('enable_log'),
|
|
goog.events.EventType.CLICK,
|
|
function(e) {
|
|
goog.style.setElementShown(goog.dom.getElement('log'), e.target.checked);
|
|
logconsole.setCapturing(e.target.checked);
|
|
});
|
|
|
|
function handleShow(e) {
|
|
var t = goog.now();
|
|
var box = e.target;
|
|
this.setVisible(box.checked);
|
|
var caption = this.getId();
|
|
if (typeof this.getCaption == 'function' && this.getCaption()) {
|
|
caption += ' (' + this.getCaption() + ')';
|
|
}
|
|
goog.log.info(logger, (this.isVisible() ? 'Showed' : 'Hid') + ' ' + caption
|
|
+ ' in ' + (goog.now() - t) + 'ms');
|
|
}
|
|
|
|
function handleEnable(e) {
|
|
if (typeof this.isParentDisabled_ == 'function' &&
|
|
this.isParentDisabled_()) {
|
|
goog.log.warning(logger, 'Can\'t enable/disable control if parent is disabled!');
|
|
return false;
|
|
}
|
|
|
|
var t = goog.now();
|
|
var box = e.target;
|
|
this.setEnabled(box.checked);
|
|
var caption = this.getId();
|
|
if (typeof this.getCaption == 'function' && this.getCaption()) {
|
|
caption += ' (' + this.getCaption() + ')';
|
|
}
|
|
goog.log.info(logger, (this.isEnabled() ? 'Enabled' : 'Disabled') + ' ' + caption
|
|
+ ' in ' + (goog.now() - t) + 'ms');
|
|
return true;
|
|
}
|
|
|
|
// Create first toolbar programmatically.
|
|
timer = goog.now();
|
|
var t1 = new goog.ui.Toolbar();
|
|
t1.addChild(new goog.ui.ToolbarButton('Button'), true);
|
|
t1.getChildAt(0).setTooltip('This is a tooltip for a button');
|
|
t1.addChild(new goog.ui.ToolbarButton('AnotherButton'), true);
|
|
t1.addChild(new goog.ui.ToolbarSeparator(), true);
|
|
t1.addChild(new goog.ui.ToolbarButton('Disabled'), true);
|
|
t1.getChildAt(3).setEnabled(false);
|
|
t1.addChild(new goog.ui.ToolbarButton('YetAnotherButton'), true);
|
|
var toggleButton = new goog.ui.ToolbarToggleButton(goog.dom.createDom('div',
|
|
'icon goog-edit-bold'));
|
|
toggleButton.setChecked(true);
|
|
t1.addChild(toggleButton, true);
|
|
var btnLeft = new goog.ui.ToolbarButton('Left');
|
|
btnLeft.setCollapsed(goog.ui.ButtonSide.END);
|
|
t1.addChild(btnLeft, true);
|
|
var btnCenter = new goog.ui.ToolbarButton('Center');
|
|
btnCenter.setCollapsed(goog.ui.ButtonSide.END | goog.ui.ButtonSide.START);
|
|
t1.addChild(btnCenter, true);
|
|
var btnRight = new goog.ui.ToolbarButton('Right');
|
|
btnRight.setCollapsed(goog.ui.ButtonSide.START);
|
|
t1.addChild(btnRight, true);
|
|
t1.render(goog.dom.getElement('t1'));
|
|
showPerf('perf1', timer);
|
|
goog.events.listen(t1, EVENTS, logEvent);
|
|
|
|
// Hook up checkboxes.
|
|
goog.events.listen(goog.dom.getElement('t1_show'),
|
|
goog.events.EventType.CLICK, handleShow, false, t1);
|
|
goog.events.listen(goog.dom.getElement('t1_enable'),
|
|
goog.events.EventType.CLICK, handleEnable, false, t1);
|
|
goog.events.listen(goog.dom.getElement('toggleButton_enable'),
|
|
goog.events.EventType.CLICK, handleEnable, false, toggleButton);
|
|
|
|
// Create right-to-left toolbar programmatically.
|
|
timer = goog.now();
|
|
var t1rtl = new goog.ui.Toolbar();
|
|
t1rtl.addChild(new goog.ui.ToolbarButton('Button'), true);
|
|
t1rtl.getChildAt(0).setTooltip('This is a tooltip for a button');
|
|
t1rtl.addChild(new goog.ui.ToolbarButton('AnotherButton'), true);
|
|
t1rtl.addChild(new goog.ui.ToolbarSeparator(), true);
|
|
t1rtl.addChild(new goog.ui.ToolbarButton('Disabled'), true);
|
|
t1rtl.getChildAt(3).setEnabled(false);
|
|
t1rtl.addChild(new goog.ui.ToolbarButton('YetAnotherButton'), true);
|
|
// For reasons unknown, on FF2, we have to inject an character into
|
|
// the icon div for RTL positioning to work. FF2 BiDi sucks!
|
|
var rtlToggleButton = new goog.ui.ToolbarToggleButton(goog.dom.createDom(
|
|
'div', 'icon goog-edit-bold', '\u00A0'));
|
|
rtlToggleButton.setChecked(true);
|
|
t1rtl.addChild(rtlToggleButton, true);
|
|
var btnLeftRtl = new goog.ui.ToolbarButton('Left');
|
|
t1rtl.addChild(btnLeftRtl, true);
|
|
var btnCenterRtl = new goog.ui.ToolbarButton('Center');
|
|
t1rtl.addChild(btnCenterRtl, true);
|
|
var btnRightRtl = new goog.ui.ToolbarButton('Right');
|
|
t1rtl.addChild(btnRightRtl, true);
|
|
|
|
t1rtl.render(goog.dom.getElement('t1rtl'));
|
|
showPerf('perf1rtl', timer);
|
|
goog.events.listen(t1rtl, EVENTS, logEvent);
|
|
|
|
// The setCollapsed method needs to be called after the toolbar is rendered
|
|
// for it to pick up the directionality of the toolbar.
|
|
btnLeftRtl.setCollapsed(goog.ui.ButtonSide.END);
|
|
btnCenterRtl.setCollapsed(
|
|
goog.ui.ButtonSide.END | goog.ui.ButtonSide.START);
|
|
btnRightRtl.setCollapsed(goog.ui.ButtonSide.START);
|
|
|
|
// Hook up checkboxes.
|
|
goog.events.listen(goog.dom.getElement('t1rtl_show'),
|
|
goog.events.EventType.CLICK, handleShow, false, t1rtl);
|
|
goog.events.listen(goog.dom.getElement('t1rtl_enable'),
|
|
goog.events.EventType.CLICK, handleEnable, false, t1rtl);
|
|
goog.events.listen(goog.dom.getElement('rtlToggleButton_enable'),
|
|
goog.events.EventType.CLICK, handleEnable, false, rtlToggleButton);
|
|
|
|
// Decorate the second toolbar.
|
|
timer = goog.now();
|
|
var t2 = new goog.ui.Toolbar();
|
|
t2.decorate(goog.dom.getElement('t2'));
|
|
showPerf('perf2', timer);
|
|
goog.events.listen(t2, EVENTS, logEvent);
|
|
|
|
// Hook up checkboxes.
|
|
goog.events.listen(goog.dom.getElement('t2_show'),
|
|
goog.events.EventType.CLICK, handleShow, false, t2);
|
|
goog.events.listen(goog.dom.getElement('t2_enable'),
|
|
goog.events.EventType.CLICK, handleEnable, false, t2);
|
|
goog.events.listen(goog.dom.getElement('menuButton_enable'),
|
|
goog.events.EventType.CLICK, handleEnable, false,
|
|
t2.getChild('menuButton'));
|
|
|
|
// Decorate the second toolbar.
|
|
timer = goog.now();
|
|
var t2rtl = new goog.ui.Toolbar();
|
|
t2rtl.decorate(goog.dom.getElement('t2rtl'));
|
|
showPerf('perf2rtl', timer);
|
|
goog.events.listen(t2rtl, EVENTS, logEvent);
|
|
|
|
// Hook up checkboxes.
|
|
goog.events.listen(goog.dom.getElement('t2rtl_show'),
|
|
goog.events.EventType.CLICK, handleShow, false, t2rtl);
|
|
goog.events.listen(goog.dom.getElement('t2rtl_enable'),
|
|
goog.events.EventType.CLICK, handleEnable, false, t2rtl);
|
|
goog.events.listen(goog.dom.getElement('rtlMenuButton_enable'),
|
|
goog.events.EventType.CLICK, handleEnable, false,
|
|
t2rtl.getChild('rtlMenuButton'));
|
|
|
|
// Decorate the third toolbar.
|
|
timer = goog.now();
|
|
var t3 = new goog.ui.Toolbar();
|
|
t3.decorate(goog.dom.getElement('t3'));
|
|
showPerf('perf3', timer);
|
|
goog.events.listen(t3, EVENTS, logEvent);
|
|
|
|
// Have the alignment buttons be controlled by a selection model.
|
|
var selectionModel = new goog.ui.SelectionModel();
|
|
selectionModel.setSelectionHandler(function(button, select) {
|
|
if (button) {
|
|
button.setChecked(select);
|
|
}
|
|
});
|
|
goog.array.forEach(['alignLeft', 'alignCenter', 'alignRight'],
|
|
function(id) {
|
|
var button = t3.getChild(id);
|
|
// Let the selection model control the button's checked state.
|
|
button.setAutoStates(goog.ui.Component.State.CHECKED, false);
|
|
selectionModel.addItem(button);
|
|
goog.events.listen(button, goog.ui.Component.EventType.ACTION,
|
|
function(e) {
|
|
selectionModel.setSelectedItem(e.target);
|
|
});
|
|
});
|
|
|
|
// Hook up checkboxes.
|
|
goog.events.listen(goog.dom.getElement('t3_show'),
|
|
goog.events.EventType.CLICK, handleShow, false, t3);
|
|
goog.events.listen(goog.dom.getElement('t3_enable'),
|
|
goog.events.EventType.CLICK, handleEnable, false, t3);
|
|
goog.events.listen(goog.dom.getElement('font_enable'),
|
|
goog.events.EventType.CLICK, handleEnable, false,
|
|
t3.getChild('font'));
|
|
goog.events.listen(goog.dom.getElement('fontSize_show'),
|
|
goog.events.EventType.CLICK, handleShow, false,
|
|
t3.getChild('fontSize'));
|
|
</script>
|
|
</body>
|
|
</html>
|