<?xml version="1.0"?>
<!--

  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.

-->
<!-- Simple example to demonstrate the Halo Grid layout container. -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark"
        xmlns:mx="library://ns.adobe.com/flex/mx">

    <s:Panel title="Grid Container Example"
           width="75%" height="75%"
           horizontalCenter="0" verticalCenter="0">
        <s:VGroup left="10" right="10" top="10" bottom="10">
            <s:Label width="100%" color="blue" 
                text="A 3 by 3 Grid container of Button controls."/>

            <mx:Grid>
                <mx:GridRow>
                    <mx:GridItem>
                        <s:Button label="Row 1 Col 1" width="100"/>
                    </mx:GridItem>
                    <mx:GridItem>
                        <s:Button label="Row 1 Col 2" width="100"/>
                    </mx:GridItem>
                    <mx:GridItem>
                        <s:Button label="Row 1 Col 3" width="100"/>
                    </mx:GridItem>
                </mx:GridRow>

                <mx:GridRow>
                    <mx:GridItem>
                        <s:Button label="Row 2 Col 1" width="100"/>
                    </mx:GridItem>
                    <mx:GridItem>
                        <s:Button label="Row 2 Col 2" width="100"/>
                    </mx:GridItem>
                    <mx:GridItem>
                        <s:Button label="Row 2 Col 3" width="100"/>
                    </mx:GridItem>
                </mx:GridRow>

                <mx:GridRow>
                    <mx:GridItem>
                        <s:Button label="Row 3 Col 1" width="100"/>
                    </mx:GridItem>
                    <mx:GridItem>
                        <s:Button label="Row 3 Col 2" width="100"/>
                    </mx:GridItem>
                    <mx:GridItem>
                        <s:Button label="Row 3 Col 3" width="100"/>
                    </mx:GridItem>
                </mx:GridRow>
            </mx:Grid>
        </s:VGroup>
    </s:Panel>

</s:Application>
