frameworks/uki/src/uki-view/view/flow.js in uki-1.0.1 vs frameworks/uki/src/uki-view/view/flow.js in uki-1.0.2
- old
+ new
@@ -6,43 +6,62 @@
return new Size( this.contentsWidth(), value );
};
this.hidePartlyVisible = uki.newProp('_hidePartlyVisible');
- this._layoutChildViews = function(oldRect) {
+ this.resizeToContents = function(autosizeStr) {
+ this._resizeChildViews(this._rect);
+ return Base.resizeToContents.call(this, autosizeStr);
+ }
+
+ uki.each(['appendChild', 'removeChild', 'insertBefore'], function(i, name) {
+ this[name] = function(arg1, arg2) {
+ this._contentChanged = true;
+ return Base[name].call(this, arg1, arg2);
+ };
+ }, this)
+
+ this.layout = function() {
+ if (this._contentChanged) this._resizeChildViews(this._rect);
+ return Base.layout.call(this);
+ };
+
+ // resize in layout
+ this._resizeChildViews = function(oldRect) {
+ this._contentChanged = false;
var offset = 0, rect, view;
for (var i=0, childViews = this.childViews(); i < childViews.length; i++) {
view = childViews[i];
- view.rect(new Rect(view._rect.x, offset, view._rect.width, view._rect.height));
+ view.parentResized(oldRect, this._rect);
+ view.rect().y = offset;
+ // view.rect(new Rect(view._rect.x, offset, view._rect.width, view._rect.height));
if (this._hidePartlyVisible) {
view.visible(view._rect.height + offset <= this._rect.height);
}
if (view.visible()) offset += view._rect.height;
};
- Base._layoutChildViews.call(this);
};
});
-uki.view.declare('uki.view.HFlow', uki.view.Container, function(Base) {
- this.hidePartlyVisible = uki.newProp('_hidePartlyVisible');
-
+uki.view.declare('uki.view.HFlow', uki.view.VFlow, function(Base) {
this.contentsSize = function() {
var value = uki.reduce(0, this._childViews, function(sum, e) {
return sum + (e.visible() ? e.rect().width : 0);
} );
return new Size( value, this.contentsHeight() );
};
- this._layoutChildViews = function(oldRect) {
+ this._resizeChildViews = function(oldRect) {
var offset = 0, rect, view;
for (var i=0, childViews = this.childViews(); i < childViews.length; i++) {
view = childViews[i];
- view.rect(new Rect(offset, view._rect.y, view._rect.width, view._rect.height));
+ view.parentResized(oldRect, this._rect);
+ view.rect().x = offset;
+ // view.rect(new Rect(offset, view._rect.y, view._rect.width, view._rect.height));
if (this._hidePartlyVisible) {
view.visible(view._rect.width + offset <= this._rect.width);
}
if (view.visible()) offset += view._rect.width;
};
- Base._layoutChildViews.call(this);
};
});