Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AIR - set size of NativeWindow to include system chrome

How do you find out the size of the system chrome so that I can specify the window size to achieve the stage size I want?

If my main window is set at 800 x 600 (stage), and I create a second window as below, it will be smaller.

public function Main():void 
{
    var windowOptions:NativeWindowInitOptions = new NativeWindowInitOptions();
    windowOptions.systemChrome = NativeWindowSystemChrome.STANDARD;
    windowOptions.type = NativeWindowType.NORMAL;
    var newWindow:NativeWindow = new NativeWindow( windowOptions );
    newWindow.width = 800;
    newWindow.height = 600;
    newWindow.stage.scaleMode = StageScaleMode.NO_SCALE;
    newWindow.stage.align = StageAlign.TOP_LEFT;
    newWindow.activate();

}

I assume you increase both newWindow.width = 800; and newWindow.height = 600;to account for the chrome, but how do you find this value?

like image 493
davivid Avatar asked Jan 19 '12 16:01

davivid


1 Answers

you can calculate the size of the chrome by substracting the windows size (that include the chrome) with the inner size (that exclude the chrome).

From the width help of NativeWindows :

The dimensions reported for a native window include any system window chrome that is displayed. The width of the usable display area inside a window is available from the Stage.stageWidth property.

So the inner size can be obtained with stage object ( stage.stageWidth and stage.stageHeight: )

hence :

var chromeWidth=newWindow.width-newWindow.stage.stageWidth;
var chromeHeight=newWindow.height-newWindow.stage.stageHeight;
like image 64
Patrick Avatar answered Dec 24 '22 02:12

Patrick