UbisamBase 플랫폼 위에서 도는 플러그인. 지금까지 만든 것을 그대로 담는다. - 폴더 비교 / 파일 비교(부분 수용·워드랩·찾기) / 3-Way 병합 / Git 조작 - 비교 엔진: histogram 정렬 · 이동 블록 감지 · 무시 규칙 · 13개 언어 토크나이저 - doc/ 에 작업 지시서와 진행 기록 빌드 산출물(bin/obj)은 추적하지 않는다 - 플랫폼 런타임이 빌드 때마다 D:\UbisamPlatform\bin 에서 복사되어 들어오므로 저장소에 담을 이유가 없다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
106 lines
6.7 KiB
XML
106 lines
6.7 KiB
XML
<Window x:Class="MergeHub.Views.ShortcutHelpWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
Width="560" Height="620"
|
|
WindowStyle="None"
|
|
ResizeMode="NoResize"
|
|
ShowInTaskbar="False"
|
|
Background="{DynamicResource Ubisam.Brush.ContentBackground}">
|
|
|
|
<!-- 별도 창이라 셸의 리소스를 자동 상속받지 못한다 - 플랫폼 대화상자들과 같은 패턴. -->
|
|
<Window.Resources>
|
|
<ResourceDictionary>
|
|
<ResourceDictionary.MergedDictionaries>
|
|
<ResourceDictionary Source="pack://application:,,,/UbisamBase.Core;component/Themes/ShellStyles.xaml"/>
|
|
</ResourceDictionary.MergedDictionaries>
|
|
</ResourceDictionary>
|
|
</Window.Resources>
|
|
|
|
<Border BorderBrush="{DynamicResource Ubisam.Brush.SubTabBar.Border}" BorderThickness="1">
|
|
<DockPanel TextElement.Foreground="{DynamicResource Ubisam.Brush.ContentForeground}">
|
|
|
|
<Border x:Name="TitleBar" DockPanel.Dock="Top"
|
|
Background="{DynamicResource Ubisam.Brush.Sidebar.Background}"
|
|
BorderBrush="{DynamicResource Ubisam.Brush.SubTabBar.Border}"
|
|
BorderThickness="0,0,0,1" Padding="16,10"
|
|
MouseLeftButtonDown="TitleBar_MouseLeftButtonDown">
|
|
<DockPanel>
|
|
<Button DockPanel.Dock="Right" Content="✕" Click="Close_Click"
|
|
Background="Transparent" BorderThickness="0" Padding="8,0"
|
|
MinHeight="20" FontSize="13"
|
|
Foreground="{DynamicResource Ubisam.Brush.Muted}"/>
|
|
<TextBlock Text="단축키" FontWeight="SemiBold"
|
|
Foreground="{DynamicResource Ubisam.Brush.ContentForeground}"/>
|
|
</DockPanel>
|
|
</Border>
|
|
|
|
<Border DockPanel.Dock="Bottom" Padding="16,12"
|
|
BorderBrush="{DynamicResource Ubisam.Brush.SubTabBar.Border}" BorderThickness="0,1,0,0">
|
|
<DockPanel>
|
|
<Button DockPanel.Dock="Right" Content="닫기" MinWidth="84" Padding="14,7"
|
|
Style="{StaticResource Ubisam.Style.Button.Primary}"
|
|
IsDefault="True" IsCancel="True" Click="Close_Click"/>
|
|
<TextBlock VerticalAlignment="Center" FontSize="11.5"
|
|
Foreground="{DynamicResource Ubisam.Brush.Muted}"
|
|
Text="이 목록은 실제 키 처리와 같은 표에서 나옵니다."/>
|
|
</DockPanel>
|
|
</Border>
|
|
|
|
<!-- 묶음 → 키 두 겹. 묶음 이름과 순서 모두 ShortcutMap 이 정한 그대로다. -->
|
|
<ScrollViewer VerticalScrollBarVisibility="Auto" Padding="16,12">
|
|
<ItemsControl x:Name="GroupList">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<StackPanel Margin="0,0,0,14">
|
|
<TextBlock Text="{Binding Key}" FontWeight="Bold" FontSize="12.5"
|
|
Foreground="{DynamicResource Ubisam.Brush.Accent}"
|
|
Margin="0,0,0,5"/>
|
|
<ItemsControl ItemsSource="{Binding}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid Margin="0,2">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="132"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Border Grid.Column="0" CornerRadius="3" Padding="6,2"
|
|
Margin="0,0,10,0" HorizontalAlignment="Left"
|
|
VerticalAlignment="Top"
|
|
Background="{DynamicResource Ubisam.Brush.Input.Background}"
|
|
BorderBrush="{DynamicResource Ubisam.Brush.Input.Border}"
|
|
BorderThickness="1">
|
|
<TextBlock Text="{Binding Gesture}" FontFamily="Consolas"
|
|
FontSize="11.5" FontWeight="Bold"/>
|
|
</Border>
|
|
|
|
<StackPanel Grid.Column="1">
|
|
<TextBlock Text="{Binding What}" FontSize="12"
|
|
TextWrapping="Wrap" VerticalAlignment="Center"/>
|
|
<TextBlock Text="{Binding Note}" FontSize="11" TextWrapping="Wrap" Margin="0,2,0,0">
|
|
<TextBlock.Style>
|
|
<Style TargetType="TextBlock">
|
|
<Setter Property="Foreground" Value="{DynamicResource Ubisam.Brush.Muted}"/>
|
|
<Style.Triggers>
|
|
<!-- 덧붙일 말이 없는 줄은 자리를 비운다 -->
|
|
<DataTrigger Binding="{Binding Note}" Value="{x:Null}">
|
|
<Setter Property="Visibility" Value="Collapsed"/>
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</TextBlock.Style>
|
|
</TextBlock>
|
|
</StackPanel>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</ScrollViewer>
|
|
</DockPanel>
|
|
</Border>
|
|
</Window>
|