mirror of
https://onedev.site.tesses.net/crosslang/crosslangdevstudio
synced 2026-02-08 09:15:45 +00:00
107 lines
5.3 KiB
XML
107 lines
5.3 KiB
XML
<Window xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:vm="using:CrossLangDevStudio.ViewModels"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
|
x:Class="CrossLangDevStudio.Views.MainWindow"
|
|
x:DataType="vm:MainWindowViewModel"
|
|
Icon="/Assets/crosslang.ico"
|
|
Title="CrossLang DevStudio"
|
|
xmlns:controls="clr-namespace:Tabalonia.Controls;assembly=Tabalonia">
|
|
|
|
<Design.DataContext>
|
|
<!-- This only sets the DataContext for the previewer in an IDE,
|
|
to set the actual DataContext for runtime, set the DataContext property in code (look at App.axaml.cs) -->
|
|
<vm:MainWindowViewModel/>
|
|
</Design.DataContext>
|
|
|
|
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
<Menu Grid.Row="0">
|
|
<MenuItem Header="_File">
|
|
<MenuItem Header="_New Project" HotKey="Ctrl+N" Command="{Binding NewProjectCommand}"/>
|
|
<MenuItem Header="_Open Project" HotKey="Ctrl+O" Command="{Binding OpenProjectCommand}"/>
|
|
<MenuItem Header="_Save" HotKey="Ctrl+S" Command="{Binding SaveCommand}"/>
|
|
<MenuItem Header="Save All" HotKey="Ctrl+Shift+S" Command="{Binding SaveAllCommand}"/>
|
|
<Separator/>
|
|
<MenuItem Header="_Exit" HotKey="Alt+F4"/>
|
|
</MenuItem>
|
|
<MenuItem Header="_Project">
|
|
<MenuItem Header="Build" Command="{Binding BuildCommand}" />
|
|
<MenuItem Header="Build And Run" HotKey="F5" Command="{Binding BuildAndRunCommand}" />
|
|
<MenuItem Header="Publish" Command="{Binding PublishCommand}" />
|
|
<MenuItem Header="Open In File Manager" Command="{Binding OpenProjectInFileManagerCommand}" />
|
|
<MenuItem Header="Open In Terminal" HotKey="CTRL+T" Command="{Binding OpenProjectInTerminalCommand}" />
|
|
<MenuItem Header="Refresh" HotKey="CTRL+R" Command="{Binding RefreshListingCommand}" />
|
|
</MenuItem>
|
|
<MenuItem Header="_CPKG">
|
|
<MenuItem Header="Add Package" Command="{Binding AddPackageCommand}"/>
|
|
<MenuItem Header="Install">
|
|
<MenuItem Header="Template" Command="{Binding InstallTemplateCommand}"/>
|
|
<MenuItem Header="Tool" Command="{Binding InstallToolCommand}"/>
|
|
<MenuItem Header="Web Application" Command="{Binding InstallWebAppCommand}"/>
|
|
<MenuItem Header="Console Application" Command="{Binding InstallConsoleCommand}"/>
|
|
</MenuItem>
|
|
<MenuItem Header="Push Package" Command="{Binding PushPackageCommand}"/>
|
|
</MenuItem>
|
|
<MenuItem Header="_Help">
|
|
|
|
<MenuItem Header="Welcome" Command="{Binding WelcomeCommand}"/>
|
|
<MenuItem Header="Website" Command="{Binding WebsiteCommand}"/>
|
|
<MenuItem Header="Documentation" Command="{Binding DocumentationCommand}"/>
|
|
<MenuItem Header="Video Documentation" Command="{Binding VideoDocumentationCommand}" />
|
|
<MenuItem Header="Reference" Command="{Binding ReferenceCommand}" />
|
|
</MenuItem>
|
|
</Menu>
|
|
<Grid Grid.Row="1" ColumnDefinitions="300, 4, *">
|
|
<TreeView Grid.Column="0" ItemsSource="{Binding ProjectFiles}" SelectedItem="{Binding SelectedProjectFile}">
|
|
<!--Thanks to https://stackoverflow.com/a/77362693 -->
|
|
<TreeView.ItemContainerTheme>
|
|
<ControlTheme TargetType="TreeViewItem" BasedOn="{StaticResource {x:Type TreeViewItem}}">
|
|
<Setter Property="IsExpanded" Value="True" />
|
|
</ControlTheme>
|
|
</TreeView.ItemContainerTheme>
|
|
<TreeView.ItemTemplate>
|
|
<TreeDataTemplate ItemsSource="{Binding SubNodes}">
|
|
<TextBlock Text="{Binding Title}"/>
|
|
</TreeDataTemplate>
|
|
|
|
</TreeView.ItemTemplate>
|
|
</TreeView>
|
|
|
|
<GridSplitter Grid.Column="1" Background="Black" ResizeDirection="Columns"/>
|
|
|
|
<controls:TabsControl SelectedItem="{Binding SelectedTab}" Grid.Column="2" ItemsSource="{Binding TabItems}"
|
|
NewItemFactory="{Binding NewItemFactory}"
|
|
LastTabClosedAction="{Binding Closed}"
|
|
TabClosing="{Binding ClosingTab}"
|
|
ShowDefaultAddButton="True"
|
|
ShowDefaultCloseButton="True"
|
|
Margin="0 8 0 0"
|
|
HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
|
<TabControl.ContentTemplate>
|
|
<DataTemplate DataType="vm:TabItemViewModel">
|
|
|
|
<Grid Background="{DynamicResource SelectedTabItemBackgroundBrush}">
|
|
<TransitioningContentControl Content="{Binding Body}" Grid.Column="2"/>
|
|
</Grid>
|
|
|
|
</DataTemplate>
|
|
</TabControl.ContentTemplate>
|
|
|
|
<TabControl.ItemTemplate>
|
|
<DataTemplate DataType="vm:TabItemViewModel">
|
|
<TextBlock Text="{Binding Header}" />
|
|
</DataTemplate>
|
|
</TabControl.ItemTemplate>
|
|
|
|
</controls:TabsControl>
|
|
</Grid>
|
|
</Grid>
|
|
</Window>
|