From 360a3abbf276a930b550e8033060a4a9dfc164bd Mon Sep 17 00:00:00 2001 From: rolux Date: Wed, 7 Jul 2010 09:18:38 +0200 Subject: [PATCH] collapsibles --- build/js/ox.ui.js | 76 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 55 insertions(+), 21 deletions(-) diff --git a/build/js/ox.ui.js b/build/js/ox.ui.js index cd7d939..32284c9 100644 --- a/build/js/ox.ui.js +++ b/build/js/ox.ui.js @@ -1220,6 +1220,7 @@ requires var self = self || {}, that = new Ox.Element({}, self) .defaults({ + collapsed: false, collapsible: true, edge: "left", elements: [], @@ -1290,6 +1291,13 @@ requires function toggle() { Ox.print("toggle"); + var size = self.options.collapsed ? 0 : -self.options.size, + animate = {}; + animate[self.options.edge] = size; + self.options.parent.animate(animate, 200, function() { + self.options.collapsed = !self.options.collapsed; + Ox.print("callback"); + }); } return that; @@ -4559,27 +4567,10 @@ requires that.$elements[i] = v.element .css(edges[2], 0) .css(edges[3], 0); - !Ox.isUndefined(v.size) && that.$elements[i].css(dimensions[0], v.size + "px"); - if (i == 0) { - that.$elements[i].css(edges[0], 0); - !Ox.isUndefined(v.size) && that.$elements[i].css( - edges[1], (getSize(self.options.elements[1]) + (length == 3 ? getSize(self.options.elements[2]) : 0)) + "px" - ); - } else if (i == 1) { - !Ox.isUndefined(self.options.elements[0].size) && that.$elements[i].css( - edges[0], getSize(self.options.elements[0]) + "px" - ); - (!Ox.isUndefined(self.options.elements[0].size) || !Ox.isUndefined(v.size)) && that.$elements[i].css( - edges[1], (length == 3 ? getSize(self.options.elements[2]) : 0) + "px" - ); - } else { - that.$elements[i].css(edges[1], 0); - !Ox.isUndefined(v.size) && that.$elements[i].css( - edges[0], (getSize(self.options.elements[0]) + getSize(self.options.elements[1])) + "px" - ); - } }); + setSizes(); + $.each(self.options.elements, function(i, v) { //that.append(element) that.$elements[i].appendTo(that); @@ -4606,10 +4597,53 @@ requires } }); - function getSize(element) { - return element.size + !Ox.isUndefined(element.resizable); + function getPositionById(id) { + var position = -1; + $.each(self.options.elements, function(i, element) { + if (element.element.options("id") == id) { + position = 1; + return false; + } + }); + return position; } + function getSize(element) { + return element.size + element.resizable; + } + + function setSizes() { + $.each(self.options.elements, function(i, v) { + !Ox.isUndefined(v.size) && that.$elements[i].css(dimensions[0], v.size + "px"); + if (i == 0) { + that.$elements[i].css(edges[0], 0); + !Ox.isUndefined(v.size) && that.$elements[i].css( + edges[1], (getSize(self.options.elements[1]) + (length == 3 ? getSize(self.options.elements[2]) : 0)) + "px" + ); + } else if (i == 1) { + !Ox.isUndefined(self.options.elements[0].size) && that.$elements[i].css( + edges[0], getSize(self.options.elements[0]) + "px" + ); + (!Ox.isUndefined(self.options.elements[0].size) || !Ox.isUndefined(v.size)) && that.$elements[i].css( + edges[1], (length == 3 ? getSize(self.options.elements[2]) : 0) + "px" + ); + } else { + that.$elements[i].css(edges[1], 0); + !Ox.isUndefined(v.size) && that.$elements[i].css( + edges[0], (getSize(self.options.elements[0]) + getSize(self.options.elements[1])) + "px" + ); + } + }); + } + + that.resize = function(id, size) { + // one can pass pos instead of id + var pos = Ox.isNumber(id) ? id : getPositionById(id); + Ox.print("pos", pos, self.options.elements, $.map(self.options.elements, function(v, i) { return v.element.options("id"); })) + self.options.elements[pos].size = size; + setSizes(); + }; + return that; };