Files
MaaAssistantArknights/src/MaaWpfGui/Views/UI/TaskQueueView.xaml
2023-09-08 18:21:47 +08:00

321 lines
16 KiB
XML

<UserControl
x:Class="MaaWpfGui.Views.UI.TaskQueueView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:CalcBinding;assembly=CalcBinding"
xmlns:controls="clr-namespace:MaaWpfGui.Styles.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dd="urn:gong-wpf-dragdrop"
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:helper="clr-namespace:MaaWpfGui.Helper"
xmlns:local="clr-namespace:MaaWpfGui"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:properties="clr-namespace:MaaWpfGui.Styles.Properties"
xmlns:s="https://github.com/canton7/Stylet"
xmlns:styles="clr-namespace:MaaWpfGui.Styles"
xmlns:ui="clr-namespace:MaaWpfGui.ViewModels.UI"
xmlns:userControl="clr-namespace:MaaWpfGui.Views.UserControl"
xmlns:viewModels="clr-namespace:MaaWpfGui.ViewModels"
xmlns:vm="clr-namespace:MaaWpfGui"
MinWidth="720"
d:DataContext="{d:DesignInstance {x:Type ui:TaskQueueViewModel}}"
d:DesignHeight="495"
d:DesignWidth="800"
mc:Ignorable="d">
<Grid Margin="20">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<!--<ColumnDefinition Width="5" />-->
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Border
Width="210"
MaxWidth="210"
BorderBrush="{DynamicResource BorderBrush}"
BorderThickness="1"
CornerRadius="4">
<Grid
Grid.Row="0"
Width="190"
Margin="0">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<ListBox
x:Name="TaskList"
Grid.Row="0"
Width="190"
MinHeight="220"
Margin="0,10,0,0"
HorizontalAlignment="Center"
dd:DragDrop.IsDragSource="{Binding Idle}"
dd:DragDrop.IsDropTarget="{Binding Idle}"
BorderThickness="0"
DragDrop.Drop="{s:Action TaskItemSelectionChanged}"
ItemContainerStyle="{StaticResource CustomListBoxItemStyle}"
ItemsSource="{Binding Path=TaskItemViewModels}"
ToolTip="{DynamicResource LabelSequenceTip}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="110" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<!--<maa:TextBlock Text="{Binding ID}" />
<maa:TextBlock Text=". " />-->
<CheckBox
Grid.ColumnSpan="2"
HorizontalAlignment="Left"
Content="{Binding Name}"
IsChecked="{Binding IsChecked}"
IsHitTestVisible="{Binding ElementName=TaskList, Path=DataContext.Idle}" />
<hc:ButtonGroup Grid.Column="1" HorizontalAlignment="Left">
<RadioButton
Margin="0"
Padding="45,0,0,0"
hc:IconElement.Geometry="{StaticResource ConfigGeometry}"
hc:VisualElement.HighlightBackground="Transparent"
hc:VisualElement.HighlightForeground="{DynamicResource PrimaryBrush}"
Background="Transparent"
BorderThickness="0"
Foreground="{DynamicResource SecondaryTextBrush}"
GroupName="TaskSettings"
IsChecked="{Binding EnableSetting}"
Style="{DynamicResource RadioGroupItemSingle}"
ToolTip="{DynamicResource TaskSettings}" />
</hc:ButtonGroup>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button
Width="{Binding SelectedAllWidth}"
Height="30"
VerticalAlignment="Top"
Command="{s:Action SelectedAll}"
Content="{DynamicResource SelectAll}"
IsEnabled="{Binding Idle}" />
<hc:SplitButton
Grid.Column="1"
Width="90"
Height="30"
VerticalAlignment="Top"
Command="{s:Action InverseSelected}"
Content="{Binding InverseShowText}"
IsEnabled="{Binding Idle}"
Visibility="{c:Binding ShowInverse}">
<hc:SplitButton.DropDownContent>
<Menu>
<MenuItem
Width="90"
Padding="19,5,0,5"
Command="{s:Action ChangeInverseMode}"
Header="{Binding InverseMenuText}" />
</Menu>
</hc:SplitButton.DropDownContent>
</hc:SplitButton>
<Button
Grid.Column="1"
Width="90"
Height="30"
VerticalAlignment="Top"
Command="{s:Action InverseSelected}"
Content="{Binding InverseShowText}"
IsEnabled="{Binding Idle}"
Visibility="{c:Binding Path=!ShowInverse}" />
</Grid>
</Grid>
</Border>
<Grid
Grid.Row="1"
Margin="10"
HorizontalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<controls:TextBlock
Padding="5,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{DynamicResource Then}"
TextWrapping="Wrap" />
<ComboBox
Grid.Column="1"
Width="160"
Margin="5"
DisplayMemberPath="Display"
ItemsSource="{Binding ActionAfterCompletedList}"
MaxDropDownHeight="800"
SelectedValue="{Binding ActionAfterCompleted}"
SelectedValuePath="Value" />
</Grid>
<Grid Grid.Row="2" Height="60">
<Button
Width="100"
Height="50"
Margin="5"
Command="{s:Action LinkStart}"
Content="{DynamicResource LinkStart}"
IsEnabled="{Binding Inited}"
Visibility="{c:Binding Path='(Idle and !Stopping) or !Inited'}" />
<Button
Width="100"
Height="50"
Margin="5"
Command="{s:Action Stop}"
Content="{DynamicResource Stop}"
IsEnabled="{c:Binding Path='!Stopping'}"
Visibility="{c:Binding Path='(!Idle or Stopping) and Inited'}" />
</Grid>
<!--<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment ="Center" >-->
<!--<CheckBox IsChecked="{Binding Shutdown}" Content="自动关机" HorizontalAlignment="Center" VerticalAlignment="Center">
<CheckBox.InputBindings>
<KeyBinding Key="H" Command="{s:Action ShowButton}" />
</CheckBox.InputBindings>
</CheckBox>
<CheckBox IsChecked="{Binding Hibernate}" Content="休眠" Visibility="{Binding Visible}" HorizontalAlignment="Center" VerticalAlignment="Center" />
<CheckBox IsChecked="{Binding Suspend}" Content="待机" Visibility="{Binding Visible}" HorizontalAlignment="Center" VerticalAlignment="Center" />-->
<!--</StackPanel>-->
</Grid>
<userControl:GuideUserControl
x:Name="Guide"
Grid.Column="1"
Grid.ColumnSpan="2"
s:View.ActionTarget="{Binding DataContext, RelativeSource={RelativeSource Self}}"
DataContext="{Binding TaskSettingDataContext}"
Visibility="{c:Binding TaskSettingVisibilities.Guide}" />
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="*" MinHeight="360" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" MaxHeight="250" />
</Grid.RowDefinitions>
<hc:ScrollViewer
Grid.Row="0"
Margin="10"
HorizontalAlignment="Center"
VerticalAlignment="Top"
HorizontalScrollBarVisibility="Auto"
IsInertiaEnabled="True"
VerticalScrollBarVisibility="Auto">
<hc:SimpleStackPanel Width="220" Margin="0,0,10,0">
<userControl:FightSettingsUserControl Visibility="{c:Binding TaskSettingVisibilities.Combat}" />
<userControl:AutoRecruitSettingsUserControl
s:View.ActionTarget="{Binding DataContext, RelativeSource={RelativeSource Self}}"
DataContext="{Binding TaskSettingDataContext}"
IsEnabled="{Binding Idle}"
Visibility="{c:Binding TaskSettingVisibilities.Recruiting}" />
<userControl:ConnectSettingsOnWakeUpUserControl
s:View.ActionTarget="{Binding DataContext, RelativeSource={RelativeSource Self}}"
DataContext="{Binding TaskSettingDataContext}"
IsEnabled="{Binding Idle}"
Visibility="{c:Binding TaskSettingVisibilities.WakeUp}" />
<userControl:InfrastSettingsUserControl
s:View.ActionTarget="{Binding DataContext, RelativeSource={RelativeSource Self}}"
DataContext="{Binding TaskSettingDataContext}"
IsEnabled="{Binding Idle}"
Visibility="{c:Binding TaskSettingVisibilities.Base}" />
<userControl:MallSettingsUserControl
s:View.ActionTarget="{Binding DataContext, RelativeSource={RelativeSource Self}}"
DataContext="{Binding TaskSettingDataContext}"
IsEnabled="{Binding Idle}"
Visibility="{c:Binding TaskSettingVisibilities.Mall}" />
<Image Source="../../newlogo.ico" Visibility="{c:Binding TaskSettingVisibilities.Mission}" />
<userControl:RoguelikeSettingsUserControl
s:View.ActionTarget="{Binding DataContext, RelativeSource={RelativeSource Self}}"
DataContext="{Binding TaskSettingDataContext}"
IsEnabled="{Binding Idle}"
Visibility="{c:Binding TaskSettingVisibilities.AutoRoguelike}" />
</hc:SimpleStackPanel>
</hc:ScrollViewer>
<hc:ButtonGroup
Grid.Row="1"
Width="220"
Margin="0,0,10,0"
Orientation="Horizontal">
<RadioButton
Content="{DynamicResource GeneralSettings}"
IsChecked="{c:Binding !TaskSettingVisibilities.EnableAdvancedSettings}"
IsEnabled="True" />
<RadioButton
Content="{DynamicResource AdvancedSettings}"
IsChecked="{c:Binding TaskSettingVisibilities.EnableAdvancedSettings}"
IsEnabled="{c:Binding TaskSettingVisibilities.AdvancedSettingsVisibility}" />
</hc:ButtonGroup>
<hc:ScrollViewer
Grid.Row="2"
Width="200"
Margin="0,10,10,10"
HorizontalAlignment="Center"
VerticalAlignment="Bottom"
IsInertiaEnabled="True">
<controls:TextBlock Text="{Binding StagesOfToday}" TextWrapping="Wrap" />
</hc:ScrollViewer>
</Grid>
<!--<GridSplitter Grid.Column="2" Width="5" HorizontalAlignment="Stretch" />-->
<!--<Rectangle Grid.Column="2" VerticalAlignment="Stretch" Fill="{DynamicResource BorderBrush}" Width="4" />-->
<hc:ScrollViewer
Grid.Column="2"
Margin="10"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
properties:AutoScroll.AutoScroll="True"
HorizontalScrollBarVisibility="Disabled"
IsInertiaEnabled="True"
Visibility="{c:Binding !TaskSettingVisibilities.Guide}">
<ItemsControl
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ItemsSource="{Binding Path=LogItemViewModels}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid MaxWidth="400">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<controls:TextBlock
Grid.Column="0"
Margin="0,5,20,0"
HorizontalAlignment="Left"
VerticalAlignment="Stretch"
Foreground="{DynamicResource TraceLogBrush}"
Text="{Binding Time}"
TextWrapping="Wrap" />
<controls:TextBlock
Grid.Column="1"
Margin="0,5"
HorizontalAlignment="Left"
VerticalAlignment="Stretch"
FontWeight="{Binding Weight}"
ForegroundKey="{Binding Color}"
Text="{Binding Content}"
TextWrapping="Wrap" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</hc:ScrollViewer>
</Grid>
</UserControl>