решаемая. Код:
listeners: {
show: (win) => {
var painelEsquerdo = Ext.getCmp('painelesquerdo');
var painelCentral = Ext.getCmp('painelCentral');
var drawBtn = Ext.getCmp('drawBtn');
// Efeito de expansão partindo do tamanho zero
win.setMinWidth(0);
var oldSize = win.getWidth();
// Por alguma razão, a janela aparece uma vez antes da animação começar onde X estiver setado
// por isso, o width é zerado e o X é jogado para fora da tela
win.setWidth(0);
win.setX(-9999);
// Alinhamento com o botão do menu
win.setMinHeight(drawBtn.getHeight());
win.setHeight(drawBtn.getHeight());
win.setY(drawBtn.getY());
// Em 150 milissegundos, diminui o X para a esquerda e aumenta o width para a direita
win.animate({
duration: 150,
from: {
width: 0,
x: painelEsquerdo.getWidth() + painelCentral.getWidth()
},
to: {
width: oldSize,
x: painelEsquerdo.getWidth() + painelCentral.getWidth() - oldSize
}
});
}
}
Что мне нужно было сделать, это уменьшить X и увеличить ширину окна с 0, чтобы каждая итерация перемещала X влево (уменьшая его значение) и увеличивала ширину окна вправо.