diff --git a/apps/presentationeditor/main/app/controller/DocumentHolder.js b/apps/presentationeditor/main/app/controller/DocumentHolder.js
index d0ac0406da..755e64a34e 100644
--- a/apps/presentationeditor/main/app/controller/DocumentHolder.js
+++ b/apps/presentationeditor/main/app/controller/DocumentHolder.js
@@ -117,6 +117,18 @@ define([
isHidden: true,
isVisible: false
};
+ me.eyedropperTip = {
+ toolTip: new Common.UI.Tooltip({
+ owner: this,
+ html: true,
+ cls: 'eyedropper-tooltip'
+ }),
+ isHidden: true,
+ isVisible: false,
+ eyedropperColor: null,
+ tipInterval: null,
+ isTipVisible: false
+ }
me.userTooltip = true;
me.wrapEvents = {
@@ -161,6 +173,7 @@ define([
/** coauthoring begin **/
me.userTipHide();
/** coauthoring end **/
+ me.hideEyedropper();
me.mode && me.mode.isDesktopApp && me.api && me.api.asc_onShowPopupWindow();
},
'modal:show': function(e){
@@ -173,6 +186,7 @@ define([
me.userTipHide();
/** coauthoring end **/
me.hideTips();
+ me.hideEyedropper();
me.onDocumentHolderResize();
},
'preview:show': function(e){
@@ -838,6 +852,9 @@ define([
this.screenTip.isVisible = false;
this.screenTip.toolTip.hide();
}
+ if (this.eyedropperTip.isHidden) {
+ this.hideEyedropper();
+ }
},
onMouseMove: function(moveData) {
@@ -896,6 +913,57 @@ define([
screenTip.toolTip.getBSTip().$tip.css({top: showPoint[1] + 'px', left: showPoint[0] + 'px'});
}
}
+ else if (moveData.get_Type()==Asc.c_oAscMouseMoveDataTypes.Eyedropper) {
+ if (me.eyedropperTip.isTipVisible) {
+ me.eyedropperTip.isTipVisible = false;
+ me.eyedropperTip.toolTip.hide();
+ }
+
+ var color = moveData.get_EyedropperColor().asc_getColor(),
+ r = color.get_r(),
+ g = color.get_g(),
+ b = color.get_b(),
+ hex = Common.Utils.ThemeColor.getHexColor(r,g,b);
+ if (!me.eyedropperTip.eyedropperColor) {
+ var colorEl = $(document.createElement("div"));
+ colorEl.addClass('eyedropper-color');
+ colorEl.appendTo(document.body);
+ me.eyedropperTip.eyedropperColor = colorEl;
+ $('#id_main_view').on('mouseleave', _.bind(me.hideEyedropper, me));
+ }
+ me.eyedropperTip.eyedropperColor.css({
+ backgroundColor: '#' + hex,
+ left: (moveData.get_X() + me._XY[0] + 23) + 'px',
+ top: (moveData.get_Y() + me._XY[1] - 53) + 'px'
+ });
+ me.eyedropperTip.isVisible = true;
+
+ if (me.eyedropperTip.tipInterval) {
+ clearInterval(me.eyedropperTip.tipInterval);
+ }
+ me.eyedropperTip.tipInterval = setInterval(function () {
+ clearInterval(me.eyedropperTip.tipInterval);
+ if (me.eyedropperTip.isVisible) {
+ ToolTip = '
RGB(' + r + ',' + g + ',' + b + ')
' +
+ '' + moveData.get_EyedropperColor().asc_getName() + '
';
+ me.eyedropperTip.toolTip.setTitle(ToolTip);
+ me.eyedropperTip.isTipVisible = true;
+ me.eyedropperTip.toolTip.show([-10000, -10000]);
+ me.eyedropperTip.tipWidth = me.eyedropperTip.toolTip.getBSTip().$tip.width();
+ showPoint = [moveData.get_X(), moveData.get_Y()];
+ showPoint[1] += (me._XY[1] - 57);
+ showPoint[0] += (me._XY[0] + 58);
+ if (showPoint[0] + me.eyedropperTip.tipWidth > me._BodyWidth ) {
+ showPoint[0] = showPoint[0] - me.eyedropperTip.tipWidth - 40;
+ }
+ me.eyedropperTip.toolTip.getBSTip().$tip.css({
+ top: showPoint[1] + 'px',
+ left: showPoint[0] + 'px'
+ });
+ }
+ }, 800);
+ me.eyedropperTip.isHidden = false;
+ }
/** coauthoring begin **/
else if (moveData.get_Type()==2 && me.mode.isEdit && me.isUserVisible(moveData.get_UserId())) { // 2 - locked object
var src;
@@ -972,6 +1040,17 @@ define([
/** coauthoring end **/
},
+ hideEyedropper: function () {
+ if (this.eyedropperTip.isVisible) {
+ this.eyedropperTip.isVisible = false;
+ this.eyedropperTip.eyedropperColor.css({left: '-1000px', top: '-1000px'});
+ }
+ if (this.eyedropperTip.isTipVisible) {
+ this.eyedropperTip.isTipVisible = false;
+ this.eyedropperTip.toolTip.hide();
+ }
+ },
+
onDialogAddHyperlink: function() {
var win, props, text;
var me = this;
diff --git a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js
index ff5bc30466..316938f14a 100644
--- a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js
+++ b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js
@@ -109,6 +109,9 @@ define([
input_msg: {},
foreignSelect: {
ttHeight: 20
+ },
+ eyedropper: {
+ isHidden: true
}
};
me.mouse = {};
@@ -1516,6 +1519,17 @@ define([
}
},
+ hideEyedropperTip: function () {
+ if (!this.tooltips.eyedropper.isHidden) {
+ this.tooltips.eyedropper.color.css({left: '-1000px', top: '-1000px'});
+ if (this.tooltips.eyedropper.ref) {
+ this.tooltips.eyedropper.ref.hide();
+ this.tooltips.eyedropper.ref = undefined;
+ }
+ this.tooltips.eyedropper.isHidden = true;
+ }
+ },
+
onApiMouseMove: function(dataarray) {
if (!this._isFullscreenMenu && dataarray.length) {
var index_hyperlink,
@@ -1526,7 +1540,8 @@ define([
index_column, index_row,
index_filter,
index_slicer,
- index_foreign;
+ index_foreign,
+ index_eyedropper;
for (var i = dataarray.length; i > 0; i--) {
switch (dataarray[i-1].asc_getType()) {
case Asc.c_oAscMouseMoveType.Hyperlink:
@@ -1555,6 +1570,9 @@ define([
case Asc.c_oAscMouseMoveType.ForeignSelect:
index_foreign = i;
break;
+ case Asc.c_oAscMouseMoveType.Eyedropper:
+ index_eyedropper = i;
+ break;
}
}
@@ -1569,6 +1587,7 @@ define([
filterTip = me.tooltips.filter,
slicerTip = me.tooltips.slicer,
foreignSelect = me.tooltips.foreignSelect,
+ eyedropperTip = me.tooltips.eyedropper,
pos = [
me.documentHolder.cmpEl.offset().left - $(window).scrollLeft(),
me.documentHolder.cmpEl.offset().top - $(window).scrollTop()
@@ -1626,6 +1645,9 @@ define([
filterTip.isHidden = true;
}
}
+ if (!index_eyedropper) {
+ me.hideEyedropperTip();
+ }
// show tooltips
if (index_hyperlink) {
@@ -1937,6 +1959,72 @@ define([
});
}
}
+
+ if (index_eyedropper) {
+ eyedropperTip.isHidden = false;
+ if (eyedropperTip.ref) {
+ eyedropperTip.ref.hide();
+ eyedropperTip.ref = undefined;
+ }
+
+ var data = dataarray[index_eyedropper-1],
+ color = data.asc_getColor(),
+ r = color.get_r(),
+ g = color.get_g(),
+ b = color.get_b();
+ if (r) {
+ var hex = Common.Utils.ThemeColor.getHexColor(r, g, b),
+ name = color.asc_getName();
+
+ if (!eyedropperTip.color) {
+ var colorEl = $(document.createElement("div"));
+ colorEl.addClass('eyedropper-color');
+ colorEl.appendTo(document.body);
+ eyedropperTip.color = colorEl;
+ $('#ws-canvas-outer').on('mouseleave', _.bind(me.hideEyedropperTip, me));
+ }
+ eyedropperTip.color.css({
+ backgroundColor: '#' + hex,
+ left: (data.asc_getX() + pos[0] + 23) + 'px',
+ top: (data.asc_getY() + pos[1] - 53) + 'px'
+ });
+ if (eyedropperTip.tipInterval) {
+ clearInterval(eyedropperTip.tipInterval);
+ }
+ eyedropperTip.tipInterval = setInterval(function () {
+ clearInterval(eyedropperTip.tipInterval);
+ if (!me.tooltips.eyedropper.isHidden) {
+ if (!eyedropperTip.parentEl) {
+ eyedropperTip.parentEl = $('');
+ me.documentHolder.cmpEl.append(eyedropperTip.parentEl);
+ }
+
+ var title = 'RGB(' + r + ',' + g + ',' + b + ')
' +
+ '' + name + '
';
+ if (!eyedropperTip.ref) {
+ eyedropperTip.ref = new Common.UI.Tooltip({
+ owner : eyedropperTip.parentEl,
+ html : true,
+ title : title,
+ cls : 'eyedropper-tooltip'
+ });
+ }
+ eyedropperTip.ref.show([-10000, -10000]);
+ eyedropperTip.tipWidth = eyedropperTip.ref.getBSTip().$tip.width();
+ showPoint = [data.asc_getX(), data.asc_getY()];
+ showPoint[1] += (pos[1] - 57);
+ showPoint[0] += (pos[0] + 58);
+ if (showPoint[0] + eyedropperTip.tipWidth > me.tooltips.coauth.bodyWidth ) {
+ showPoint[0] = showPoint[0] - eyedropperTip.tipWidth - 40;
+ }
+ eyedropperTip.ref.getBSTip().$tip.css({
+ top: showPoint[1] + 'px',
+ left: showPoint[0] + 'px'
+ });
+ }
+ }, 800);
+ }
+ }
}
},