Esanders has uploaded a new change for review.
https://gerrit.wikimedia.org/r/83048
Change subject: Extend SurfaceToolbar into TargetToolbar
......................................................................
Extend SurfaceToolbar into TargetToolbar
Toolbars may want to control the target as well as the surface (spoiler alert!).
The new TargetToolbar has a pointer to its target as well as its surface.
Change-Id: I928316d9e23ac3f3de3e76c34ef0ac3d27855ab3
---
M VisualEditor.php
M demos/ve/index.php
M modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
M modules/ve-mw/test/index.php
M modules/ve/init/sa/ve.init.sa.Target.js
M modules/ve/test/index.php
M modules/ve/ui/ve.ui.SurfaceToolbar.js
A modules/ve/ui/ve.ui.TargetToolbar.js
8 files changed, 51 insertions(+), 7 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/48/83048/1
diff --git a/VisualEditor.php b/VisualEditor.php
index 6327d7e..50a692c 100644
--- a/VisualEditor.php
+++ b/VisualEditor.php
@@ -435,6 +435,7 @@
've/ui/ve.ui.ToolFactory.js',
've/ui/ve.ui.Toolbar.js',
've/ui/ve.ui.SurfaceToolbar.js',
+ 've/ui/ve.ui.TargetToolbar.js',
've/ui/ve.ui.CommandRegistry.js',
've/ui/ve.ui.Trigger.js',
've/ui/ve.ui.TriggerRegistry.js',
diff --git a/demos/ve/index.php b/demos/ve/index.php
index 70bb9ba..71179de 100644
--- a/demos/ve/index.php
+++ b/demos/ve/index.php
@@ -240,6 +240,7 @@
<script src="../../modules/ve/ui/ve.ui.ToolFactory.js"></script>
<script src="../../modules/ve/ui/ve.ui.Toolbar.js"></script>
<script
src="../../modules/ve/ui/ve.ui.SurfaceToolbar.js"></script>
+ <script
src="../../modules/ve/ui/ve.ui.TargetToolbar.js"></script>
<script
src="../../modules/ve/ui/ve.ui.CommandRegistry.js"></script>
<script src="../../modules/ve/ui/ve.ui.Trigger.js"></script>
<script
src="../../modules/ve/ui/ve.ui.TriggerRegistry.js"></script>
diff --git a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
index 83f6c1a..7416ec2 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
@@ -1851,7 +1851,7 @@
* @method
*/
ve.init.mw.ViewPageTarget.prototype.setUpToolbar = function () {
- this.toolbar = new ve.ui.SurfaceToolbar( this.surface, { 'shadow':
true, 'actions': true } );
+ this.toolbar = new ve.ui.TargetToolbar( this, this.surface, { 'shadow':
true, 'actions': true } );
this.toolbar.connect( this, { 'position': 'onToolbarPosition' } );
this.toolbar.setup( this.constructor.static.toolbarGroups );
this.surface.addCommands( this.constructor.static.surfaceCommands );
diff --git a/modules/ve-mw/test/index.php b/modules/ve-mw/test/index.php
index d482dd7..73d0434 100644
--- a/modules/ve-mw/test/index.php
+++ b/modules/ve-mw/test/index.php
@@ -218,6 +218,7 @@
<script src="../../ve/ui/ve.ui.ToolFactory.js"></script>
<script src="../../ve/ui/ve.ui.Toolbar.js"></script>
<script src="../../ve/ui/ve.ui.SurfaceToolbar.js"></script>
+ <script src="../../ve/ui/ve.ui.TargetToolbar.js"></script>
<script src="../../ve/ui/ve.ui.CommandRegistry.js"></script>
<script src="../../ve/ui/ve.ui.Trigger.js"></script>
<script src="../../ve/ui/ve.ui.TriggerRegistry.js"></script>
diff --git a/modules/ve/init/sa/ve.init.sa.Target.js
b/modules/ve/init/sa/ve.init.sa.Target.js
index c697dfb..f28d67d 100644
--- a/modules/ve/init/sa/ve.init.sa.Target.js
+++ b/modules/ve/init/sa/ve.init.sa.Target.js
@@ -26,7 +26,7 @@
// Properties
this.surface = new ve.ui.Surface( doc );
- this.toolbar = new ve.ui.SurfaceToolbar( this.surface, { 'shadow': true
} );
+ this.toolbar = new ve.ui.TargetToolbar( this, this.surface, { 'shadow':
true } );
// Initialization
this.toolbar.$.addClass( 've-init-sa-target-toolbar' );
diff --git a/modules/ve/test/index.php b/modules/ve/test/index.php
index ccb58e8..f11fe14 100644
--- a/modules/ve/test/index.php
+++ b/modules/ve/test/index.php
@@ -185,6 +185,7 @@
<script src="../../ve/ui/ve.ui.ToolFactory.js"></script>
<script src="../../ve/ui/ve.ui.Toolbar.js"></script>
<script src="../../ve/ui/ve.ui.SurfaceToolbar.js"></script>
+ <script src="../../ve/ui/ve.ui.TargetToolbar.js"></script>
<script src="../../ve/ui/ve.ui.CommandRegistry.js"></script>
<script src="../../ve/ui/ve.ui.Trigger.js"></script>
<script src="../../ve/ui/ve.ui.TriggerRegistry.js"></script>
diff --git a/modules/ve/ui/ve.ui.SurfaceToolbar.js
b/modules/ve/ui/ve.ui.SurfaceToolbar.js
index 5c5a99f..70dbc6b 100644
--- a/modules/ve/ui/ve.ui.SurfaceToolbar.js
+++ b/modules/ve/ui/ve.ui.SurfaceToolbar.js
@@ -1,12 +1,12 @@
/*!
- * VisualEditor UserInterface Toolbar class.
+ * VisualEditor UserInterface SurfaceToolbar class.
*
* @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
* @license The MIT License (MIT); see LICENSE.txt
*/
/**
- * UserInterface toolbar.
+ * UserInterface surface toolbar.
*
* @class
* @extends ve.ui.Toolbar
@@ -85,7 +85,7 @@
/**
* Handle window resize events while toolbar floating is enabled.
*
- * @returns {jQuery.Event} e Window resize event
+ * @param {jQuery.Event} e Window resize event
*/
ve.ui.SurfaceToolbar.prototype.onWindowScroll = function () {
var scrollTop = this.$window.scrollTop();
@@ -104,7 +104,7 @@
* branch node in the root of the document being edited, at which point it
will stop just above it.
*
* @emits position
- * @returns {jQuery.Event} e Window scroll event
+ * @param {jQuery.Event} e Window scroll event
*/
ve.ui.SurfaceToolbar.prototype.onWindowResize = function () {
var update = {},
@@ -142,7 +142,7 @@
};
/**
- * Gets the surface the toolbar controls.
+ * Gets the surface which the toolbar controls.
*
* @returns {ve.ui.Surface} Surface being controlled
*/
diff --git a/modules/ve/ui/ve.ui.TargetToolbar.js
b/modules/ve/ui/ve.ui.TargetToolbar.js
new file mode 100644
index 0000000..f3cf10e
--- /dev/null
+++ b/modules/ve/ui/ve.ui.TargetToolbar.js
@@ -0,0 +1,40 @@
+/*!
+ * VisualEditor UserInterface TargetToolbar class.
+ *
+ * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/**
+ * UserInterface target toolbar.
+ *
+ * @class
+ * @extends ve.ui.SurfaceToolbar
+ *
+ * @constructor
+ * @param {ve.init.Target} target
+ * @param {ve.ui.Surface} surface
+ * @param {Object} [config] Config options
+ */
+ve.ui.TargetToolbar = function VeUiTargetToolbar( target, surface, options ) {
+ // Parent constructor
+ ve.ui.SurfaceToolbar.call( this, surface, options );
+
+ // Properties
+ this.target = target;
+};
+
+/* Inheritance */
+
+ve.inheritClass( ve.ui.TargetToolbar, ve.ui.SurfaceToolbar );
+
+/* Methods */
+
+/**
+ * Gets the target which the toolbar controls.
+ *
+ * @returns {ve.init.Target} Target being controlled
+ */
+ve.ui.TargetToolbar.prototype.getTarget = function () {
+ return this.target;
+};
--
To view, visit https://gerrit.wikimedia.org/r/83048
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I928316d9e23ac3f3de3e76c34ef0ac3d27855ab3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits