summaryrefslogtreecommitdiff
path: root/rel/overlay/share/www/script/jquery.resizer.js
diff options
context:
space:
mode:
Diffstat (limited to 'rel/overlay/share/www/script/jquery.resizer.js')
-rw-r--r--rel/overlay/share/www/script/jquery.resizer.js84
1 files changed, 84 insertions, 0 deletions
diff --git a/rel/overlay/share/www/script/jquery.resizer.js b/rel/overlay/share/www/script/jquery.resizer.js
new file mode 100644
index 00000000..42f0cc77
--- /dev/null
+++ b/rel/overlay/share/www/script/jquery.resizer.js
@@ -0,0 +1,84 @@
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy of
+// the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+
+(function($) {
+
+ $.fn.makeResizable = function(options) {
+ options = options || {};
+ options.always = options.always || false;
+ options.grippie = options.grippie || null;
+ options.horizontal = options.horizontal || false;
+ options.minWidth = options.minWidth || 100;
+ options.maxWidth = options.maxWidth || null;
+ options.vertical = options.vertical || false;
+ options.minHeight = options.minHeight || 32;
+ options.maxHeight = options.maxHeight || null;
+
+ return this.each(function() {
+ if ($(this).is("textarea") && !options.always &&
+ $.browser.safari && parseInt($.browser.version) >= 522)
+ return this; // safari3 and later provides textarea resizing natively
+
+ var grippie = options.grippie;
+ if (!grippie) grippie = $("<div></div>").appendTo(this.parentNode);
+ grippie.addClass("grippie");
+ if (options.horizontal && options.vertical) {
+ grippie.css("cursor", "nwse-resize");
+ } else if (options.horizontal) {
+ grippie.css("cursor", "col-resize");
+ } else if (options.vertical) {
+ grippie.css("cursor", "row-resize");
+ }
+
+ var elem = $(this);
+ grippie.mousedown(function(e) {
+ var pos = {x: e.screenX, y: e.screenY};
+ var dimensions = {width: elem.width(), height: elem.height()};
+ $(document)
+ .mousemove(function(e) {
+ if (options.horizontal) {
+ var offset = e.screenX - pos.x;
+ if (offset) {
+ var newWidth = dimensions.width + offset;
+ if (newWidth >= options.minWidth &&
+ (!options.maxWidth || newWidth <= options.maxWidth)) {
+ elem.width(newWidth);
+ dimensions.width = newWidth;
+ }
+ pos.x = e.screenX;
+ }
+ }
+ if (options.vertical) {
+ var offset = e.screenY - pos.y;
+ if (offset) {
+ var newHeight = dimensions.height + offset;
+ if (newHeight >= options.minHeight &&
+ (!options.maxHeight || newHeight <= options.maxHeight)) {
+ elem.height(newHeight);
+ dimensions.height = newHeight;
+ }
+ pos.y = e.screenY;
+ }
+ }
+ document.onselectstart = function() { return false }; // for IE
+ return false;
+ })
+ .one("mouseup", function() {
+ $(document).unbind("mousemove");
+ document.onselectstart = null; // for IE
+ });
+ return true;
+ });
+ });
+ }
+
+})(jQuery);