mirror of https://github.com/artf/grapesjs.git
12 changed files with 1170 additions and 856 deletions
@ -1,32 +1,32 @@ |
|||
define(function() { |
|||
return { |
|||
return { |
|||
|
|||
run: function(editor, sender, opts) { |
|||
var el = (opts && opts.el) || ''; |
|||
var canvas = editor.Canvas; |
|||
var canvasResizer = this.canvasResizer; |
|||
var options = opts.options || {}; |
|||
run: function(editor, sender, opts) { |
|||
var el = (opts && opts.el) || ''; |
|||
var canvas = editor.Canvas; |
|||
var canvasResizer = this.canvasResizer; |
|||
var options = opts.options || {}; |
|||
|
|||
// Create the resizer for the canvas if not yet created
|
|||
if(!canvasResizer) { |
|||
var canvasView = canvas.getCanvasView(); |
|||
options.ratioDefault = 1; |
|||
options.appendTo = canvas.getResizerEl(); |
|||
options.prefix = editor.getConfig().stylePrefix; |
|||
options.posFetcher = canvasView.getElementPos.bind(canvasView); |
|||
options.mousePosFetcher = canvas.getMouseRelativePos; |
|||
this.canvasResizer = editor.Utils.Resizer.init(options); |
|||
canvasResizer = this.canvasResizer; |
|||
} |
|||
// Create the resizer for the canvas if not yet created
|
|||
if(!canvasResizer) { |
|||
var canvasView = canvas.getCanvasView(); |
|||
options.ratioDefault = 1; |
|||
options.appendTo = canvas.getResizerEl(); |
|||
options.prefix = editor.getConfig().stylePrefix; |
|||
options.posFetcher = canvasView.getElementPos.bind(canvasView); |
|||
options.mousePosFetcher = canvas.getMouseRelativePos; |
|||
this.canvasResizer = editor.Utils.Resizer.init(options); |
|||
canvasResizer = this.canvasResizer; |
|||
} |
|||
|
|||
canvasResizer.setOptions(options); |
|||
canvasResizer.focus(el); |
|||
}, |
|||
canvasResizer.setOptions(options); |
|||
canvasResizer.focus(el); |
|||
}, |
|||
|
|||
stop: function() { |
|||
if(this.canvasResizer) |
|||
this.canvasResizer.blur(); |
|||
}, |
|||
stop: function() { |
|||
if(this.canvasResizer) |
|||
this.canvasResizer.blur(); |
|||
}, |
|||
|
|||
}; |
|||
}; |
|||
}); |
|||
|
|||
@ -0,0 +1,146 @@ |
|||
define(function() { |
|||
return { |
|||
|
|||
getOffsetMethod: function(state) { |
|||
var method = state || ''; |
|||
return 'get' + method + 'OffsetViewerEl'; |
|||
}, |
|||
|
|||
run: function(editor, sender, opts) { |
|||
if (!editor.getConfig().showOffsets) { |
|||
return; |
|||
} |
|||
|
|||
var canvas = editor.Canvas; |
|||
var opt = opts || {}; |
|||
var el = opt.el || ''; |
|||
var state = opt.state || ''; |
|||
var pos = opt.elPos || canvas.getElementPos(el); |
|||
var style = window.getComputedStyle(el); |
|||
var ppfx = this.ppfx; |
|||
var stateVar = state + 'State'; |
|||
var method = this.getOffsetMethod(state); |
|||
var offsetViewer = canvas[method](); |
|||
offsetViewer.style.display = 'block'; |
|||
|
|||
var marginT = this['marginT' + state]; |
|||
var marginB = this['marginB' + state]; |
|||
var marginL = this['marginL' + state]; |
|||
var marginR = this['marginR' + state]; |
|||
var padT = this['padT' + state]; |
|||
var padB = this['padB' + state]; |
|||
var padL = this['padL' + state]; |
|||
var padR = this['padR' + state]; |
|||
|
|||
if(!this[stateVar]) { |
|||
var stateLow = state.toLowerCase(); |
|||
var marginName = stateLow + 'margin-v'; |
|||
var paddingName = stateLow + 'padding-v'; |
|||
var marginV = $('<div>', {class: ppfx + marginName}).get(0); |
|||
var paddingV = $('<div>', {class: ppfx + paddingName}).get(0); |
|||
var marginEls = ppfx + marginName + '-el'; |
|||
var paddingEls = ppfx + paddingName + '-el'; |
|||
marginT = $('<div>', {class: ppfx + marginName + '-top ' + marginEls}).get(0); |
|||
marginB = $('<div>', {class: ppfx + marginName + '-bottom ' + marginEls}).get(0); |
|||
marginL = $('<div>', {class: ppfx + marginName + '-left ' + marginEls}).get(0); |
|||
marginR = $('<div>', {class: ppfx + marginName + '-right ' + marginEls}).get(0); |
|||
padT = $('<div>', {class: ppfx + paddingName + '-top ' + paddingEls}).get(0); |
|||
padB = $('<div>', {class: ppfx + paddingName + '-bottom ' + paddingEls}).get(0); |
|||
padL = $('<div>', {class: ppfx + paddingName + '-left ' + paddingEls}).get(0); |
|||
padR = $('<div>', {class: ppfx + paddingName + '-right ' + paddingEls}).get(0); |
|||
this['marginT' + state] = marginT; |
|||
this['marginB' + state] = marginB; |
|||
this['marginL' + state] = marginL; |
|||
this['marginR' + state] = marginR; |
|||
this['padT' + state] = padT; |
|||
this['padB' + state] = padB; |
|||
this['padL' + state] = padL; |
|||
this['padR' + state] = padR; |
|||
marginV.appendChild(marginT); |
|||
marginV.appendChild(marginB); |
|||
marginV.appendChild(marginL); |
|||
marginV.appendChild(marginR); |
|||
paddingV.appendChild(padT); |
|||
paddingV.appendChild(padB); |
|||
paddingV.appendChild(padL); |
|||
paddingV.appendChild(padR); |
|||
offsetViewer.appendChild(marginV); |
|||
offsetViewer.appendChild(paddingV); |
|||
this[stateVar] = '1'; |
|||
} |
|||
|
|||
var unit = 'px'; |
|||
var marginLeftSt = style.marginLeft.replace(unit, ''); |
|||
var marginTopSt = parseInt(style.marginTop.replace(unit, '')); |
|||
var marginBottomSt = parseInt(style.marginBottom.replace(unit, '')); |
|||
var mtStyle = marginT.style; |
|||
var mbStyle = marginB.style; |
|||
var mlStyle = marginL.style; |
|||
var mrStyle = marginR.style; |
|||
var ptStyle = padT.style; |
|||
var pbStyle = padB.style; |
|||
var plStyle = padL.style; |
|||
var prStyle = padR.style; |
|||
var posLeft = parseInt(pos.left); |
|||
|
|||
// Margin style
|
|||
mtStyle.height = style.marginTop; |
|||
mtStyle.width = style.width; |
|||
mtStyle.top = pos.top - style.marginTop.replace(unit, '') + unit; |
|||
mtStyle.left = posLeft + unit; |
|||
|
|||
mbStyle.height = style.marginBottom; |
|||
mbStyle.width = style.width; |
|||
mbStyle.top = pos.top + pos.height + unit; |
|||
mbStyle.left = posLeft + unit; |
|||
|
|||
var marginSideH = pos.height + marginTopSt + marginBottomSt + unit; |
|||
var marginSideT = pos.top - marginTopSt + unit; |
|||
mlStyle.height = marginSideH; |
|||
mlStyle.width = style.marginLeft; |
|||
mlStyle.top = marginSideT; |
|||
mlStyle.left = posLeft - marginLeftSt + unit; |
|||
|
|||
mrStyle.height = marginSideH; |
|||
mrStyle.width = style.marginRight; |
|||
mrStyle.top = marginSideT; |
|||
mrStyle.left = posLeft + pos.width + unit; |
|||
|
|||
// Padding style
|
|||
var padTop = parseInt(style.paddingTop.replace(unit, '')); |
|||
ptStyle.height = style.paddingTop; |
|||
ptStyle.width = style.width; |
|||
ptStyle.top = pos.top + unit; |
|||
ptStyle.left = posLeft + unit; |
|||
|
|||
var padBot = parseInt(style.paddingBottom.replace(unit, '')); |
|||
pbStyle.height = style.paddingBottom; |
|||
pbStyle.width = style.width; |
|||
pbStyle.top = pos.top + pos.height - padBot + unit; |
|||
pbStyle.left = posLeft + unit; |
|||
|
|||
var padSideH = (pos.height - padBot - padTop) + unit; |
|||
var padSideT = pos.top + padTop + unit; |
|||
plStyle.height = padSideH; |
|||
plStyle.width = style.paddingLeft; |
|||
plStyle.top = padSideT; |
|||
plStyle.left = pos.left + unit; |
|||
|
|||
var padRight = parseInt(style.paddingRight.replace(unit, '')); |
|||
prStyle.height = padSideH; |
|||
prStyle.width = style.paddingRight; |
|||
prStyle.top = padSideT; |
|||
prStyle.left = pos.left + pos.width - padRight + unit; |
|||
}, |
|||
|
|||
stop: function(editor, sender, opts) { |
|||
var opt = opts || {}; |
|||
var state = opt.state || ''; |
|||
var method = this.getOffsetMethod(state); |
|||
var canvas = editor.Canvas; |
|||
var offsetViewer = canvas[method](); |
|||
offsetViewer.style.display = 'none'; |
|||
}, |
|||
|
|||
}; |
|||
}); |
|||
Loading…
Reference in new issue