<!--
// /***************************************************************************
// Aaru Data Preservation Suite
// ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
//
// Filename       : MediaDump.xaml
// Author(s)      : Natalia Portillo <claunia@claunia.com>
//
// Component      : GUI windows.
//
// ‐‐[ Description ] ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
//
//     Media dumping window.
//
// ‐‐[ License ] ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
//
//     This program is free software: you can redistribute it and/or modify
//     it under the terms of the GNU General public License as
//     published by the Free Software Foundation, either version 3 of the
//     License, or (at your option) any later version.
//
//     This program is distributed in the hope that it will be useful,
//     but WITHOUT ANY WARRANTY; without even the implied warranty of
//     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//     GNU General public License for more details.
//
//     You should have received a copy of the GNU General public License
//     along with this program.  If not, see <http://www.gnu.org/licenses/>.
//
// ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
// Copyright © 2011-2025 Natalia Portillo
// ****************************************************************************/
-->
<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:windows="clr-namespace:Aaru.Gui.ViewModels.Windows"
        xmlns:localization="clr-namespace:Aaru.Localization;assembly=Aaru.Localization"
        mc:Ignorable="d"
        d:DesignWidth="800"
        d:DesignHeight="450"
        x:Class="Aaru.Gui.Views.Windows.MediaDump"
        Icon="/Assets/aaru-logo.png"
        Title="{Binding Title}">
    <Design.DataContext>
        <windows:MediaDumpViewModel />
    </Design.DataContext>
    <StackPanel Orientation="Vertical">
        <StackPanel Orientation="Vertical"
                    IsVisible="{Binding OptionsVisible}">
            <TextBlock Text="{x:Static localization:UI.Output_format}" />
            <ComboBox ItemsSource="{Binding PluginsList}"
                      SelectedItem="{Binding SelectedPlugin}"
                      IsEnabled="{Binding FormatReadOnly}">
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name}" />
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>
            <StackPanel Orientation="Horizontal">
                <TextBox Text="{Binding Destination}"
                         IsReadOnly="True" />
                <Button Command="{Binding DestinationCommand}"
                        IsEnabled="{Binding DestinationEnabled}">
                    <TextBlock Text="{x:Static localization:UI.ButtonLabel_Choose}" />
                </Button>
            </StackPanel>
            <CheckBox IsChecked="{Binding StopOnError}">
                <TextBlock Text="{x:Static localization:UI.Stop_media_dump_on_first_error}" />
            </CheckBox>
            <CheckBox IsChecked="{Binding Force}">
                <TextBlock Text="{x:Static localization:UI.Continue_dumping_whatever_happens}" />
            </CheckBox>
            <NumericUpDown Text="{x:Static localization:UI.Retry_passes}"
                           Value="{Binding Retries}"
                           Increment="1"
                           Minimum="0" />
            <CheckBox IsChecked="{Binding Persistent}">
                <TextBlock Text="{x:Static localization:UI.Try_to_recover_partial_or_incorrect_data}" />
            </CheckBox>
            <CheckBox IsChecked="{Binding Resume}">
                <TextBlock Text="{x:Static localization:UI.Create_or_use_resume_mapfile}" />
            </CheckBox>
            <CheckBox IsChecked="{Binding Track1Pregap}"
                      IsVisible="{Binding Track1PregapVisible}">
                <TextBlock Text="{x:Static localization:UI.Try_to_read_track_1_pregap}" />
            </CheckBox>
            <NumericUpDown Text="{x:Static localization:UI.Skipped_sectors_on_error}"
                           Increment="1"
                           Minimum="1"
                           Value="{Binding Skipped}" />
            <CheckBox IsChecked="{Binding Sidecar}">
                <TextBlock Text="{x:Static localization:UI.Create_Aaru_Metadata_sidecar}" />
            </CheckBox>
            <CheckBox IsChecked="{Binding Trim}">
                <TextBlock Text="{x:Static localization:UI.Trim_errors_from_skipped_sectors}" />
            </CheckBox>
            <CheckBox IsChecked="{Binding ExistingMetadata}">
                <TextBlock Text="{x:Static localization:UI.Take_metadata_from_existing_CICM_XML_sidecar}" />
            </CheckBox>
            <StackPanel IsVisible="{Binding EncodingVisible}">
                <TextBox Text="{x:Static localization:UI.Encoding_to_use_on_metadata_sidecar_creation}" />
                <ComboBox ItemsSource="{Binding Encodings}"
                          SelectedItem="{Binding SelectedEncoding}"
                          IsEnabled="{Binding EncodingEnabled}">
                    <ComboBox.ItemTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Name}" />
                        </DataTemplate>
                    </ComboBox.ItemTemplate>
                </ComboBox>
            </StackPanel>
            <!-- TODO: Image options -->
        </StackPanel>
        <StackPanel Orientation="Vertical"
                    IsVisible="{Binding ProgressVisible}">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{x:Static localization:UI.Writing_image_to}" />
                <TextBlock Text="{Binding Destination}" />
            </StackPanel>
            <TextBlock Text="{x:Static localization:UI.Title_Log}" />
            <TextBox Text="{Binding Log}"
                     IsReadOnly="True" />
            <StackPanel Orientation="Vertical"
                        IsVisible="{Binding Progress1Visible}">
                <TextBox Text="{Binding ProgressText}" />
                <ProgressBar Value="{Binding ProgressValue}"
                             Maximum="{Binding ProgressMaxValue}"
                             IsIndeterminate="{Binding ProgressIndeterminate}" />
            </StackPanel>
            <StackPanel Orientation="Vertical"
                        IsVisible="{Binding Progress2Visible}">
                <TextBox Text="{Binding Progress2Text}" />
                <ProgressBar Value="{Binding Progress2Value}"
                             Maximum="{Binding Progress2MaxValue}"
                             IsIndeterminate="{Binding Progress2Indeterminate}" />
            </StackPanel>
        </StackPanel>
        <StackPanel Orientation="Horizontal">
            <Button Command="{Binding StartCommand}"
                    IsVisible="{Binding StartVisible}">
                <TextBlock Text="{x:Static localization:UI.ButtonLabel_Start}" />
            </Button>
            <Button Command="{Binding CloseCommand}"
                    IsVisible="{Binding CloseVisible}">
                <TextBlock Text="{x:Static localization:UI.ButtonLabel_Close}" />
            </Button>
            <Button Command="{Binding StopCommand}"
                    IsVisible="{Binding StopVisible}"
                    IsEnabled="{Binding StopEnabled}">
                <TextBlock Text="{x:Static localization:UI.ButtonLabel_Stop}" />
            </Button>
        </StackPanel>
    </StackPanel>
</Window>