Показать сообщение отдельно
  #9 (permalink)  
Старый 29.11.2010, 16:17
Аватар для cmygeHm
Профессор
Отправить личное сообщение для cmygeHm Посмотреть профиль Найти все сообщения от cmygeHm
 
Регистрация: 12.10.2010
Сообщений: 196

В общем создал свой класс окна, наследник Ext.Window и добавил ему соответствующие листенеры:
CenteredWindow = Ext.extend(Ext.Window, {

        initComponent: function(){
            Ext.applyIf(this, {
                resizable: false,
                listeners: {

                    move: function (w, x, y){
                        if (x<10 || (x+w.width)>GetWidth() || y<10 || y>GetHeight())
                        w.setPosition(GetWidth()/2-w.getWidth()/2, GetHeight()/2-w.getHeight()/2);
                    },
                    beforeshow: function(){
                        this.setPosition(GetWidth()/2-this.getWidth()/2, GetHeight()/2-this.getHeight()/2);
                    }
                }
           
            });

            CenteredWindow.superclass.initComponent.call(this);
        }
    });

function GetWidth()
{
      var x = 0;
      if (self.innerHeight)
      {
              x = self.innerWidth;
      }
      else if (document.documentElement && document.documentElement.clientHeight)
      {
              x = document.documentElement.clientWidth;
      }
      else if (document.body)
      {
              x = document.body.clientWidth;
      }
      return x;
}
function GetHeight()
{
      var y = 0;
      if (self.innerHeight)
      {
              y = self.innerHeight;
      }
      else if (document.documentElement && document.documentElement.clientHeight)
      {
              y = document.documentElement.clientHeight;
      }
      else if (document.body)
      {
              y = document.body.clientHeight;
      }
      return y;
}
Ответить с цитированием