blob: ae070dbcde2580c19b344c8996bc4dd688901584 [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:comps="comps.*"
xmlns:local="*" close="closeAllChildWindow()">
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
@font-face {
src: url("../../../../../../Assets/Fonts/PT_Serif/PT_Serif-Web-Regular.ttf");
fontFamily: EmbeddedArial;
embedAsCFF: true;
}
@font-face {
src: url("../../../../../../Assets/Fonts/PT_Serif/PT_Serif-Web-Bold.ttf");
fontWeight: bold;
fontFamily: EmbeddedArial;
embedAsCFF: true;
}
@font-face {
src: url("../../../../../../Assets/Fonts/PT_Serif/PT_Serif-Web-Italic.ttf");
fontStyle: italic;
fontFamily: EmbeddedArial;
embedAsCFF: true;
}
@font-face {
src: url("../../../../../../Assets/Fonts/Open_Sans/OpenSans-Regular.ttf");
fontFamily: EmbeddedVerdana;
embedAsCFF: true;
}
@font-face {
src: url("../../../../../../Assets/Fonts/Open_Sans/OpenSans-Bold.ttf");
fontWeight: bold;
fontFamily: EmbeddedVerdana;
embedAsCFF: true;
}
@font-face {
src: url("../../../../../../Assets/Fonts/Open_Sans/OpenSans-Italic.ttf");
fontStyle: italic;
fontFamily: EmbeddedVerdana;
embedAsCFF: true;
}
s|WindowedApplication{
fontFamily: EmbeddedVerdana;
fontLookup: embeddedCFF;
fontAntiAliasType: normal;
}
s|Window{
fontFamily: EmbeddedVerdana;
fontLookup: embeddedCFF;
fontAntiAliasType: normal;
}
s|TitleBar{
fontFamily: EmbeddedVerdana;
fontLookup: embeddedCFF;
fontAntiAliasType: normal;
}
s|Button{
fontFamily: EmbeddedVerdana;
fontLookup: embeddedCFF;
fontAntiAliasType: normal;
}
s|Label{
fontFamily: EmbeddedVerdana;
fontLookup: embeddedCFF;
fontAntiAliasType: normal;
}
global{
fontFamily: EmbeddedVerdana;
fontAntiAliasType: normal;
}
</fx:Style>
<fx:Script>
<![CDATA[
import spark.components.Window;
import flash.display.NativeWindow;
import mx.core.FlexGlobals;
import spark.components.windowClasses.TitleBar;
import comps.*;
import flash.system.Capabilities;
import spark.components.WindowedApplication;
import mx.events.FlexEvent;
public var childWindowList:Array=new Array();
public var myWin:MyWindow;
public var windowWithDefferContent:Window;
public function createAWindow():void
{
myWin=new MyWindow();
myWin.title="window test";
myWin.titleBar=new TitleBar();
myWin.titleBar.title="titlebar";
myWin.width=300;
myWin.height=350;
myWin.minimizable=true;
myWin.maximizable=true;
myWin.resizable=true;
myWin.systemChrome="standard";
myWin.transparent=false;
myWin.type="normal";
childWindowList.push(myWin);
myWin.addEventListener("creationComplete", handleNewWindowCreationComplete);
myWin.open(true);
}
public function createAWindowByClass(c:Class, creationPolicy:String,yPos:Number=100):void
{
windowWithDefferContent=new c();
c(windowWithDefferContent).policy=creationPolicy;
c(windowWithDefferContent).yValue=yPos;
windowWithDefferContent.title="test window";
windowWithDefferContent.systemChrome="standard";
childWindowList.push(windowWithDefferContent);
windowWithDefferContent.addEventListener("creationComplete", handleNewWindowCreationComplete);
windowWithDefferContent.open(true);
}
public function handleNewWindowCreationComplete(e:FlexEvent):void
{
e.currentTarget.removeEventListener("creationComplete", handleNewWindowCreationComplete);
dispatchEvent(new FlexEvent("myWindowComplete"));
}
public function checkNativeWindow():String
{
var current_os:String=Capabilities.os.toLowerCase();
var expect_width:Number=308, expect_height:Number=384;
if (current_os.indexOf("mac")>-1)
{
expect_width=300;
expect_height=372;
}else if (current_os.indexOf("linux")>-1)
{
}
var nw:NativeWindow=myWin.nativeWindow;
var errMsg:String="";
if (nw.width!=expect_width)
errMsg+="width not expected, nw.width="+nw.width+";expect="+expect_width+"\n";
if (nw.height!=expect_height)
errMsg+="height not expected, nw.height="+nw.height+";expect="+expect_height+"\n";
if (nw.resizable!=myWin.resizable)
errMsg+="resizable not expected, nw.resizable="+nw.resizable+";expect="+myWin.resizable+"\n";
if (nw.minimizable!=myWin.minimizable)
errMsg+="minimizable not expected, nw.minimizable="+nw.minimizable+";expect="+myWin.minimizable+"\n";
if (nw.maximizable!=myWin.maximizable)
errMsg+="maximizable not expected, nw.maximizable="+nw.maximizable+";expect="+myWin.maximizable+"\n";
if (nw.type!=myWin.type)
errMsg+="type not expected, nw.type="+nw.type+";expect="+myWin.type+"\n";
if (nw.systemChrome!=myWin.systemChrome)
errMsg+="systemChrome not expected, nw.systemChrome="+nw.systemChrome+";expect="+myWin.systemChrome+"\n";
return errMsg;
}
public function updateWindow():void
{
myWin.width=400;
myWin.height=400;
myWin.title="updated title";
dispatchEvent(new FlexEvent("updateComplete"));
}
public function verifyNativeWindowUpdate():String
{
var errMsg:String="";
var current_os:String=Capabilities.os.toLowerCase();
var expect_width:Number=192, expect_height:Number=166;
if (current_os.indexOf("mac")>-1)
{
expect_width=200;
expect_height=178;
}else if (current_os.indexOf("linux")>-1)
{
}
trace("myWin.width="+myWin.width+";myWin.height="+myWin.height);
if (myWin.width!=expect_width)
errMsg+="width not expected, myWin.width="+myWin.width+";expect="+expect_width+"\n";
if (myWin.height!=expect_height)
errMsg+="height not expected, myWin.height="+myWin.height+";expect="+expect_height+"\n";
if( myWin.title=="test window")
errMsg+="title not expected, title should be changed in systemchrome skin, actual="+myWin.title;
return errMsg;
}
public function closeAllChildWindow():void
{
var win:Window;
while(childWindowList.length>0)
{
win=Window(childWindowList.pop());
if (win!=null && !win.closed)
win.close();
}
}
/**
* compare the actual value with expected value based on os. It returns an error string if comparison fails, otherwise an empty string.
* description: a string you can use to describe what is the test for, you can set it to null.
* actualVal: actual value used to compare for
* expectWinVal: expected value on window os
* expectMacVal: expected value on mac os
* expectLinuxVal: expected value on linux os
*/
public function assertValueBaseOnOS(description:String,actualVal:*,expectWinVal:*=null,expectMacVal:*=null,expectLinuxVal:*=null):String
{
var errMsg:String="";
var current_os:String=Capabilities.os.toLowerCase();
if (current_os.indexOf("window")>-1)
{
if (actualVal!=expectWinVal)
errMsg+="on os="+current_os+", actual value="+actualVal+";expected value="+expectWinVal;
}else if (current_os.indexOf("mac")>-1)
{
if (actualVal!=expectMacVal)
errMsg+="on os="+current_os+", actual value="+actualVal+";expected value="+expectMacVal;
}else if (current_os.indexOf("linux")>-1)
{
if (actualVal!=expectLinuxVal)
errMsg+="on os="+current_os+", actual value="+actualVal+";expected value="+expectLinuxVal;
}else {
errMsg+="on os="+current_os+" isn't supported";
}
if (description!=null && errMsg!="")
errMsg=description+" "+errMsg;
return errMsg;
}
]]>
</fx:Script>
</s:WindowedApplication>