|
487 | 487 | Visibility="{Binding SettingsPanelOpen, Converter={StaticResource BoolToVisConverter}, ConverterParameter={StaticResource TrueValue}}"/> |
488 | 488 | <Button x:Name="InfoPanelOpenButton" Content="System Information" DockPanel.Dock="Right" Margin="0,1,10,1" Click="InfoPanelOpenButton_Click" |
489 | 489 | Visibility="{Binding InfoPanelOpen, Converter={StaticResource BoolToVisConverter}, ConverterParameter={StaticResource TrueValue}}"/> |
| 490 | + |
| 491 | + <Button x:Name="ChannelMergerOpenButton" Content="Merge Channels" DockPanel.Dock="Right" Margin="0,1,10,1" Click="ChannelMergerOpenButton_Click" |
| 492 | + Visibility="{Binding MergeChannelsPanelOpen, Converter={StaticResource BoolToVisConverter}, ConverterParameter={StaticResource TrueValue}}"/> |
| 493 | + |
490 | 494 | <TextBlock x:Name="TitleBlock" Text="{Binding WindowTitle}" Foreground="White" VerticalAlignment="Center" Margin="10,0,0,0" IsHitTestVisible="False" FontSize="22"/> |
491 | 495 | </DockPanel> |
492 | 496 |
|
|
804 | 808 | <TextBox x:Name="SavePathBox" Text="{Binding SavePath, UpdateSourceTrigger=PropertyChanged}" Margin="5,0" LostFocus="SavePathBox_LostFocus"/> |
805 | 809 | </DockPanel> |
806 | 810 |
|
| 811 | + <CheckBox x:Name="ChannelSeparatorCheckbox" DockPanel.Dock="Top" Content="Save Channels Separately" Foreground="White" Margin="3,10,0,0" |
| 812 | + IsChecked="{Binding SplitChannels}"/> |
807 | 813 |
|
808 | | - <DockPanel x:Name="SaveFormatSelectionArea" DockPanel.Dock="Top" LastChildFill="False"> |
| 814 | + <DockPanel x:Name="SaveFormatSelectionArea" DockPanel.Dock="Top" LastChildFill="False" |
| 815 | + Visibility="{Binding SplitChannels, Converter={StaticResource BoolToVisConverter}, ConverterParameter={StaticResource TrueValue}}"> |
809 | 816 | <StackPanel Orientation="Horizontal" DockPanel.Dock="Bottom"> |
810 | 817 | <TextBlock Style="{StaticResource VisibleTextDisplayStyle}" TextAlignment="Center" FontSize="16"> |
811 | 818 | <Run Text="Compressed Size: " FontWeight="Bold"/> |
|
840 | 847 | <Label Content="Format Details" Style="{StaticResource TitleStyle}" FontSize="18" DockPanel.Dock="Bottom"/> |
841 | 848 | <ContentControl x:Name="CustomDDSSettingsPanel" DockPanel.Dock="Top" Margin="0,5" Template="{StaticResource CustomDDSSettings}" Style="{StaticResource CustomDDSSettingsVisibility}"/> |
842 | 849 | <ContentControl x:Name="MainSaveFormatSelector" DockPanel.Dock="Top" Margin="0,5" Template="{StaticResource MainFormatSelector}"/> |
843 | | - |
844 | 850 | </DockPanel> |
845 | 851 |
|
846 | | - <DockPanel x:Name="FormatSpecificSettingsArea" DockPanel.Dock="Top"> |
| 852 | + <DockPanel x:Name="FormatSpecificSettingsArea" DockPanel.Dock="Top" Visibility="{Binding SplitChannels, Converter={StaticResource BoolToVisConverter}, ConverterParameter={StaticResource TrueValue}}"> |
847 | 853 | <ContentControl x:Name="GeneralAlphaSettings" DockPanel.Dock="Top" Template="{StaticResource GeneralAlphaSettingsTemplate}" Style="{StaticResource GeneralAlphaSettingsPanelVisibility}"/> |
848 | 854 | <ContentControl x:Name="DXT1AlphaSettings" DockPanel.Dock="Top" Style="{StaticResource DXT1AlphaSettingVisibility}" Template="{StaticResource DXT1AlphaSettingTemplate}"/> |
849 | 855 | <ContentControl x:Name="JPGQualitySettings" DockPanel.Dock="Top" Style="{StaticResource JPGSettingsVisibility}" Template="{StaticResource JPGSettingsTemplate}"/> |
850 | 856 | </DockPanel> |
851 | 857 |
|
852 | | - <ContentControl x:Name="MipSettingsArea" DockPanel.Dock="Top" Visibility="{Binding IsSaveFormatMippable, Converter={StaticResource BoolToVisConverter}}" Margin="0,10,0,0" Template="{StaticResource MipSettingsTemplate}"/> |
| 858 | + <ContentControl x:Name="MipSettingsArea" DockPanel.Dock="Top" Margin="0,10,0,0" Template="{StaticResource MipSettingsTemplate}"> |
| 859 | + <ContentControl.Style> |
| 860 | + <Style TargetType="FrameworkElement"> |
| 861 | + <Setter Property="Visibility" Value="Collapsed"/> |
| 862 | + |
| 863 | + <Style.Triggers> |
| 864 | + <DataTrigger Binding="{Binding IsSaveFormatMippable}" Value="True"> |
| 865 | + <Setter Property="Visibility" Value="Visible"/> |
| 866 | + </DataTrigger> |
| 867 | + |
| 868 | + <DataTrigger Binding="{Binding SplitChannels}" Value="True"> |
| 869 | + <Setter Property="Visibility" Value="Collapsed"/> |
| 870 | + </DataTrigger> |
| 871 | + </Style.Triggers> |
| 872 | + </Style> |
| 873 | + </ContentControl.Style> |
| 874 | + </ContentControl> |
853 | 875 | </DockPanel> |
854 | 876 | </ScrollViewer> |
855 | 877 | </DockPanel> |
|
1051 | 1073 | </DockPanel> |
1052 | 1074 | </Border> |
1053 | 1075 | </Border> |
| 1076 | + |
| 1077 | + <Border x:Name="MergeChannelPanel" Style="{StaticResource FadedBackgroundBorder}" Tag="{Binding MergeChannelsPanelOpen}" Drop="MergeChannelPanel_Drop" DragOver="MergeChannelPanel_DragOver"> |
| 1078 | + <Border Style="{StaticResource FadedInnerBorder}"> |
| 1079 | + <DockPanel Margin="5,0,5,5"> |
| 1080 | + <Label Content="Merge Channels" Style="{StaticResource TitleStyle}" DockPanel.Dock="Top"/> |
| 1081 | + <Image MaxWidth="1024" MaxHeight="1024" DockPanel.Dock="Bottom"/> |
| 1082 | + <DockPanel DockPanel.Dock="Bottom" Margin="5,10,5,10"> |
| 1083 | + <Button x:Name="MergeLoadButton" Content="Load" DockPanel.Dock="Left" Click="MergeLoadButton_Click" /> |
| 1084 | + <Button x:Name="MergeCloseButton" Content="Close" DockPanel.Dock="Right" Click="MergeCloseButton_Click"/> |
| 1085 | + <Button x:Name="MergeMergeButton" Content="Merge!" Click="MergeMergeButton_Click" FontWeight="Bold" Margin="10,0" VerticalAlignment="Center" HorizontalAlignment="Center"> |
| 1086 | + <Button.Style> |
| 1087 | + <Style BasedOn="{StaticResource {x:Type Button}}" TargetType="Button"> |
| 1088 | + <Setter Property="Visibility" Value="Visible"/> |
| 1089 | + |
| 1090 | + <Style.Triggers> |
| 1091 | + <DataTrigger Binding="{Binding MergeChannelsImages.Count}" Value="0"> |
| 1092 | + <Setter Property="Visibility" Value="Collapsed"/> |
| 1093 | + </DataTrigger> |
| 1094 | + |
| 1095 | + <DataTrigger Binding="{Binding MergeChannelsReady}" Value="False"> |
| 1096 | + <Setter Property="Visibility" Value="Collapsed"/> |
| 1097 | + </DataTrigger> |
| 1098 | + </Style.Triggers> |
| 1099 | + </Style> |
| 1100 | + </Button.Style> |
| 1101 | + </Button> |
| 1102 | + </DockPanel> |
| 1103 | + <ListBox x:Name="MergeChannelSourceBox" DockPanel.Dock="Top" ItemsSource="{Binding MergeChannelsImages}" Background="Transparent"> |
| 1104 | + <ListBox.ItemTemplate> |
| 1105 | + <ItemContainerTemplate> |
| 1106 | + <DockPanel MaxWidth="300" MaxHeight="300"> |
| 1107 | + <DockPanel.Style> |
| 1108 | + <Style TargetType="DockPanel"> |
| 1109 | + <Setter Property="Background" Value="Transparent"/> |
| 1110 | + |
| 1111 | + <Style.Triggers> |
| 1112 | + <DataTrigger Binding="{Binding IsAlpha}" Value="true"> |
| 1113 | + <Setter Property="Background" Value="#7F808080"/> |
| 1114 | + </DataTrigger> |
| 1115 | + |
| 1116 | + <DataTrigger Binding="{Binding IsRed}" Value="true"> |
| 1117 | + <Setter Property="Background" Value="#7FFF0000"/> |
| 1118 | + </DataTrigger> |
| 1119 | + |
| 1120 | + <DataTrigger Binding="{Binding IsGreen}" Value="true"> |
| 1121 | + <Setter Property="Background" Value="#7F008000"/> |
| 1122 | + </DataTrigger> |
| 1123 | + |
| 1124 | + <DataTrigger Binding="{Binding IsBlue}" Value="true"> |
| 1125 | + <Setter Property="Background" Value="#7F0000FF"/> |
| 1126 | + </DataTrigger> |
| 1127 | + </Style.Triggers> |
| 1128 | + </Style> |
| 1129 | + </DockPanel.Style> |
| 1130 | + <Image MaxWidth="128" MaxHeight="128" DockPanel.Dock="Top" Source="{Binding Thumbnail}"/> |
| 1131 | + <DockPanel Background="Transparent" LastChildFill="False"> |
| 1132 | + <DockPanel.Resources> |
| 1133 | + <Style TargetType="Button"> |
| 1134 | + <Setter Property="Background" Value="Transparent"/> |
| 1135 | + <Setter Property="Width" Value="20"/> |
| 1136 | + <Setter Property="Height" Value="20"/> |
| 1137 | + <Setter Property="Margin" Value="2"/> |
| 1138 | + <Setter Property="Foreground" Value="White"/> |
| 1139 | + </Style> |
| 1140 | + </DockPanel.Resources> |
| 1141 | + |
| 1142 | + <TextBlock Text="{Binding DisplayName}" DockPanel.Dock="Top" Foreground="White" TextWrapping="Wrap"/> |
| 1143 | + |
| 1144 | + <Label Content="Set as Channel:" Foreground="White" DockPanel.Dock="Left"/> |
| 1145 | + <Button x:Name="MergeRedSelector" Content="R" Click="MergeRedSelector_Click" DockPanel.Dock="Left"/> |
| 1146 | + <Button x:Name="MergeGreenSelector" Content="G" Click="MergeGreenSelector_Click" DockPanel.Dock="Left"/> |
| 1147 | + <Button x:Name="MergeBlueSelector" Content="B" Click="MergeBlueSelector_Click" DockPanel.Dock="Left"/> |
| 1148 | + <Button x:Name="MergeAlphaSelector" Content="A" Click="MergeAlphaSelector_Click" DockPanel.Dock="Left"/> |
| 1149 | + <Button x:Name="MergeDeselector" Content="X" Foreground="Red" BorderBrush="Red" BorderThickness="0.5" DockPanel.Dock="Left" Click="MergeDeselector_Click"/> |
| 1150 | + </DockPanel> |
| 1151 | + </DockPanel> |
| 1152 | + </ItemContainerTemplate> |
| 1153 | + </ListBox.ItemTemplate> |
| 1154 | + <ListBox.ItemsPanel> |
| 1155 | + <ItemsPanelTemplate> |
| 1156 | + <WrapPanel MaxWidth="{Binding ElementName=MergeChannelPanel, Path=ActualWidth}"/> |
| 1157 | + </ItemsPanelTemplate> |
| 1158 | + </ListBox.ItemsPanel> |
| 1159 | + </ListBox> |
| 1160 | + </DockPanel> |
| 1161 | + </Border> |
| 1162 | + </Border> |
1054 | 1163 | </Grid> |
1055 | 1164 | </Window> |
0 commit comments