Joseph Victor Zammit
Joseph Victor Zammit

Reputation: 15310

ExtJS: check window state (is minimized, is maximized, etc)

ExtJS provides a number of configs as to whether a Window is configured as maximized, minimizable, etc. It also provides the functions to maximize and minimize a window.

Can't find however what the correct way to fetch an existing window state is. What I need is functions similar to the below:

var myWin = Ext.create('Ext.window.Window', { ... });
...
myWin.isMinimized(); // is current window minimized?
myWin.isMaximized(); // is current window maximized?

Can the current window's state be retrieved from the window instance?

Upvotes: 4

Views: 4072

Answers (3)

Raza Ahmed
Raza Ahmed

Reputation: 2751

One solution for anyone looking, instead of using minimizable config, use tools. Here is complete example..

var isMinimized = false;   //if you want to check for minimized elsewhere..
var winWidth;          //to restore to actual width.
Ext.create('Ext.window.Window', {
    title: 'Hello',
    closable : false,
    width : 300, height : 400,
     tools: [
                {  
                    type: 'restore',
                    hidden : true,
                    handler: function( evt,toolEl,owner,tool ) {
                        var window = owner.up( 'window' );
                        window.expand('',false);
                     window.setWidth(winWidth);
                        window.center();
                        isMinimized = false;
                        this.hide();
                        this.nextSibling().show();
                    }                                
                },{  
                    type: 'minimize',
                    handler: function( evt,toolEl,owner,tool ){
                        var window = owner.up( 'window' );
                        window.collapse();
                        winWidth = window.getWidth();
                        window.setWidth( 150 );
                        window.alignTo( Ext.getBody(), 'bl-bl');
                        this.hide();
                        this.previousSibling().show();
                        isMinimized = true;
                    }                                
                }                            
            ]
}).show();

Upvotes: 1

A1rPun
A1rPun

Reputation: 16847

@VisioN's answer is already complete but I want to show you a snippet using toggleCollapse() to hide the window:

Ext.create('Ext.Window',{
    height: 100,
    width: 100,
    minimizable: true,
    listeners: {
        minimize: function(){
            var win = this;
            win.toggleCollapse();
            if (!win.getCollapsed()) {
                win.center();
            } else {
                win.alignTo(document.body, 'bl-bl');
            }
        }
    }
}).show();

Upvotes: 1

VisioN
VisioN

Reputation: 145398

For maximize() there is a boolean property maximized which you can pick up from an object:

if (myWin.maximized) { ... }

However for minimize() ExtJS doesn't provide any functionality and expects individual implementation. Hence, there is no any minimized property supported from the box.

Upvotes: 3

Related Questions