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

Reply via email to