﻿<!--
  Copyright (c) 2016, The OpenThread Authors.
  All rights reserved.

  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions are met:
  1. Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the
     names of its contributors may be used to endorse or promote products
     derived from this software without specific prior written permission.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  POSSIBILITY OF SUCH DAMAGE.
-->
<UserControl
    x:Class="ot.ClientControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ot"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="20"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="20"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="20"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="20"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="20"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="20"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="20"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <TextBlock
            Grid.Row="0"
            Grid.Column="0"
            Text="Server IP :"
            />
        <TextBox
            Grid.Row="0"
            Grid.Column="2"
            x:Name="ServerIP"
            MinWidth="500"
            />
        <TextBlock
            Grid.Row="2"
            Grid.Column="0"
            Text="Server Port :"
            />
        <TextBox
            Grid.Row="2"
            Grid.Column="2"
            x:Name="ServerPort"
            Width="100"
            HorizontalAlignment="Left"
            />
        <TextBlock
            Grid.Row="4"
            Grid.Column="0"
            Text="Client IP :"
            />
        <TextBox
            Grid.Row="4"
            Grid.Column="2"
            x:Name="ClientIP"
            MinWidth="500"
            />
        <TextBlock
            Grid.Row="6"
            Grid.Column="0"
            Text="Client Port :"
            />
        <TextBox
            Grid.Row="6"
            Grid.Column="2"
            x:Name="ClientPort"
            Width="100"
            HorizontalAlignment="Left"
            />
        <Button
            Grid.Row="8"
            Grid.Column="0"
            Grid.ColumnSpan="3"
            Width="75"
            Content="Connect"
            Click="Connect_Click"
            />
        <TextBlock
            Grid.Row="10"
            Grid.Column="0"
            Text="Input :"
            />
        <TextBox
            Grid.Row="10"
            Grid.Column="2"
            x:Name="Input"
            MinWidth="300"
            />
        <StackPanel
            Orientation="Horizontal"
            VerticalAlignment="Top"
            Grid.Row="12"
            Grid.Column="0"
            Grid.ColumnSpan="3"
            >
            <Button
                Width="75"
                Content="Send"
                Click="Send_Click"
                Margin="0,0,75,0"
                />
            <Button
                Width="75"
                Content="Exit"
                Click="Exit_Click"
                />
        </StackPanel>
    </Grid>
</UserControl>
