Add the Avalonia application and the station network

The entry window types contacts and colours them as they are typed; the log,
check, bandmap, score and packet windows read the same session. Contacts are
shared with the other stations of a multi-operator entry in N1MM's contact
message, so an N1MM station on the same network sees them too.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Erik
2026-08-27 10:56:35 +00:00
parent ffeeb2cdc1
commit 2834f63c8e
45 changed files with 2667 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Nonemm.App.Dialogs.StationDialog"
Title="Station" Width="440" SizeToContent="Height"
WindowStartupLocation="CenterOwner" CanResize="False">
<Window.Styles>
<Style Selector="TextBlock.field">
<Setter Property="FontSize" Value="11" />
<Setter Property="Opacity" Value="0.7" />
<Setter Property="Margin" Value="0,6,0,1" />
</Style>
</Window.Styles>
<StackPanel Margin="14" Spacing="0">
<Grid ColumnDefinitions="*,8,*,8,*" RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto">
<TextBlock Classes="field" Text="Callsign" />
<TextBox Name="CallsignBox" Grid.Row="1" />
<TextBlock Classes="field" Grid.Column="2" Text="CQ zone" />
<TextBox Name="CqZoneBox" Grid.Row="1" Grid.Column="2" />
<TextBlock Classes="field" Grid.Column="4" Text="ITU zone" />
<TextBox Name="ItuZoneBox" Grid.Row="1" Grid.Column="4" />
<TextBlock Classes="field" Grid.Row="2" Text="Continent" />
<TextBox Name="ContinentBox" Grid.Row="3" />
<TextBlock Classes="field" Grid.Row="2" Grid.Column="2" Text="Country prefix" />
<TextBox Name="CountryBox" Grid.Row="3" Grid.Column="2" />
<TextBlock Classes="field" Grid.Row="2" Grid.Column="4" Text="Grid square" />
<TextBox Name="GridBox" Grid.Row="3" Grid.Column="4" />
<TextBlock Classes="field" Grid.Row="4" Text="State" />
<TextBox Name="StateBox" Grid.Row="5" />
<TextBlock Classes="field" Grid.Row="4" Grid.Column="2" Text="Province" />
<TextBox Name="ProvinceBox" Grid.Row="5" Grid.Column="2" />
<TextBlock Classes="field" Grid.Row="4" Grid.Column="4" Text="ARRL section" />
<TextBox Name="SectionBox" Grid.Row="5" Grid.Column="4" />
<TextBlock Classes="field" Grid.Row="6" Text="Name" />
<TextBox Name="NameBox" Grid.Row="7" />
<TextBlock Classes="field" Grid.Row="6" Grid.Column="2" Text="Power" />
<TextBox Name="PowerBox" Grid.Row="7" Grid.Column="2" />
<TextBlock Classes="field" Grid.Row="6" Grid.Column="4" Text="Club" />
<TextBox Name="ClubBox" Grid.Row="7" Grid.Column="4" />
<TextBlock Classes="field" Grid.Row="8" Text="Check (year first licensed)" />
<TextBox Name="CheckBox" Grid.Row="9" />
<TextBlock Classes="field" Grid.Row="8" Grid.Column="2" Text="Precedence" />
<TextBox Name="PrecedenceBox" Grid.Row="9" Grid.Column="2" />
<TextBlock Classes="field" Grid.Row="8" Grid.Column="4" Text="County" />
<TextBox Name="CountyBox" Grid.Row="9" Grid.Column="4" />
</Grid>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Spacing="6" Margin="0,14,0,0">
<Button Content="Cancel" Click="OnCancel" />
<Button Content="Save" Click="OnSave" IsDefault="True" />
</StackPanel>
</StackPanel>
</Window>