init
This commit is contained in:
1 parent
fac05a7b6c
commit
476ade10e7
1085 files changed
+259628
No files matched your search
@@ -0,0 +1,156 @@
|
||||
/**
|
||||
* Widget.js
|
||||
*
|
||||
* Copyright, Moxiecode Systems AB
|
||||
* Released under LGPL License.
|
||||
*
|
||||
* License: http://www.tinymce.com/license
|
||||
* Contributing: http://www.tinymce.com/contributing
|
||||
*/
|
||||
|
||||
/**
|
||||
* Widget base class a widget is a control that has a tooltip and some basic states.
|
||||
*
|
||||
* @class tinymce.ui.Widget
|
||||
* @extends tinymce.ui.Control
|
||||
*/
|
||||
define("tinymce/ui/Widget", [
|
||||
"tinymce/ui/Control",
|
||||
"tinymce/ui/Tooltip"
|
||||
], function(Control, Tooltip) {
|
||||
"use strict";
|
||||
|
||||
var tooltip;
|
||||
|
||||
var Widget = Control.extend({
|
||||
/**
|
||||
* Constructs a instance with the specified settings.
|
||||
*
|
||||
* @constructor
|
||||
* @param {Object} settings Name/value object with settings.
|
||||
* @setting {String} tooltip Tooltip text to display when hovering.
|
||||
* @setting {Boolean} autofocus True if the control should be focused when rendered.
|
||||
* @setting {String} text Text to display inside widget.
|
||||
*/
|
||||
init: function(settings) {
|
||||
var self = this;
|
||||
|
||||
self._super(settings);
|
||||
self.canFocus = true;
|
||||
|
||||
if (settings.tooltip && Widget.tooltips !== false) {
|
||||
self.on('mouseenter mouseleave', function(e) {
|
||||
var tooltip = self.tooltip().moveTo(-0xFFFF);
|
||||
|
||||
if (e.control == self && e.type == 'mouseenter') {
|
||||
var rel = tooltip.text(settings.tooltip).show().testMoveRel(self.getEl(), ['bc-tc', 'bc-tl', 'bc-tr']);
|
||||
|
||||
tooltip.toggleClass('tooltip-n', rel == 'bc-tc');
|
||||
tooltip.toggleClass('tooltip-nw', rel == 'bc-tl');
|
||||
tooltip.toggleClass('tooltip-ne', rel == 'bc-tr');
|
||||
|
||||
tooltip.moveRel(self.getEl(), rel);
|
||||
} else {
|
||||
tooltip.hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
self.aria('label', settings.tooltip);
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns the current tooltip instance.
|
||||
*
|
||||
* @method tooltip
|
||||
* @return {tinymce.ui.Tooltip} Tooltip instance.
|
||||
*/
|
||||
tooltip: function() {
|
||||
var self = this;
|
||||
|
||||
if (!tooltip) {
|
||||
tooltip = new Tooltip({type: 'tooltip'});
|
||||
tooltip.renderTo(self.getContainerElm());
|
||||
}
|
||||
|
||||
return tooltip;
|
||||
},
|
||||
|
||||
/**
|
||||
* Sets/gets the active state of the widget.
|
||||
*
|
||||
* @method active
|
||||
* @param {Boolean} [state] State if the control is active.
|
||||
* @return {Boolean|tinymce.ui.Widget} True/false or current widget instance.
|
||||
*/
|
||||
active: function(state) {
|
||||
var self = this, undef;
|
||||
|
||||
if (state !== undef) {
|
||||
self.aria('pressed', state);
|
||||
self.toggleClass('active', state);
|
||||
}
|
||||
|
||||
return self._super(state);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sets/gets the disabled state of the widget.
|
||||
*
|
||||
* @method disabled
|
||||
* @param {Boolean} [state] State if the control is disabled.
|
||||
* @return {Boolean|tinymce.ui.Widget} True/false or current widget instance.
|
||||
*/
|
||||
disabled: function(state) {
|
||||
var self = this, undef;
|
||||
|
||||
if (state !== undef) {
|
||||
self.aria('disabled', state);
|
||||
self.toggleClass('disabled', state);
|
||||
}
|
||||
|
||||
return self._super(state);
|
||||
},
|
||||
|
||||
/**
|
||||
* Called after the control has been rendered.
|
||||
*
|
||||
* @method postRender
|
||||
*/
|
||||
postRender: function() {
|
||||
var self = this, settings = self.settings;
|
||||
|
||||
self._rendered = true;
|
||||
|
||||
self._super();
|
||||
|
||||
if (!self.parent() && (settings.width || settings.height)) {
|
||||
self.initLayoutRect();
|
||||
self.repaint();
|
||||
}
|
||||
|
||||
if (settings.autofocus) {
|
||||
setTimeout(function() {
|
||||
self.focus();
|
||||
}, 0);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Removes the current control from DOM and from UI collections.
|
||||
*
|
||||
* @method remove
|
||||
* @return {tinymce.ui.Control} Current control instance.
|
||||
*/
|
||||
remove: function() {
|
||||
this._super();
|
||||
|
||||
if (tooltip) {
|
||||
tooltip.remove();
|
||||
tooltip = null;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return Widget;
|
||||
});
|
||||
Reference in new issue
Block a user