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