Search code examples
actionscript-3airstagenativewindow

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?


Solution

  • 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;