/*! * VisualEditor UserInterface MWSyntaxHighlightTool class. * * @copyright 2011-2014 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.title = OO.ui.deferMsg( '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.title = OO.ui.deferMsg( '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.title = OO.ui.deferMsg( '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.title = ''; 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.title = ''; ve.ui.MWSynHiBeautifyTool.static.autoAdd = false; ve.ui.syntaxHighlightEditorToolFactory.register( ve.ui.MWSynHiBeautifyTool );