| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- /**
- * Checkbox.js
- *
- * Copyright, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://www.tinymce.com/license
- * Contributing: http://www.tinymce.com/contributing
- */
- /**
- * This control creates a custom checkbox.
- *
- * @example
- * // Create and render a checkbox to the body element
- * tinymce.ui.Factory.create({
- * type: 'checkbox',
- * checked: true,
- * text: 'My checkbox'
- * }).renderTo(document.body);
- *
- * @-x-less Checkbox.less
- * @class tinymce.ui.Checkbox
- * @extends tinymce.ui.Widget
- */
- define("tinymce/ui/Checkbox", [
- "tinymce/ui/Widget"
- ], function(Widget) {
- "use strict";
- return Widget.extend({
- Defaults: {
- classes: "checkbox",
- role: "checkbox",
- checked: false
- },
- /**
- * Constructs a new Checkbox instance with the specified settings.
- *
- * @constructor
- * @param {Object} settings Name/value object with settings.
- * @setting {Boolean} checked True if the checkbox should be checked by default.
- */
- init: function(settings) {
- var self = this;
- self._super(settings);
- self.on('click mousedown', function(e) {
- e.preventDefault();
- });
- self.on('click', function(e) {
- e.preventDefault();
- if (!self.disabled()) {
- self.checked(!self.checked());
- }
- });
- self.checked(self.settings.checked);
- },
- /**
- * Getter/setter function for the checked state.
- *
- * @method checked
- * @param {Boolean} [state] State to be set.
- * @return {Boolean|tinymce.ui.Checkbox} True/false or checkbox if it's a set operation.
- */
- checked: function(state) {
- var self = this;
- if (typeof state != "undefined") {
- if (state) {
- self.addClass('checked');
- } else {
- self.removeClass('checked');
- }
- self._checked = state;
- self.aria('checked', state);
- return self;
- }
- return self._checked;
- },
- /**
- * Getter/setter function for the value state.
- *
- * @method value
- * @param {Boolean} [state] State to be set.
- * @return {Boolean|tinymce.ui.Checkbox} True/false or checkbox if it's a set operation.
- */
- value: function(state) {
- return this.checked(state);
- },
- /**
- * Renders the control as a HTML string.
- *
- * @method renderHtml
- * @return {String} HTML representing the control.
- */
- renderHtml: function() {
- var self = this, id = self._id, prefix = self.classPrefix;
- return (
- '<div id="' + id + '" class="' + self.classes() + '" unselectable="on" aria-labelledby="' + id + '-al" tabindex="-1">' +
- '<i class="' + prefix + 'ico ' + prefix + 'i-checkbox"></i>' +
- '<span id="' + id + '-al" class="' + prefix + 'label">' + self.encode(self._text) + '</span>' +
- '</div>'
- );
- }
- });
- });
|