mediawiki-extensions-Visual.../modules/ve/ui/tools/buttons/ve.ui.UndoButtonTool.js
Trevor Parscal f49d80d27a i18n icons
Graphics (*.ai, *.png, *.svg)
* Took a pass on all images making them sharper and clearer
* Renamed bold and italic to bold-b and bold-a
* Added bold-f, italic-k, bold-a and italic-a
* Reorganized illustrator file

ve.ui.Icons-raster.css, ve.ui.Icons-vector.css
* Added classes for new icons
* Appended bullet, number, indent and outdent class names with "list"

ve.ui.*ButtonTool.js
* Added definitions for static icon property
* For bold and italic, added i18n style definitions

ve.ui.ButtonTool.js
* Switched from re-using the name property (which is intended to be the symbolic name of the tool used when registering with the tool factory) to using an static icon property for defining the icon

Change-Id: I43e7c35835a1e6dfb06f2a70226fac0d395008e8
2013-02-01 15:29:18 -08:00

74 lines
1.8 KiB
JavaScript

/*!
* VisualEditor UserInterface UndoButtonTool class.
*
* @copyright 2011-2012 VisualEditor Team and others; see AUTHORS.txt
* @license The MIT License (MIT); see LICENSE.txt
*/
/**
* UserInterface undo button tool.
*
* @class
* @extends ve.ui.ButtonTool
* @constructor
* @param {ve.ui.Toolbar} toolbar
*/
ve.ui.UndoButtonTool = function VeUiUndoButtonTool( toolbar ) {
// Parent constructor
ve.ui.ButtonTool.call( this, toolbar );
// Events
this.toolbar.getSurface().getModel().addListenerMethod( this, 'history', 'onUpdateState' );
// Initialization
this.setDisabled( true );
};
/* Inheritance */
ve.inheritClass( ve.ui.UndoButtonTool, ve.ui.ButtonTool );
/* Static Properties */
ve.ui.UndoButtonTool.static.name = 'undo';
ve.ui.UndoButtonTool.static.icon = 'undo';
ve.ui.UndoButtonTool.static.titleMessage = 'visualeditor-historybutton-undo-tooltip';
/* Methods */
/**
* Handle the button being clicked.
*
* @method
*/
ve.ui.UndoButtonTool.prototype.onClick = function () {
this.toolbar.getSurface().execute( 'history', 'undo' );
};
/**
* Handle the toolbar state being updated.
*
* @method
* @param {ve.dm.Node[]} nodes List of nodes covered by the current selection
* @param {ve.AnnotationSet} full Annotations that cover all of the current selection
* @param {ve.AnnotationSet} partial Annotations that cover some or all of the current selection
*/
ve.ui.UndoButtonTool.prototype.onUpdateState = function () {
this.setDisabled( !this.toolbar.getSurface().getModel().hasPastState() );
};
/* Registration */
ve.ui.toolFactory.register( 'undo', ve.ui.UndoButtonTool );
ve.commandRegistry.register(
'undo', 'history', 'undo'
);
ve.triggerRegistry.register(
'undo', { 'mac': new ve.Trigger( 'cmd+z' ), 'pc': new ve.Trigger( 'ctrl+z' ) }
);