Roo.bootstrap.nav.Bar = function(config){
Roo.bootstrap.nav.Bar.superclass.constructor.call(this, config);
this.addEvents({
"beforetoggle" : true
});
};
Roo.extend(Roo.bootstrap.nav.Bar, Roo.bootstrap.Component, {
navItems : false,
loadMask : false,
getAutoCreate : function(){
throw { message : "nav bar is now a abstract base class - use NavSimplebar / NavHeaderbar / NavSidebar etc..."};
},
initEvents :function ()
{
this.el.select('.navbar-toggle',true).on('click', this.onToggle , this);
var mark = {
tag: "div",
cls:"x-dlg-mask"
};
this.maskEl = Roo.DomHelper.append(this.el, mark, true);
var size = this.el.getSize();
this.maskEl.setSize(size.width, size.height);
this.maskEl.enableDisplayMode("block");
this.maskEl.hide();
if(this.loadMask){
this.maskEl.show();
}
},
getChildContainer : function()
{
if (this.el && this.el.select('.collapse').getCount()) {
return this.el.select('.collapse',true).first();
}
return this.el;
},
mask : function()
{
this.maskEl.show();
},
unmask : function()
{
this.maskEl.hide();
},
onToggle : function()
{
if(this.fireEvent('beforetoggle', this) === false){
return;
}
var ce = this.el.select('.navbar-collapse',true).first();
if (!ce.hasClass('show')) {
this.expand();
} else {
this.collapse();
}
},
expand : function ()
{
var ce = this.el.select('.navbar-collapse',true).first();
if (ce.hasClass('collapsing')) {
return;
}
ce.dom.style.height = '';
ce.addClass('in'); ce.removeClass('collapse');
ce.addClass('show');
var h = ce.getHeight();
Roo.log(h);
ce.removeClass('show');
ce.addClass('collapsing');
ce.setHeight(0); ce.on('transitionend', function() {
ce.removeClass('collapsing');
ce.addClass('show');
ce.removeClass('collapse');
ce.dom.style.height = '';
}, this, { single: true} );
ce.setHeight(h);
ce.dom.scrollTop = 0;
},
collapse : function()
{
var ce = this.el.select('.navbar-collapse',true).first();
if (ce.hasClass('collapsing') || ce.hasClass('collapse') ) {
return;
}
ce.removeClass('in'); ce.setHeight(ce.getHeight());
ce.removeClass('show');
ce.addClass('collapsing');
ce.on('transitionend', function() {
ce.dom.style.height = '';
ce.removeClass('collapsing');
ce.addClass('collapse');
}, this, { single: true} );
ce.setHeight(0);
}
});