diff --git a/extension.json b/extension.json
index 1d65200..5eefffb 100644
--- a/extension.json
+++ b/extension.json
@@ -142,19 +142,23 @@
"scripts": [
"ve-math/ve.dm.MWMathNode.js",
"ve-math/ve.ce.MWMathNode.js",
+ "ve-math/ve.ui.MWMathInspector.js",
+ "ve-math/ve.ui.MWMathContextItem.js",
"ve-math/ve.ui.MWMathDialog.js",
"ve-math/ve.ui.MWMathPage.js",
- "ve-math/ve.ui.MWMathInspectorTool.js"
+ "ve-math/ve.ui.MWMathDialogTool.js"
],
"styles": [
"ve-math/ve.ce.MWMathNode.css",
"ve-math/ve.ui.MWMathIcons.css",
+ "ve-math/ve.ui.MWMathInspector.css",
"ve-math/ve.ui.MWMathDialog.css"
],
"dependencies": [
"ext.visualEditor.mwcore"
],
"messages": [
+ "math-visualeditor-mwmathcontextitem-quickedit",
"math-visualeditor-mwmathdialog-title",
"math-visualeditor-mwmathdialog-card-formula",
"math-visualeditor-mwmathdialog-card-options",
diff --git a/i18n/en.json b/i18n/en.json
index a4e2bc0..46838dd 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -18,6 +18,7 @@
]
},
"math-desc": "Render mathematical formulas between <math>
... </math>
tags",
+ "math-visualeditor-mwmathcontextitem-quickedit": "Quick edit",
"math-visualeditor-mwmathdialog-title": "Formula",
"math-visualeditor-mwmathdialog-card-formula": "Formula",
"math-visualeditor-mwmathdialog-card-options": "Options",
diff --git a/i18n/qqq.json b/i18n/qqq.json
index 46a7294..bb66879 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -17,6 +17,7 @@
]
},
"math-desc": "{{desc|name=Math|url=https://www.mediawiki.org/wiki/Extension:Math}}",
+ "math-visualeditor-mwmathcontextitem-quickedit": "Label for the quick edit button in the math context item",
"math-visualeditor-mwmathdialog-title": "Title for the dialog to edit formula blocks.\n{{Identical|Formula}}",
"math-visualeditor-mwmathdialog-card-formula": "Label for the formula card of the math dialog\n{{Identical|Formula}}",
"math-visualeditor-mwmathdialog-card-options": "Label for the options card of the math dialog\n{{Identical|Options}}",
diff --git a/modules/ve-math/ve.ui.MWMathContextItem.js b/modules/ve-math/ve.ui.MWMathContextItem.js
new file mode 100644
index 0000000..41bcdd7
--- /dev/null
+++ b/modules/ve-math/ve.ui.MWMathContextItem.js
@@ -0,0 +1,64 @@
+/*!
+ * VisualEditor MWMathContextItem class.
+ *
+ * @copyright 2015 VisualEditor Team and others; see http://ve.mit-license.org
+ */
+
+/**
+ * Context item for a math node.
+ *
+ * @class
+ * @extends ve.ui.LinearContextItem
+ *
+ * @param {ve.ui.Context} context Context item is in
+ * @param {ve.dm.Model} model Model item is related to
+ * @param {Object} config Configuration options
+ */
+ve.ui.MWMathContextItem = function VeUiMWMathContextItem() {
+ // Parent constructor
+ ve.ui.MWMathContextItem.super.apply( this, arguments );
+
+ this.quickEditButton = new OO.ui.ButtonWidget( {
+ label: ve.msg( 'math-visualeditor-mwmathcontextitem-quickedit' ),
+ flags: [ 'progressive' ]
+ } );
+
+ this.actionButtons.addItems( [ this.quickEditButton ], 0 );
+
+ this.quickEditButton.connect( this, { click: 'onInlineEditButtonClick' } );
+
+ // Initialization
+ this.$element.addClass( 've-ui-mwMathContextItem' );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWMathContextItem, ve.ui.LinearContextItem );
+
+/* Static Properties */
+
+ve.ui.MWMathContextItem.static.name = 'math';
+
+ve.ui.MWMathContextItem.static.icon = 'math';
+
+ve.ui.MWMathContextItem.static.label = OO.ui.deferMsg( 'math-visualeditor-mwmathinspector-title' );
+
+ve.ui.MWMathContextItem.static.modelClasses = [ ve.dm.MWMathNode ];
+
+ve.ui.MWMathContextItem.static.embeddable = false;
+
+ve.ui.MWMathContextItem.static.commandName = 'mathDialog';
+
+/* Methods */
+
+/**
+ * Handle inline edit button click events.
+ */
+ve.ui.MWMathContextItem.prototype.onInlineEditButtonClick = function () {
+ var command = ve.init.target.commandRegistry.lookup( 'mathInspector' );
+ command.execute( this.context.getSurface() );
+};
+
+/* Registration */
+
+ve.ui.contextItemFactory.register( ve.ui.MWMathContextItem );
diff --git a/modules/ve-math/ve.ui.MWMathDialog.js b/modules/ve-math/ve.ui.MWMathDialog.js
index b46d1cc..b20c662 100644
--- a/modules/ve-math/ve.ui.MWMathDialog.js
+++ b/modules/ve-math/ve.ui.MWMathDialog.js
@@ -27,7 +27,7 @@ OO.inheritClass( ve.ui.MWMathDialog, ve.ui.MWExtensionPreviewDialog );
/* Static properties */
-ve.ui.MWMathDialog.static.name = 'math';
+ve.ui.MWMathDialog.static.name = 'mathDialog';
ve.ui.MWMathDialog.static.icon = 'math';
diff --git a/modules/ve-math/ve.ui.MWMathDialogTool.js b/modules/ve-math/ve.ui.MWMathDialogTool.js
new file mode 100644
index 0000000..0afc3d8
--- /dev/null
+++ b/modules/ve-math/ve.ui.MWMathDialogTool.js
@@ -0,0 +1,53 @@
+/*!
+ * VisualEditor UserInterface MWMathDialogTool class.
+ *
+ * @copyright 2011-2015 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/*global ve, OO */
+
+/**
+ * MediaWiki UserInterface math tool.
+ *
+ * @class
+ * @extends ve.ui.DialogTool
+ * @constructor
+ * @param {OO.ui.ToolGroup} toolGroup
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWMathDialogTool = function VeUiMWMathDialogTool( toolGroup, config ) {
+ ve.ui.MWMathDialogTool.super.call( this, toolGroup, config );
+};
+OO.inheritClass( ve.ui.MWMathDialogTool, ve.ui.DialogTool );
+ve.ui.MWMathDialogTool.static.name = 'math';
+ve.ui.MWMathDialogTool.static.group = 'object';
+ve.ui.MWMathDialogTool.static.icon = 'math';
+ve.ui.MWMathDialogTool.static.title = OO.ui.deferMsg(
+ 'math-visualeditor-mwmathinspector-title' );
+ve.ui.MWMathDialogTool.static.modelClasses = [ ve.dm.MWMathNode ];
+ve.ui.MWMathDialogTool.static.commandName = 'mathDialog';
+ve.ui.toolFactory.register( ve.ui.MWMathDialogTool );
+
+ve.ui.commandRegistry.register(
+ new ve.ui.Command(
+ 'mathDialog', 'window', 'open',
+ { args: [ 'mathDialog' ], supportedSelections: [ 'linear' ] }
+ )
+);
+
+ve.ui.commandRegistry.register(
+ new ve.ui.Command(
+ 'mathInspector', 'window', 'open',
+ { args: [ 'mathInspector' ], supportedSelections: [ 'linear' ] }
+ )
+);
+
+ve.ui.sequenceRegistry.register(
+ new ve.ui.Sequence( 'wikitextMath', 'mathDialog', '