X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=_source%2Fplugins%2Fresize%2Fplugin.js;h=571ac530e5f9ed9f27b85537a41804f1d979a971;hb=039a051ccf3901311661022a30afd60fc38130c9;hp=780f319388b09d898b7c323c02c80d5bf2d7d58c;hpb=e7789c1ad838194d45eeee6ac2eb6e55f5cf35a1;p=ckeditor.git diff --git a/_source/plugins/resize/plugin.js b/_source/plugins/resize/plugin.js index 780f319..571ac53 100644 --- a/_source/plugins/resize/plugin.js +++ b/_source/plugins/resize/plugin.js @@ -9,20 +9,38 @@ CKEDITOR.plugins.add( 'resize', { var config = editor.config; - if ( config.resize_enabled ) + !config.resize_dir && ( config.resize_dir = 'both' ); + ( config.resize_maxWidth == undefined ) && ( config.resize_maxWidth = 3000 ); + ( config.resize_maxHeight == undefined ) && ( config.resize_maxHeight = 3000 ); + ( config.resize_minWidth == undefined ) && ( config.resize_minWidth = 750 ); + ( config.resize_minHeight == undefined ) && ( config.resize_minHeight = 250 ); + + if ( config.resize_enabled !== false ) { - var container = null; - var origin, startSize; + var container = null, + origin, + startSize, + resizeHorizontal = ( config.resize_dir == 'both' || config.resize_dir == 'horizontal' ) && + ( config.resize_minWidth != config.resize_maxWidth ), + resizeVertical = ( config.resize_dir == 'both' || config.resize_dir == 'vertical' ) && + ( config.resize_minHeight != config.resize_maxHeight ); function dragHandler( evt ) { - var dx = evt.data.$.screenX - origin.x; - var dy = evt.data.$.screenY - origin.y; - var internalWidth = startSize.width + dx * ( editor.lang.dir == 'rtl' ? -1 : 1 ); - var internalHeight = startSize.height + dy; + var dx = evt.data.$.screenX - origin.x, + dy = evt.data.$.screenY - origin.y, + width = startSize.width, + height = startSize.height, + internalWidth = width + dx * ( editor.lang.dir == 'rtl' ? -1 : 1 ), + internalHeight = height + dy; + + if ( resizeHorizontal ) + width = Math.max( config.resize_minWidth, Math.min( internalWidth, config.resize_maxWidth ) ); + + if ( resizeVertical ) + height = Math.max( config.resize_minHeight, Math.min( internalHeight, config.resize_maxHeight ) ); - editor.resize( Math.max( config.resize_minWidth, Math.min( internalWidth, config.resize_maxWidth ) ), - Math.max( config.resize_minHeight, Math.min( internalHeight, config.resize_maxHeight ) ) ); + editor.resize( width, height ); } function dragEndHandler ( evt ) @@ -45,6 +63,9 @@ CKEDITOR.plugins.add( 'resize', startSize = { width : container.$.offsetWidth || 0, height : container.$.offsetHeight || 0 }; origin = { x : $event.screenX, y : $event.screenY }; + config.resize_minWidth > startSize.width && ( config.resize_minWidth = startSize.width ); + config.resize_minHeight > startSize.height && ( config.resize_minHeight = startSize.height ); + CKEDITOR.document.on( 'mousemove', dragHandler ); CKEDITOR.document.on( 'mouseup', dragEndHandler ); @@ -61,7 +82,13 @@ CKEDITOR.plugins.add( 'resize', { if ( event.data.space == 'bottom' ) { - event.data.html += '
'; @@ -73,45 +100,58 @@ CKEDITOR.plugins.add( 'resize', /** * The minimum editor width, in pixels, when resizing it with the resize handle. + * Note: It fallbacks to editor's actual width if that's smaller than the default value. + * @name CKEDITOR.config.resize_minWidth * @type Number * @default 750 * @example * config.resize_minWidth = 500; */ -CKEDITOR.config.resize_minWidth = 750; /** * The minimum editor height, in pixels, when resizing it with the resize handle. + * Note: It fallbacks to editor's actual height if that's smaller than the default value. + * @name CKEDITOR.config.resize_minHeight * @type Number * @default 250 * @example * config.resize_minHeight = 600; */ -CKEDITOR.config.resize_minHeight = 250; /** * The maximum editor width, in pixels, when resizing it with the resize handle. + * @name CKEDITOR.config.resize_maxWidth * @type Number * @default 3000 * @example * config.resize_maxWidth = 750; */ -CKEDITOR.config.resize_maxWidth = 3000; /** * The maximum editor height, in pixels, when resizing it with the resize handle. + * @name CKEDITOR.config.resize_maxHeight * @type Number * @default 3000 * @example * config.resize_maxHeight = 600; */ -CKEDITOR.config.resize_maxHeight = 3000; /** - * Whether to enable the resizing feature. If disabed the resize handler will not be visible. + * Whether to enable the resizing feature. If disabled the resize handler will not be visible. + * @name CKEDITOR.config.resize_enabled * @type Boolean * @default true * @example * config.resize_enabled = false; */ -CKEDITOR.config.resize_enabled = true; + +/** + * The directions to which the editor resizing is enabled. Possible values + * are "both", "vertical" and "horizontal". + * @name CKEDITOR.config.resize_dir + * @type String + * @default 'both' + * @since 3.3 + * @example + * config.resize_dir = 'vertical'; + */