Robmoen has uploaded a new change for review.
https://gerrit.wikimedia.org/r/63243
Change subject: Modify context to overlay $focusable element in focusableNode
......................................................................
Modify context to overlay $focusable element in focusableNode
This is only the first part of having a menu button tool inside or
over focusable nodes rather than having the standard
context meun appear.
Change-Id: I4b25d33f64b4bcb8a3ecfd7e9728f54a2d4886f3
---
M modules/ve/ce/ve.ce.FocusableNode.js
M modules/ve/ce/ve.ce.Surface.js
M modules/ve/ui/dialogs/ve.ui.MediaDialog.js
M modules/ve/ui/styles/ve.ui.Context.css
M modules/ve/ui/ve.ui.Context.js
M modules/ve/ui/widgets/ve.ui.PopupWidget.js
6 files changed, 51 insertions(+), 9 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/43/63243/1
diff --git a/modules/ve/ce/ve.ce.FocusableNode.js
b/modules/ve/ce/ve.ce.FocusableNode.js
index d3ebe49..c95e99a 100644
--- a/modules/ve/ce/ve.ce.FocusableNode.js
+++ b/modules/ve/ce/ve.ce.FocusableNode.js
@@ -13,9 +13,10 @@
*
* @constructor
*/
-ve.ce.FocusableNode = function VeCeFocusableNode() {
+ve.ce.FocusableNode = function VeCeFocusableNode( $focusable ) {
// Properties
this.focused = false;
+ this.$focusable = $focusable || this.$;
};
/* Events */
diff --git a/modules/ve/ce/ve.ce.Surface.js b/modules/ve/ce/ve.ce.Surface.js
index 52ae182..46da97d 100644
--- a/modules/ve/ce/ve.ce.Surface.js
+++ b/modules/ve/ce/ve.ce.Surface.js
@@ -175,8 +175,8 @@
};
} else {
return {
- start: sel.getStartDocumentPos(),
- end: sel.getEndDocumentPos()
+ 'start': sel.getStartDocumentPos(),
+ 'end': sel.getEndDocumentPos()
};
}
};
diff --git a/modules/ve/ui/dialogs/ve.ui.MediaDialog.js
b/modules/ve/ui/dialogs/ve.ui.MediaDialog.js
index b3dedd9..8b08286 100644
--- a/modules/ve/ui/dialogs/ve.ui.MediaDialog.js
+++ b/modules/ve/ui/dialogs/ve.ui.MediaDialog.js
@@ -30,7 +30,16 @@
ve.ui.MediaDialog.static.icon = 'picture';
-ve.ui.MediaDialog.static.modelClasses = [ ve.dm.MWInlineImageNode ];
+ve.ui.MediaDialog.static.modelClasses = [ ve.dm.ImageNode ];
+
+/* Methods */
+
+/**
+ * Handle frame ready events.
+ *
+ * @method
+ */
+//ve.ui.MediaDialog.prototype.initialize = function () {};
/* Registration */
diff --git a/modules/ve/ui/styles/ve.ui.Context.css
b/modules/ve/ui/styles/ve.ui.Context.css
index e542b32..c664607 100644
--- a/modules/ve/ui/styles/ve.ui.Context.css
+++ b/modules/ve/ui/styles/ve.ui.Context.css
@@ -26,7 +26,6 @@
.ve-ui-context-toolbar .ve-ui-buttonTool,
.ve-ui-context-toolbar .ve-ui-buttonTool:hover {
-
border: none;
}
@@ -34,3 +33,18 @@
.ve-ui-context-toolbar .ve-ui-buttonTool-active {
background-image: none;
}
+
+.ve-ui-context-embed .ve-ui-popupWidget-callout {
+ display: none;
+}
+
+.ve-ui-context-embed .ve-ui-popupWidget-body {
+ border: 0;
+ margin-top: 0;
+ background: none;
+ box-shadow: none;
+}
+
+.ve-ui-context-embed .ve-ui-context-menu {
+ right: 0;
+}
diff --git a/modules/ve/ui/ve.ui.Context.js b/modules/ve/ui/ve.ui.Context.js
index 9175d14..c4c528f 100644
--- a/modules/ve/ui/ve.ui.Context.js
+++ b/modules/ve/ui/ve.ui.Context.js
@@ -250,13 +250,22 @@
*/
ve.ui.Context.prototype.updateDimensions = function ( transition ) {
var position, $container,
- inspector = this.inspectors.getCurrent();
+ inspector = this.inspectors.getCurrent(),
+ focusedNode = this.surface.getView().focusedNode;
// Get cursor position
position = ve.ce.Surface.getSelectionRect();
- position = position && position.end;
+
if ( position ) {
- $container = inspector ? this.inspectors.$ : this.$menu;
+ if ( this.$.hasClass( 've-ui-context-embed' ) ) {
+ $container = focusedNode.$focusable;
+ position = { 'x': $container.offset().left, 'y':
$container.offset().top } ;
+ this.popup.align = 'none';
+ } else {
+ position = position && position.end;
+ $container = inspector ? this.inspectors.$ : this.$menu;
+ this.popup.align = 'center';
+ }
this.$.css( { 'left': position.x, 'top': position.y } );
this.popup.display(
position.x,
@@ -277,7 +286,8 @@
* @chainable
*/
ve.ui.Context.prototype.show = function ( transition ) {
- var inspector = this.inspectors.getCurrent();
+ var inspector = this.inspectors.getCurrent(),
+ focusedNode = this.surface.getView().focusedNode;
if ( !this.showing ) {
this.showing = true;
@@ -297,6 +307,11 @@
}, this ), 200 );
} else {
this.inspectors.$.hide();
+ if ( focusedNode ) {
+ this.$.addClass( 've-ui-context-embed' );
+ } else {
+ this.$.removeClass( 've-ui-context-embed' );
+ }
this.$menu.show();
}
diff --git a/modules/ve/ui/widgets/ve.ui.PopupWidget.js
b/modules/ve/ui/widgets/ve.ui.PopupWidget.js
index 2db41a3..45ddaca 100644
--- a/modules/ve/ui/widgets/ve.ui.PopupWidget.js
+++ b/modules/ve/ui/widgets/ve.ui.PopupWidget.js
@@ -128,6 +128,9 @@
// Inset callout from right
left = -width + padding;
break;
+ case 'none':
+ left = 0;
+ break;
default:
// Place callout in center
left = -width / 2;
--
To view, visit https://gerrit.wikimedia.org/r/63243
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4b25d33f64b4bcb8a3ecfd7e9728f54a2d4886f3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Robmoen <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits