diff --git a/apps/presentationeditor/main/app/view/Transitions.js b/apps/presentationeditor/main/app/view/Transitions.js index e92430903a..6d07585133 100644 --- a/apps/presentationeditor/main/app/view/Transitions.js +++ b/apps/presentationeditor/main/app/view/Transitions.js @@ -129,9 +129,10 @@ define([ {title: this.textUnCover, imageUrl: "btn-transition-uncover", value: Asc.c_oAscSlideTransitionTypes.UnCover, id: Common.UI.getId()}, {title: this.textCover, imageUrl: "btn-transition-cover", value: Asc.c_oAscSlideTransitionTypes.Cover, id: Common.UI.getId()}, {title: this.textClock, imageUrl: "btn-transition-clock", value: Asc.c_oAscSlideTransitionTypes.Clock, id: Common.UI.getId()}, - {title: this.textZoom, imageUrl: "btn-transition-zoom", value: Asc.c_oAscSlideTransitionTypes.Zoom, id: Common.UI.getId(), cls: 'last-item'} + {title: this.textZoom, imageUrl: "btn-transition-zoom", value: Asc.c_oAscSlideTransitionTypes.Zoom, id: Common.UI.getId()}, + {title: this.textMorph, imageUrl: "btn-transition-morph", value: Asc.c_oAscSlideTransitionTypes.Morph, id: Common.UI.getId(),cls: 'last-item'} ]; - this._arrEffectName.forEach(function(item) { + this._arrEffectName.forEach(function (item) { item.tip = item.title; }); @@ -144,8 +145,8 @@ define([ style: 'min-width:108px;', itemTemplate: _.template([ '
', - '
', - '
<%= title %>
', + '
', + '
<%= title %>
', '
' ].join('')), enableKeyEvents: true, @@ -199,7 +200,8 @@ define([ iconCls: 'toolbar__icon icon btn-transition-none', scaling: false, menu: new Common.UI.Menu({ - items: this.createParametersMenuItems()}), + items: this.createParametersMenuItems() + }), lock: [_set.slideDeleted, _set.noSlides, _set.disableOnStart, _set.transitLock], dataHint: '1', dataHintDirection: 'bottom', @@ -288,39 +290,40 @@ define([ return this; }, - createParametersMenuItems: function() - { + createParametersMenuItems: function () { var arrEffectType = [ - {caption: this.textSmoothly, value: Asc.c_oAscSlideTransitionParams.Fade_Smoothly}, - {caption: this.textBlack, value: Asc.c_oAscSlideTransitionParams.Fade_Through_Black}, - {caption: this.textLeft, value: Asc.c_oAscSlideTransitionParams.Param_Left}, - {caption: this.textTop, value: Asc.c_oAscSlideTransitionParams.Param_Top}, - {caption: this.textRight, value: Asc.c_oAscSlideTransitionParams.Param_Right}, - {caption: this.textBottom, value: Asc.c_oAscSlideTransitionParams.Param_Bottom}, - {caption: this.textTopLeft, value: Asc.c_oAscSlideTransitionParams.Param_TopLeft}, - {caption: this.textTopRight, value: Asc.c_oAscSlideTransitionParams.Param_TopRight}, - {caption: this.textBottomLeft, value: Asc.c_oAscSlideTransitionParams.Param_BottomLeft}, - {caption: this.textBottomRight, value: Asc.c_oAscSlideTransitionParams.Param_BottomRight}, - {caption: this.textVerticalIn, value: Asc.c_oAscSlideTransitionParams.Split_VerticalIn}, - {caption: this.textVerticalOut, value: Asc.c_oAscSlideTransitionParams.Split_VerticalOut}, - {caption: this.textHorizontalIn, value: Asc.c_oAscSlideTransitionParams.Split_HorizontalIn}, - {caption: this.textHorizontalOut, value: Asc.c_oAscSlideTransitionParams.Split_HorizontalOut}, - {caption: this.textClockwise, value: Asc.c_oAscSlideTransitionParams.Clock_Clockwise}, - {caption: this.textCounterclockwise, value: Asc.c_oAscSlideTransitionParams.Clock_Counterclockwise}, - {caption: this.textWedge, value: Asc.c_oAscSlideTransitionParams.Clock_Wedge}, - {caption: this.textZoomIn, value: Asc.c_oAscSlideTransitionParams.Zoom_In}, - {caption: this.textZoomOut, value: Asc.c_oAscSlideTransitionParams.Zoom_Out}, - {caption: this.textZoomRotate, value: Asc.c_oAscSlideTransitionParams.Zoom_AndRotate} - ]; + {caption: this.textSmoothly, value: Asc.c_oAscSlideTransitionParams.Fade_Smoothly}, + {caption: this.textBlack, value: Asc.c_oAscSlideTransitionParams.Fade_Through_Black}, + {caption: this.textLeft, value: Asc.c_oAscSlideTransitionParams.Param_Left}, + {caption: this.textTop, value: Asc.c_oAscSlideTransitionParams.Param_Top}, + {caption: this.textRight, value: Asc.c_oAscSlideTransitionParams.Param_Right}, + {caption: this.textBottom, value: Asc.c_oAscSlideTransitionParams.Param_Bottom}, + {caption: this.textTopLeft, value: Asc.c_oAscSlideTransitionParams.Param_TopLeft}, + {caption: this.textTopRight, value: Asc.c_oAscSlideTransitionParams.Param_TopRight}, + {caption: this.textBottomLeft, value: Asc.c_oAscSlideTransitionParams.Param_BottomLeft}, + {caption: this.textBottomRight, value: Asc.c_oAscSlideTransitionParams.Param_BottomRight}, + {caption: this.textVerticalIn, value: Asc.c_oAscSlideTransitionParams.Split_VerticalIn}, + {caption: this.textVerticalOut, value: Asc.c_oAscSlideTransitionParams.Split_VerticalOut}, + {caption: this.textHorizontalIn, value: Asc.c_oAscSlideTransitionParams.Split_HorizontalIn}, + {caption: this.textHorizontalOut, value: Asc.c_oAscSlideTransitionParams.Split_HorizontalOut}, + {caption: this.textClockwise, value: Asc.c_oAscSlideTransitionParams.Clock_Clockwise}, + {caption: this.textCounterclockwise, value: Asc.c_oAscSlideTransitionParams.Clock_Counterclockwise}, + {caption: this.textWedge, value: Asc.c_oAscSlideTransitionParams.Clock_Wedge}, + {caption: this.textZoomIn, value: Asc.c_oAscSlideTransitionParams.Zoom_In}, + {caption: this.textZoomOut, value: Asc.c_oAscSlideTransitionParams.Zoom_Out}, + {caption: this.textZoomRotate, value: Asc.c_oAscSlideTransitionParams.Zoom_AndRotate}, + {caption: this.textMorphObjects, value: Asc.c_oAscSlideTransitionParams.Morph_Objects}, + {caption: this.textMorphWord, value: Asc.c_oAscSlideTransitionParams.Morph_Words}, + {caption: this.textMorphLetters, value: Asc.c_oAscSlideTransitionParams.Morph_Letters} + ]; var itemsMenu = []; _.each(arrEffectType, function (item) { itemsMenu.push({ - caption: item.caption, - value: item.value, - checkable: true, - toggleGroup: 'effects' - }); + caption: item.caption, value: item.value, + checkable: true, + toggleGroup: 'effects' + }); }); return itemsMenu; }, @@ -329,7 +332,7 @@ define([ var me = this; (new Promise(function (accept, reject) { accept(); - })).then(function() { + })).then(function () { setEvents.call(me); }); @@ -347,8 +350,7 @@ define([ return this.$el; }, - renderComponent: function (compid, obj) - { + renderComponent: function (compid, obj) { var element = this.$el.find(compid); element.parent().append(obj.el); }, @@ -366,12 +368,11 @@ define([ setDisabled: function (state) { this.lockedControls && this.lockedControls.forEach(function (button) { - button.setDisabled(state); + button.setDisabled(state); }, this); }, - setMenuParameters: function (effect, value) - { + setMenuParameters: function (effect, value) { var minMax = [-1, -1]; switch (effect) { case Asc.c_oAscSlideTransitionTypes.Fade: @@ -398,24 +399,26 @@ define([ case Asc.c_oAscSlideTransitionTypes.Zoom: minMax = [17, 19]; break; + case Asc.c_oAscSlideTransitionTypes.Morph: + minMax = [20, 22]; + break; } var selectedElement; _.each(this.btnParameters.menu.items, function (element, index) { - if ((index >= minMax[0])&&(index <= minMax[1])) { + if ((index >= minMax[0]) && (index <= minMax[1])) { element.setVisible(true); if (value != undefined) { if (value == element.value) selectedElement = element; } - } - else + } else element.setVisible(false); }); if (selectedElement == undefined) selectedElement = this.btnParameters.menu.items[minMax[0]]; - + if (effect != Asc.c_oAscSlideTransitionTypes.None) selectedElement.setChecked(true); @@ -426,10 +429,9 @@ define([ this.numDuration.setDisabled(effect === Asc.c_oAscSlideTransitionTypes.None); this.lblDuration.setDisabled(effect === Asc.c_oAscSlideTransitionTypes.None); } - return (selectedElement)?selectedElement.value:-1; + return (selectedElement) ? selectedElement.value : -1; }, - txtSec: 's', txtPreview: 'Preview', txtParameters: 'Parameters', @@ -446,7 +448,7 @@ define([ textCover: 'Cover', textClock: 'Clock', textZoom: 'Zoom', - + textMorph: 'Morph', textSmoothly: 'Smoothly', textBlack: 'Through Black', textLeft: 'Left', @@ -466,7 +468,10 @@ define([ textWedge: 'Wedge', textZoomIn: 'Zoom In', textZoomOut: 'Zoom Out', - textZoomRotate: 'Zoom and Rotate' + textZoomRotate: 'Zoom and Rotate', + textMorphObjects: 'Objects', + textMorphWord: 'Words', + textMorphLetters: 'Letters' } }()), PE.Views.Transitions || {})); diff --git a/apps/presentationeditor/main/locale/en.json b/apps/presentationeditor/main/locale/en.json index 2abc57e39d..9fcd6b88e2 100644 --- a/apps/presentationeditor/main/locale/en.json +++ b/apps/presentationeditor/main/locale/en.json @@ -2712,6 +2712,10 @@ "PE.Views.Transitions.textHorizontalIn": "Horizontal In", "PE.Views.Transitions.textHorizontalOut": "Horizontal Out", "PE.Views.Transitions.textLeft": "From Left", + "PE.Views.Transitions.textMorph": "Morph", + "PE.Views.Transitions.textMorphLetters": "Letters", + "PE.Views.Transitions.textMorphObjects": "Objects", + "PE.Views.Transitions.textMorphWord": "Words", "PE.Views.Transitions.textNone": "None", "PE.Views.Transitions.textPush": "Push", "PE.Views.Transitions.textRight": "From Right", diff --git a/apps/presentationeditor/main/resources/img/toolbar/1.25x/big/btn-transition-morph.png b/apps/presentationeditor/main/resources/img/toolbar/1.25x/big/btn-transition-morph.png new file mode 100644 index 0000000000..f1ca70a3e6 Binary files /dev/null and b/apps/presentationeditor/main/resources/img/toolbar/1.25x/big/btn-transition-morph.png differ diff --git a/apps/presentationeditor/main/resources/img/toolbar/1.5x/big/btn-transition-morph.png b/apps/presentationeditor/main/resources/img/toolbar/1.5x/big/btn-transition-morph.png new file mode 100644 index 0000000000..3f0795916d Binary files /dev/null and b/apps/presentationeditor/main/resources/img/toolbar/1.5x/big/btn-transition-morph.png differ diff --git a/apps/presentationeditor/main/resources/img/toolbar/1.75x/big/btn-transition-morph.png b/apps/presentationeditor/main/resources/img/toolbar/1.75x/big/btn-transition-morph.png new file mode 100644 index 0000000000..08f2f2c77d Binary files /dev/null and b/apps/presentationeditor/main/resources/img/toolbar/1.75x/big/btn-transition-morph.png differ diff --git a/apps/presentationeditor/main/resources/img/toolbar/1x/big/btn-transition-morph.png b/apps/presentationeditor/main/resources/img/toolbar/1x/big/btn-transition-morph.png new file mode 100644 index 0000000000..11e8acd5df Binary files /dev/null and b/apps/presentationeditor/main/resources/img/toolbar/1x/big/btn-transition-morph.png differ diff --git a/apps/presentationeditor/main/resources/img/toolbar/2.5x/big/btn-transition-morph.svg b/apps/presentationeditor/main/resources/img/toolbar/2.5x/big/btn-transition-morph.svg new file mode 100644 index 0000000000..def4da0373 --- /dev/null +++ b/apps/presentationeditor/main/resources/img/toolbar/2.5x/big/btn-transition-morph.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/presentationeditor/main/resources/img/toolbar/2x/big/btn-transition-morph.png b/apps/presentationeditor/main/resources/img/toolbar/2x/big/btn-transition-morph.png new file mode 100644 index 0000000000..4103fcc1ef Binary files /dev/null and b/apps/presentationeditor/main/resources/img/toolbar/2x/big/btn-transition-morph.png differ diff --git a/apps/presentationeditor/mobile/src/view/edit/EditSlide.jsx b/apps/presentationeditor/mobile/src/view/edit/EditSlide.jsx index 3f4c7b2cd9..7069055b70 100644 --- a/apps/presentationeditor/mobile/src/view/edit/EditSlide.jsx +++ b/apps/presentationeditor/mobile/src/view/edit/EditSlide.jsx @@ -133,7 +133,8 @@ const PageTransition = props => { {displayValue: _t.textUnCover, value: Asc.c_oAscSlideTransitionTypes.UnCover}, {displayValue: _t.textCover, value: Asc.c_oAscSlideTransitionTypes.Cover}, {displayValue: _t.textClock, value: Asc.c_oAscSlideTransitionTypes.Clock}, - {displayValue: _t.textZoom, value: Asc.c_oAscSlideTransitionTypes.Zoom} + {displayValue: _t.textZoom, value: Asc.c_oAscSlideTransitionTypes.Zoom}, + {displayValue: _t.textZoom, value: Asc.c_oAscSlideTransitionTypes.Morph} ]; const _arrEffectType = [ {displayValue: _t.textSmoothly, value: Asc.c_oAscSlideTransitionParams.Fade_Smoothly}, @@ -155,7 +156,10 @@ const PageTransition = props => { {displayValue: _t.textWedge, value: Asc.c_oAscSlideTransitionParams.Clock_Wedge}, {displayValue: _t.textZoomIn, value: Asc.c_oAscSlideTransitionParams.Zoom_In}, {displayValue: _t.textZoomOut, value: Asc.c_oAscSlideTransitionParams.Zoom_Out}, - {displayValue: _t.textZoomRotate, value: Asc.c_oAscSlideTransitionParams.Zoom_AndRotate} + {displayValue: _t.textZoomRotate, value: Asc.c_oAscSlideTransitionParams.Zoom_AndRotate}, + {displayValue: _t.textMorphObjects, value: Asc.c_oAscSlideTransitionParams.Morph_Objects}, + {displayValue: _t.textMorphWord, value: Asc.c_oAscSlideTransitionParams.Morph_Words}, + {displayValue: _t.textMorphLetters, value: Asc.c_oAscSlideTransitionParams.Morph_Letters} ]; let _arrCurrentEffectTypes = []; @@ -185,7 +189,10 @@ const PageTransition = props => { _arrCurrentEffectTypes = _arrEffectType.slice(14, 17); break; case Asc.c_oAscSlideTransitionTypes.Zoom: - _arrCurrentEffectTypes = _arrEffectType.slice(17); + _arrCurrentEffectTypes = _arrEffectType.slice(17,20); + break; + case Asc.c_oAscSlideTransitionTypes.Morph: + _arrCurrentEffectTypes = _arrEffectType.slice(20); break; } return (_arrCurrentEffectTypes.length > 0) ? _arrCurrentEffectTypes[0].value : -1;