blob: 3aa7ab0992c170b3258db32a7a7e19ff3ef4548e [file] [log] [blame]
// Copyright 2010 The Closure Library Authors. All Rights Reserved
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS-IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* @fileoverview Behavior for combining a color button and a menu.
*
* @see ../demos/split.html
*/
goog.provide('goog.ui.ColorSplitBehavior');
goog.require('goog.ui.ColorMenuButton');
goog.require('goog.ui.SplitBehavior');
/**
* Constructs a ColorSplitBehavior for combining a color button and a menu.
* To use this, provide a goog.ui.ColorButton which will be attached with
* a goog.ui.ColorMenuButton (with no caption).
* Whenever a color is selected from the ColorMenuButton, it will be placed in
* the ColorButton and the user can apply it over and over (by clicking the
* ColorButton).
* Primary use case - setting the color of text/background in a text editor.
*
* @param {!goog.ui.Button} colorButton A button to interact with a color menu
* button (preferably a goog.ui.ColorButton).
* @param {goog.dom.DomHelper=} opt_domHelper Optional DOM helper, used for
* document interaction.
* @extends {goog.ui.SplitBehavior}
* @constructor
* @final
*/
goog.ui.ColorSplitBehavior = function(colorButton, opt_domHelper) {
goog.ui.ColorSplitBehavior.base(this, 'constructor', colorButton,
new goog.ui.ColorMenuButton(goog.ui.ColorSplitBehavior.ZERO_WIDTH_SPACE_),
goog.ui.SplitBehavior.DefaultHandlers.VALUE,
undefined,
opt_domHelper);
};
goog.inherits(goog.ui.ColorSplitBehavior, goog.ui.SplitBehavior);
/**
* A zero width space character.
* @type {string}
* @private
*/
goog.ui.ColorSplitBehavior.ZERO_WIDTH_SPACE_ = '\uFEFF';