feat(ui): mission control pane header actions + status tinting
This commit is contained in:
@@ -1166,4 +1166,30 @@
|
|||||||
<Setter Property="Background" Value="{DynamicResource AccentBrush}"/>
|
<Setter Property="Background" Value="{DynamicResource AccentBrush}"/>
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
|
<!-- ============================================================ -->
|
||||||
|
<!-- MISSION CONTROL PANE STATUS TINTING -->
|
||||||
|
<!-- Base neutral grey; tints layer on by status. -->
|
||||||
|
<!-- Running / idle / queued: no class → fall through to base. -->
|
||||||
|
<!-- ============================================================ -->
|
||||||
|
<Style Selector="Border.monitor-pane">
|
||||||
|
<Setter Property="Background" Value="{DynamicResource SurfaceBrush}" />
|
||||||
|
<Setter Property="BorderBrush" Value="{DynamicResource LineBrush}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="Border.monitor-pane.mon-done">
|
||||||
|
<Setter Property="Background" Value="{DynamicResource DoneTintBrush}" />
|
||||||
|
<Setter Property="BorderBrush" Value="{DynamicResource DoneTintBorderBrush}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="Border.monitor-pane.mon-review">
|
||||||
|
<Setter Property="Background" Value="{DynamicResource DoneTintBrush}" />
|
||||||
|
<Setter Property="BorderBrush" Value="{DynamicResource DoneTintBorderBrush}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="Border.monitor-pane.mon-roadblock">
|
||||||
|
<Setter Property="Background" Value="{DynamicResource RoadblockTintBrush}" />
|
||||||
|
<Setter Property="BorderBrush" Value="{DynamicResource RoadblockTintBorderBrush}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="Border.monitor-pane.mon-failed">
|
||||||
|
<Setter Property="Background" Value="{DynamicResource ErrorTintBrush}" />
|
||||||
|
<Setter Property="BorderBrush" Value="{DynamicResource ErrorTintBorderBrush}" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
</Styles>
|
</Styles>
|
||||||
|
|||||||
@@ -99,6 +99,8 @@
|
|||||||
<SolidColorBrush x:Key="QueuedTintBorderBrush" Color="#4C8B9D7A" />
|
<SolidColorBrush x:Key="QueuedTintBorderBrush" Color="#4C8B9D7A" />
|
||||||
<SolidColorBrush x:Key="DoneTintBrush" Color="#1F6FA86B" />
|
<SolidColorBrush x:Key="DoneTintBrush" Color="#1F6FA86B" />
|
||||||
<SolidColorBrush x:Key="DoneTintBorderBrush" Color="#4C6FA86B" />
|
<SolidColorBrush x:Key="DoneTintBorderBrush" Color="#4C6FA86B" />
|
||||||
|
<SolidColorBrush x:Key="RoadblockTintBrush" Color="#1FD4A574" />
|
||||||
|
<SolidColorBrush x:Key="RoadblockTintBorderBrush" Color="#4CD4A574" />
|
||||||
|
|
||||||
<!-- Merge editor (3-pane conflict resolver) block tints -->
|
<!-- Merge editor (3-pane conflict resolver) block tints -->
|
||||||
<SolidColorBrush x:Key="MergeOursTintBrush" Color="#1F7C9166" /> <!-- ours side (moss) -->
|
<SolidColorBrush x:Key="MergeOursTintBrush" Color="#1F7C9166" /> <!-- ours side (moss) -->
|
||||||
|
|||||||
@@ -5,28 +5,57 @@
|
|||||||
xmlns:loc="using:ClaudeDo.Ui.Localization"
|
xmlns:loc="using:ClaudeDo.Ui.Localization"
|
||||||
x:DataType="vm:TaskMonitorViewModel"
|
x:DataType="vm:TaskMonitorViewModel"
|
||||||
x:Class="ClaudeDo.Ui.Views.MissionControl.MonitorPaneView">
|
x:Class="ClaudeDo.Ui.Views.MissionControl.MonitorPaneView">
|
||||||
<Border Background="{DynamicResource Surface1Brush}"
|
<Border Classes="monitor-pane"
|
||||||
BorderBrush="{DynamicResource LineBrush}"
|
Classes.mon-review="{Binding IsWaitingForReview}"
|
||||||
|
Classes.mon-done="{Binding IsDone}"
|
||||||
|
Classes.mon-roadblock="{Binding HasRoadblock}"
|
||||||
|
Classes.mon-failed="{Binding IsFailed}"
|
||||||
BorderThickness="1" CornerRadius="10" ClipToBounds="True">
|
BorderThickness="1" CornerRadius="10" ClipToBounds="True">
|
||||||
<DockPanel LastChildFill="True">
|
<DockPanel LastChildFill="True">
|
||||||
|
|
||||||
<!-- Footer: pane actions -->
|
<!-- Header: per-task action icons -->
|
||||||
<Border DockPanel.Dock="Bottom"
|
<Border DockPanel.Dock="Top"
|
||||||
Background="{DynamicResource Surface2Brush}"
|
Background="{DynamicResource Surface2Brush}"
|
||||||
BorderBrush="{DynamicResource LineBrush}"
|
BorderBrush="{DynamicResource LineBrush}"
|
||||||
BorderThickness="0,1,0,0" Padding="8,6">
|
BorderThickness="0,0,0,1" Padding="6,3">
|
||||||
<StackPanel Orientation="Horizontal" Spacing="8">
|
<StackPanel Orientation="Horizontal" Spacing="2"
|
||||||
<Button Classes="btn" Content="{loc:Tr missionControl.openInApp}"
|
HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||||
Command="{Binding OpenInAppCommand}" />
|
<Button Classes="title-ctrl"
|
||||||
<Button Classes="btn" Content="{loc:Tr missionControl.detach}"
|
Command="{Binding OpenInAppCommand}"
|
||||||
Command="{Binding DetachCommand}" />
|
ToolTip.Tip="{loc:Tr missionControl.openInApp}">
|
||||||
<Button Classes="btn" Content="{loc:Tr missionControl.cancel}"
|
<PathIcon Data="{StaticResource Icon.ArrowOut}" Width="12" Height="12"/>
|
||||||
|
</Button>
|
||||||
|
<Button Classes="title-ctrl"
|
||||||
|
Command="{Binding DetachCommand}"
|
||||||
|
ToolTip.Tip="{Binding DetachTooltip}">
|
||||||
|
<PathIcon Data="{StaticResource Icon.WinMax}" Width="12" Height="12"/>
|
||||||
|
</Button>
|
||||||
|
<Button Classes="title-ctrl"
|
||||||
Command="{Binding CancelTaskCommand}"
|
Command="{Binding CancelTaskCommand}"
|
||||||
IsVisible="{Binding IsRunning}" />
|
IsVisible="{Binding IsRunning}"
|
||||||
|
ToolTip.Tip="{loc:Tr missionControl.cancel}">
|
||||||
|
<PathIcon Data="{StaticResource Icon.WinClose}" Width="12" Height="12"/>
|
||||||
|
</Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<!-- Blocking / roadblock banner -->
|
<!-- Roadblock banner (amber) -->
|
||||||
|
<Border DockPanel.Dock="Top"
|
||||||
|
IsVisible="{Binding HasRoadblock}"
|
||||||
|
Background="{DynamicResource RoadblockTintBrush}"
|
||||||
|
BorderBrush="{DynamicResource AmberBrush}"
|
||||||
|
BorderThickness="0,0,0,1" Padding="12,6">
|
||||||
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||||
|
<PathIcon Data="{StaticResource Icon.Warning}"
|
||||||
|
Foreground="{DynamicResource AmberBrush}"
|
||||||
|
Width="13" Height="13" VerticalAlignment="Center" />
|
||||||
|
<TextBlock Classes="meta" Text="{Binding Roadblocks}"
|
||||||
|
Foreground="{DynamicResource AmberBrush}"
|
||||||
|
TextWrapping="Wrap" VerticalAlignment="Center" />
|
||||||
|
</StackPanel>
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<!-- Failure banner (red) -->
|
||||||
<Border DockPanel.Dock="Top"
|
<Border DockPanel.Dock="Top"
|
||||||
IsVisible="{Binding ShowRoadblock}"
|
IsVisible="{Binding ShowRoadblock}"
|
||||||
Background="{DynamicResource ErrorTintBrush}"
|
Background="{DynamicResource ErrorTintBrush}"
|
||||||
|
|||||||
Reference in New Issue
Block a user