From 8a0232129fe9f9dbc7a9185866c126e8a83b66dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20P?= <nicolo.paraciani@cnr.it> Date: Wed, 10 Jan 2024 17:55:54 +0100 Subject: [PATCH] GUI changes (including menu) --- MainWindow.xaml | 29 +++++++++----- MainWindow.xaml.cs | 49 +++++++++++++++++++++--- Txt2Bib.csproj | 2 + docfx_project/.gitignore | 9 +++++ docfx_project/api/.gitignore | 5 +++ docfx_project/api/index.md | 2 + docfx_project/articles/intro.md | 1 + docfx_project/articles/toc.yml | 2 + docfx_project/docfx.json | 65 ++++++++++++++++++++++++++++++++ docfx_project/index.md | 4 ++ docfx_project/toc.yml | 5 +++ menu-1768000-1502336.png | Bin 0 -> 4082 bytes 12 files changed, 159 insertions(+), 14 deletions(-) create mode 100644 docfx_project/.gitignore create mode 100644 docfx_project/api/.gitignore create mode 100644 docfx_project/api/index.md create mode 100644 docfx_project/articles/intro.md create mode 100644 docfx_project/articles/toc.yml create mode 100644 docfx_project/docfx.json create mode 100644 docfx_project/index.md create mode 100644 docfx_project/toc.yml create mode 100644 menu-1768000-1502336.png diff --git a/MainWindow.xaml b/MainWindow.xaml index ce677e2..491184a 100644 --- a/MainWindow.xaml +++ b/MainWindow.xaml @@ -6,11 +6,11 @@ xmlns:local="clr-namespace:Txt2Bib" mc:Ignorable="d" Title="MainWindow" Height="744" Width="800"> - <Grid Background="#FF38383E" Margin="0,0,0,-6"> - <TextBox x:Name="DropArea" Text="Trascinare qui i file txt da convertire" ToolTip="Trascinare qui i file txt da convertire" HorizontalAlignment="Left" Margin="48,82,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="526" Height="437" PreviewDragEnter="DropArea_PreviewDragEnter" PreviewDragOver="DropArea_PreviewDragOver" Drop="DropArea_Drop"/> - <TextBox x:Name="Debug" VerticalScrollBarVisibility="Auto" IsEnabled="True" HorizontalAlignment="Left" Margin="48,571,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="710" Height="106" RenderTransformOrigin="0.449,1.525"/> + <Grid Background="#FF38383E" Margin="0,0,0,-16"> + <TextBox x:Name="DropArea" Text="Trascinare qui i file txt da convertire" ToolTip="Trascinare qui i file txt da convertire" HorizontalAlignment="Left" Margin="48,105,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="710" Height="245" PreviewDragEnter="DropArea_PreviewDragEnter" PreviewDragOver="DropArea_PreviewDragOver" Drop="DropArea_Drop"/> + <TextBox x:Name="Debug" VerticalScrollBarVisibility="Auto" IsEnabled="True" HorizontalAlignment="Left" Margin="48,458,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="710" Height="224" RenderTransformOrigin="0.449,1.525"/> <Label Content="Txt2Bib" HorizontalAlignment="Center" Margin="0,10,0,0" VerticalAlignment="Top" Foreground="White" FontFamily="Eras ITC" FontSize="28"/> - <Button x:Name="GoBtn" Cursor="Hand" Content="Genera" HorizontalAlignment="Left" Margin="631,82,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5" Height="68" Width="127" Click="GoBtn_Click" BorderBrush="{x:Null}" Foreground="White" Background="#FF474671" FontFamily="Cascadia Code" FontSize="16"> + <Button x:Name="GoBtn" Cursor="Hand" Content="Esegui" HorizontalAlignment="Left" Margin="340,367,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5" Height="50" Width="126" Click="GoBtn_Click" BorderBrush="{x:Null}" Foreground="White" Background="#FF3F9865" FontFamily="Cascadia Code" FontSize="16"> <Button.RenderTransform> <TransformGroup> <ScaleTransform/> @@ -20,15 +20,26 @@ </TransformGroup> </Button.RenderTransform> </Button> - <Label Content="Debug" HorizontalAlignment="Left" Margin="44,544,0,0" VerticalAlignment="Top" Foreground="White"/> - <Button x:Name="CopyDebug" ToolTip="Copia contenuto debug negli appunti" Cursor="Hand" Content="Button" HorizontalAlignment="Left" Margin="111,547,0,0" VerticalAlignment="Top" Foreground="{x:Null}" BorderBrush="{x:Null}" Width="23" Background="White" Click="CopyDebug_Click"> + <Label Content="Preview" HorizontalAlignment="Left" Margin="46,421,0,0" VerticalAlignment="Top" Foreground="White"/> + <Button x:Name="CopyDebug" ToolTip="Copia contenuto preview negli appunti" Cursor="Hand" Content="Button" HorizontalAlignment="Left" Margin="110,424,0,0" VerticalAlignment="Top" Foreground="{x:Null}" BorderBrush="{x:Null}" Width="26" Background="White" Click="CopyDebug_Click" RenderTransformOrigin="0.554,-4.344" Height="23"> <Button.OpacityMask> - <ImageBrush ImageSource="/copy-icon.png"/> + <ImageBrush Stretch="Uniform" ImageSource="/copy-icon.png"/> </Button.OpacityMask> </Button> - <Button x:Name="OpenDestFolderBtn" ToolTip="Apri cartella destinazione" Content="Button" HorizontalAlignment="Left" Margin="631,168,0,0" VerticalAlignment="Top" BorderBrush="{x:Null}" Foreground="{x:Null}" Height="26" Width="27" Cursor="Hand" Click="OpenDestFolderBtn_Click"> + <Menu x:Name="FileMenu" Margin="22,56,607,476" Background="#FF4B4E5D" Visibility="Collapsed"> + <Menu.ItemsPanel> + <ItemsPanelTemplate> + <VirtualizingStackPanel Orientation="Vertical"/> + </ItemsPanelTemplate> + </Menu.ItemsPanel> + <Label x:Name="MenuExec" Content="Esegui..." Foreground="White" FontSize="14" MouseDown="MenuExec_MouseDown" Cursor="Hand"/> + <Label x:Name="OpenOutputDir" Content="Apri cartella output" Foreground="White" FontSize="14" MouseDown="OpenOutputDir_MouseDown" Cursor="Hand"/> + <Label x:Name="Help" Content="Help" Foreground="White" FontSize="14" MouseDown="Help_MouseDown" Cursor="Hand"/> + <Label x:Name="Exit" Content="Esci..." Foreground="White" FontSize="14" MouseDown="Exit_MouseDown" Cursor="Hand"/> + </Menu> + <Button x:Name="ToggleMenu" Content="" HorizontalAlignment="Left" Margin="12,14,0,0" VerticalAlignment="Top" RenderTransformOrigin="0,0.202" Height="42" Width="47" BorderBrush="{x:Null}" Foreground="{x:Null}" Cursor="Hand" Click="ToggleMenu_Click"> <Button.OpacityMask> - <ImageBrush ImageSource="/openfolder_4896.png" Stretch="Uniform"/> + <ImageBrush ImageSource="/menu-1768000-1502336.png" Stretch="Uniform"/> </Button.OpacityMask> </Button> diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index e15b278..208233d 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -23,6 +23,15 @@ namespace Txt2Bib private string OutputDir { get; } + private void Execute() + { + var txt2bib = new Text2Bib(); + var result = txt2bib.Generate(DropArea.Text); + Debug.Text = result; + using var outputFile = new StreamWriter($@"{OutputDir}\output_bibtex.bib"); + outputFile.Write(result); + } + private void DropArea_Drop(object sender, DragEventArgs e) { // Get data object @@ -71,11 +80,7 @@ namespace Txt2Bib private void GoBtn_Click(object sender, RoutedEventArgs e) { - var txt2bib = new Text2Bib(); - var result = txt2bib.Generate(DropArea.Text); - Debug.Text = result; - using var outputFile = new StreamWriter($@"{OutputDir}\output_bibtex.bib"); - outputFile.Write(result); + Execute(); } private void CopyDebug_Click(object sender, RoutedEventArgs e) @@ -88,5 +93,39 @@ namespace Txt2Bib { System.Diagnostics.Process.Start("explorer.exe", OutputDir); } + + private void ToggleMenu_Click(object sender, RoutedEventArgs e) + { + if (FileMenu.Visibility == Visibility.Collapsed) + { + FileMenu.Visibility = Visibility.Visible; + } + else + { + FileMenu.Visibility = Visibility.Collapsed; + } + } + + private void OpenOutputDir_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) + { + System.Diagnostics.Process.Start("explorer.exe", OutputDir); + } + + private void MenuExec_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) + { + Execute(); + } + + private void Exit_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) + { + Environment.Exit(0); + } + + private void Help_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) + { + MessageBox.Show("Trascinare i file txt da elaborare nella casella in alto e premere 'Esegui'.\n" + + "Il file BibTeX viene generato in una cartella dedicata, che si può aprire selezionando " + + "'Apri cartella output' dal menu.", "Help", MessageBoxButton.OK, MessageBoxImage.Information); + } } } diff --git a/Txt2Bib.csproj b/Txt2Bib.csproj index a163a13..8e45668 100644 --- a/Txt2Bib.csproj +++ b/Txt2Bib.csproj @@ -9,11 +9,13 @@ <ItemGroup> <None Remove="copy-icon.png" /> + <None Remove="menu-1768000-1502336.png" /> <None Remove="openfolder_4896.png" /> </ItemGroup> <ItemGroup> <Resource Include="copy-icon.png" /> + <Resource Include="menu-1768000-1502336.png" /> <Resource Include="openfolder_4896.png" /> </ItemGroup> diff --git a/docfx_project/.gitignore b/docfx_project/.gitignore new file mode 100644 index 0000000..4378419 --- /dev/null +++ b/docfx_project/.gitignore @@ -0,0 +1,9 @@ +############### +# folder # +############### +/**/DROP/ +/**/TEMP/ +/**/packages/ +/**/bin/ +/**/obj/ +_site diff --git a/docfx_project/api/.gitignore b/docfx_project/api/.gitignore new file mode 100644 index 0000000..e8079a3 --- /dev/null +++ b/docfx_project/api/.gitignore @@ -0,0 +1,5 @@ +############### +# temp file # +############### +*.yml +.manifest diff --git a/docfx_project/api/index.md b/docfx_project/api/index.md new file mode 100644 index 0000000..78dc9c0 --- /dev/null +++ b/docfx_project/api/index.md @@ -0,0 +1,2 @@ +# PLACEHOLDER +TODO: Add .NET projects to the *src* folder and run `docfx` to generate **REAL** *API Documentation*! diff --git a/docfx_project/articles/intro.md b/docfx_project/articles/intro.md new file mode 100644 index 0000000..c0478ce --- /dev/null +++ b/docfx_project/articles/intro.md @@ -0,0 +1 @@ +# Add your introductions here! diff --git a/docfx_project/articles/toc.yml b/docfx_project/articles/toc.yml new file mode 100644 index 0000000..ff89ef1 --- /dev/null +++ b/docfx_project/articles/toc.yml @@ -0,0 +1,2 @@ +- name: Introduction + href: intro.md diff --git a/docfx_project/docfx.json b/docfx_project/docfx.json new file mode 100644 index 0000000..9b96c9b --- /dev/null +++ b/docfx_project/docfx.json @@ -0,0 +1,65 @@ +{ + "metadata": [ + { + "src": [ + { + "files": [ + "*.csproj" + ], + "src" : "../" + } + ], + "dest": "api", + "disableGitFeatures": true, + "disableDefaultFilter": false + } + ], + "build": { + "content": [ + { + "files": [ + "api/**.yml", + "api/index.md" + ] + }, + { + "files": [ + "articles/**.md", + "articles/**/toc.yml", + "toc.yml", + "*.md" + ] + } + ], + "resource": [ + { + "files": [ + "images/**" + ] + } + ], + "overwrite": [ + { + "files": [ + "apidoc/**.md" + ], + "exclude": [ + "obj/**", + "_site/**" + ] + } + ], + "dest": "_site", + "globalMetadataFiles": [], + "fileMetadataFiles": [], + "template": [ + "modern" + ], + "postProcessors": [], + "markdownEngineName": "markdig", + "noLangKeyword": false, + "keepFileLink": false, + "cleanupCacheHistory": false, + "disableGitFeatures": false + } +} \ No newline at end of file diff --git a/docfx_project/index.md b/docfx_project/index.md new file mode 100644 index 0000000..3ae2506 --- /dev/null +++ b/docfx_project/index.md @@ -0,0 +1,4 @@ +# This is the **HOMEPAGE**. +Refer to [Markdown](http://daringfireball.net/projects/markdown/) for how to write markdown files. +## Quick Start Notes: +1. Add images to the *images* folder if the file is referencing an image. diff --git a/docfx_project/toc.yml b/docfx_project/toc.yml new file mode 100644 index 0000000..59f8010 --- /dev/null +++ b/docfx_project/toc.yml @@ -0,0 +1,5 @@ +- name: Articles + href: articles/ +- name: Api Documentation + href: api/ + homepage: api/index.md diff --git a/menu-1768000-1502336.png b/menu-1768000-1502336.png new file mode 100644 index 0000000000000000000000000000000000000000..987aa145254b3b59245fb3244ca1e3a3bfbb3f98 GIT binary patch literal 4082 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 literal 0 HcmV?d00001