Trevor Parscal has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/90377


Change subject: Add ve.ui.PopupTool
......................................................................

Add ve.ui.PopupTool

Tool that launches a popup when clicked.

Change-Id: Ie35b51f8160ad3fb844491e2799656413d4029c0
---
M VisualEditor.php
M demos/ve/index.php
M modules/ve/test/index.php
M modules/ve/ui/styles/ve.ui.Tool.css
A modules/ve/ui/tools/ve.ui.PopupTool.js
5 files changed, 80 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor 
refs/changes/77/90377/1

diff --git a/VisualEditor.php b/VisualEditor.php
index 82a55d9..f799010 100644
--- a/VisualEditor.php
+++ b/VisualEditor.php
@@ -522,6 +522,7 @@
                        've/ui/tools/ve.ui.IndentationTool.js',
                        've/ui/tools/ve.ui.InspectorTool.js',
                        've/ui/tools/ve.ui.ListTool.js',
+                       've/ui/tools/ve.ui.PopupTool.js',
                        've/ui/toolgroups/ve.ui.BarToolGroup.js',
                        've/ui/toolgroups/ve.ui.PopupToolGroup.js',
                        've/ui/toolgroups/ve.ui.ListToolGroup.js',
diff --git a/demos/ve/index.php b/demos/ve/index.php
index 420233e..df48922 100644
--- a/demos/ve/index.php
+++ b/demos/ve/index.php
@@ -294,6 +294,7 @@
                <script 
src="../../modules/ve/ui/tools/ve.ui.IndentationTool.js"></script>
                <script 
src="../../modules/ve/ui/tools/ve.ui.InspectorTool.js"></script>
                <script 
src="../../modules/ve/ui/tools/ve.ui.ListTool.js"></script>
+               <script 
src="../../modules/ve/ui/tools/ve.ui.PopupTool.js"></script>
                <script 
src="../../modules/ve/ui/toolgroups/ve.ui.BarToolGroup.js"></script>
                <script 
src="../../modules/ve/ui/toolgroups/ve.ui.PopupToolGroup.js"></script>
                <script 
src="../../modules/ve/ui/toolgroups/ve.ui.ListToolGroup.js"></script>
diff --git a/modules/ve/test/index.php b/modules/ve/test/index.php
index cdaf2b8..f70e7f7 100644
--- a/modules/ve/test/index.php
+++ b/modules/ve/test/index.php
@@ -238,6 +238,7 @@
                <script 
src="../../ve/ui/tools/ve.ui.IndentationTool.js"></script>
                <script src="../../ve/ui/tools/ve.ui.InspectorTool.js"></script>
                <script src="../../ve/ui/tools/ve.ui.ListTool.js"></script>
+               <script src="../../ve/ui/tools/ve.ui.PopupTool.js"></script>
                <script 
src="../../ve/ui/toolgroups/ve.ui.BarToolGroup.js"></script>
                <script 
src="../../ve/ui/toolgroups/ve.ui.PopupToolGroup.js"></script>
                <script 
src="../../ve/ui/toolgroups/ve.ui.ListToolGroup.js"></script>
diff --git a/modules/ve/ui/styles/ve.ui.Tool.css 
b/modules/ve/ui/styles/ve.ui.Tool.css
index 5c307cf..3197bee 100644
--- a/modules/ve/ui/styles/ve.ui.Tool.css
+++ b/modules/ve/ui/styles/ve.ui.Tool.css
@@ -44,3 +44,15 @@
 .ve-ui-menuToolGroup [rel=preformatted] .ve-ui-labeledElement-label {
        font-family: monospace, "Courier New";
 }
+
+/* ve.ui.PopupTool */
+
+.ve-ui-popupTool .ve-ui-popupWidget {
+       margin-left: 1.25em;
+       font-size: 0.8em;
+}
+
+.ve-ui-popupTool .ve-ui-popupWidget-popup,
+.ve-ui-popupTool .ve-ui-popupWidget-tail {
+       z-index: 4;
+}
diff --git a/modules/ve/ui/tools/ve.ui.PopupTool.js 
b/modules/ve/ui/tools/ve.ui.PopupTool.js
new file mode 100644
index 0000000..391fa91
--- /dev/null
+++ b/modules/ve/ui/tools/ve.ui.PopupTool.js
@@ -0,0 +1,65 @@
+/*!
+ * VisualEditor UserInterface PopupTool classes.
+ *
+ * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/**
+ * UserInterface list tool.
+ *
+ * @abstract
+ * @class
+ * @extends ve.ui.Tool
+ * @mixins ve.ui.PopuppableElement
+ *
+ * @constructor
+ * @param {ve.ui.Toolbar} toolbar
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.PopupTool = function VeUiPopupTool( toolbar, config ) {
+       // Parent constructor
+       ve.ui.Tool.call( this, toolbar, config );
+
+       // Mixin constructors
+       ve.ui.PopuppableElement.call( this, config );
+
+       // Initialization
+       this.$
+               .addClass( 've-ui-popupTool' )
+               .append( this.popup.$ );
+};
+
+/* Inheritance */
+
+ve.inheritClass( ve.ui.PopupTool, ve.ui.Tool );
+
+ve.mixinClass( ve.ui.PopupTool, ve.ui.PopuppableElement );
+
+/* Methods */
+
+/**
+ * Handle the tool being selected.
+ *
+ * @inheritdoc
+ */
+ve.ui.PopupTool.prototype.onSelect = function () {
+       if ( !this.disabled ) {
+               if ( this.popup.isVisible() ) {
+                       this.hidePopup();
+               } else {
+                       this.showPopup();
+               }
+       }
+       this.setActive( false );
+       return false;
+};
+
+/**
+ * Handle the toolbar state being updated.
+ *
+ * @inheritdoc
+ */
+ve.ui.PopupTool.prototype.onUpdateState = function () {
+       this.setActive( false );
+};

-- 
To view, visit https://gerrit.wikimedia.org/r/90377
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie35b51f8160ad3fb844491e2799656413d4029c0
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Trevor Parscal <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to