mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-12-01 17:36:35 +00:00
6774cd74f3
Changes: * Pass toolGroup into tools instead of toolbar * Split tool labels into title and accel * Make toolbars provide accelerator labels * Remove getLabelText method since it's not being used and is likely not useful * Make tools update their own labels * Only show accelerator information for triggers that are active in the surface * Make surface toolbars listen to commands being added and update tools accordingly * Introduce command object to encapsulate command info Change-Id: Ieac4bfa63b63ac0a9dee154af3007a33b4d447ff
112 lines
4.5 KiB
JavaScript
112 lines
4.5 KiB
JavaScript
/*!
|
|
* VisualEditor UserInterface MWSyntaxHighlightTool class.
|
|
*
|
|
* @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
|
|
* @license The MIT License (MIT); see LICENSE.txt
|
|
*/
|
|
|
|
/**
|
|
* SyntaxHighlight tool group.
|
|
*
|
|
* @class
|
|
* @extends ve.ui.DialogTool
|
|
* @constructor
|
|
* @param {OO.ui.ToolGroup} toolGroup
|
|
* @param {Object} [config] Config options
|
|
*/
|
|
ve.ui.MWSyntaxHighlightTool = function VeUiMWSyntaxHighlightTool( toolGroup, config ) {
|
|
// Parent constructor
|
|
ve.ui.DialogTool.call( this, toolGroup, config );
|
|
};
|
|
|
|
/* Inheritance */
|
|
|
|
OO.inheritClass( ve.ui.MWSyntaxHighlightTool, ve.ui.DialogTool );
|
|
|
|
/* Static Properties */
|
|
|
|
ve.ui.MWSyntaxHighlightTool.static.name = 'mwSyntaxHighlight';
|
|
ve.ui.MWSyntaxHighlightTool.static.icon = 'syntaxHighlight';
|
|
ve.ui.MWSyntaxHighlightTool.static.titleMessage = 'visualeditor-dialogbutton-syntaxhighlight-tooltip';
|
|
ve.ui.MWSyntaxHighlightTool.static.dialog = 'mwSyntaxHighlight';
|
|
ve.ui.MWSyntaxHighlightTool.static.modelClasses = [ ve.dm.MWSyntaxHighlightNode ];
|
|
ve.ui.MWSyntaxHighlightTool.static.group = 'syntaxHighlight';
|
|
ve.ui.MWSyntaxHighlightTool.static.autoAdd = true;
|
|
|
|
/* Registration */
|
|
|
|
ve.ui.toolFactory.register( ve.ui.MWSyntaxHighlightTool );
|
|
|
|
/*
|
|
* Factory for SyntaxHighlight tools.
|
|
*/
|
|
ve.ui.syntaxHighlightEditorToolFactory = new OO.ui.ToolFactory();
|
|
|
|
/* SyntaxHighlight Editor Tools */
|
|
|
|
ve.ui.MWSyntaxHighlightEditorTool = function VeUiMWSyntaxHighlightEditorTool( toolGroup, config ) {
|
|
// Parent constructor
|
|
OO.ui.Tool.call( this, toolGroup, config );
|
|
};
|
|
OO.inheritClass( ve.ui.MWSyntaxHighlightEditorTool, OO.ui.Tool );
|
|
|
|
ve.ui.MWSyntaxHighlightEditorTool.prototype.onSelect = function () {
|
|
this.toolbar.context[this.constructor.static.method]();
|
|
this.setActive( false );
|
|
};
|
|
|
|
ve.ui.MWSyntaxHighlightEditorTool.prototype.onUpdateState = function () {
|
|
if ( this.constructor.static.name === 'synhiUndo' ){
|
|
this.setDisabled( this.toolbar.context.undoStack.length === 0 );
|
|
} else if ( this.constructor.static.name === 'synhiRedo' ){
|
|
this.setDisabled( this.toolbar.context.redoStack.length === 0 );
|
|
}
|
|
};
|
|
|
|
ve.ui.MWSynHiUndoTool = function VeUiMWSynhiUndoTool( toolGroup, config ) {
|
|
ve.ui.MWSyntaxHighlightEditorTool.call( this, toolGroup, config );
|
|
};
|
|
OO.inheritClass( ve.ui.MWSynHiUndoTool, ve.ui.MWSyntaxHighlightEditorTool );
|
|
ve.ui.MWSynHiUndoTool.static.name = 'synhiUndo';
|
|
ve.ui.MWSynHiUndoTool.static.group = 'synhiEditorTool';
|
|
ve.ui.MWSynHiUndoTool.static.method = 'undo';
|
|
ve.ui.MWSynHiUndoTool.static.icon = 'undo';
|
|
ve.ui.MWSynHiUndoTool.static.titleMessage = 'visualeditor-historybutton-undo-tooltip';
|
|
ve.ui.MWSynHiUndoTool.static.autoAdd = false;
|
|
ve.ui.syntaxHighlightEditorToolFactory.register( ve.ui.MWSynHiUndoTool );
|
|
|
|
ve.ui.MWSynHiRedoTool = function VeUiMWSynHiRedoTool( toolGroup, config ) {
|
|
ve.ui.MWSyntaxHighlightEditorTool.call( this, toolGroup, config );
|
|
};
|
|
OO.inheritClass( ve.ui.MWSynHiRedoTool, ve.ui.MWSyntaxHighlightEditorTool );
|
|
ve.ui.MWSynHiRedoTool.static.name = 'synhiRedo';
|
|
ve.ui.MWSynHiRedoTool.static.group = 'synhiEditorTool';
|
|
ve.ui.MWSynHiRedoTool.static.method = 'redo';
|
|
ve.ui.MWSynHiRedoTool.static.icon = 'redo';
|
|
ve.ui.MWSynHiRedoTool.static.titleMessage = 'visualeditor-historybutton-redo-tooltip';
|
|
ve.ui.MWSynHiRedoTool.static.autoAdd = false;
|
|
ve.ui.syntaxHighlightEditorToolFactory.register( ve.ui.MWSynHiRedoTool );
|
|
|
|
ve.ui.MWSynHiIndentTool = function VeUiMWSynHiIndentTool( toolGroup, config ) {
|
|
ve.ui.MWSyntaxHighlightEditorTool.call( this, toolGroup, config );
|
|
};
|
|
OO.inheritClass( ve.ui.MWSynHiIndentTool, ve.ui.MWSyntaxHighlightEditorTool );
|
|
ve.ui.MWSynHiIndentTool.static.name = 'synhiIndent';
|
|
ve.ui.MWSynHiIndentTool.static.group = 'synhiEditorTool';
|
|
ve.ui.MWSynHiIndentTool.static.method = 'indent';
|
|
ve.ui.MWSynHiIndentTool.static.icon = 'indent-list';
|
|
ve.ui.MWSynHiIndentTool.static.titleMessage = '';
|
|
ve.ui.MWSynHiIndentTool.static.autoAdd = false;
|
|
ve.ui.syntaxHighlightEditorToolFactory.register( ve.ui.MWSynHiIndentTool );
|
|
|
|
ve.ui.MWSynHiBeautifyTool = function VeUiMWSynHiBeautifyTool( toolGroup, config ) {
|
|
ve.ui.MWSyntaxHighlightEditorTool.call( this, toolGroup, config );
|
|
};
|
|
OO.inheritClass( ve.ui.MWSynHiBeautifyTool, ve.ui.MWSyntaxHighlightEditorTool );
|
|
ve.ui.MWSynHiBeautifyTool.static.name = 'synhiBeautify';
|
|
ve.ui.MWSynHiBeautifyTool.static.group = 'synhiEditorTool';
|
|
ve.ui.MWSynHiBeautifyTool.static.method = 'doBeautify';
|
|
ve.ui.MWSynHiBeautifyTool.static.icon = 'reformat';
|
|
ve.ui.MWSynHiBeautifyTool.static.titleMessage = '';
|
|
ve.ui.MWSynHiBeautifyTool.static.autoAdd = false;
|
|
ve.ui.syntaxHighlightEditorToolFactory.register( ve.ui.MWSynHiBeautifyTool ); |