Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 78 additions & 0 deletions src/IconPacks.Browser/App.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="IconPacks.Browser.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<IconPacks.Browser.Properties.Settings>
<setting name="SidebarExpandedWidth" serializeAs="String">
<value>280</value>
</setting>
<setting name="IconPreviewSize" serializeAs="String">
<value>48</value>
</setting>
<setting name="AppTheme" serializeAs="String">
<value>Light</value>
</setting>
<setting name="ExportTemplatesDir" serializeAs="String">
<value />
</setting>
<setting name="IcoExportIconSize" serializeAs="String">
<value>256</value>
</setting>
<setting name="IcoExportRectSize" serializeAs="String">
<value>256</value>
</setting>
<setting name="IcoExportRectRadius" serializeAs="String">
<value>20</value>
</setting>
<setting name="IcoExportPathStrokeThickness" serializeAs="String">
<value>2</value>
</setting>
<setting name="IcoExportRectEnabled" serializeAs="String">
<value>True</value>
</setting>
<setting name="IcoExportIconRotate" serializeAs="String">
<value>0</value>
</setting>
<setting name="IcoExportIconTranslateX" serializeAs="String">
<value>0</value>
</setting>
<setting name="IcoExportIconTranslateY" serializeAs="String">
<value>0</value>
</setting>
<setting name="IcoExport16" serializeAs="String">
<value>True</value>
</setting>
<setting name="IcoExport24" serializeAs="String">
<value>False</value>
</setting>
<setting name="IcoExport32" serializeAs="String">
<value>True</value>
</setting>
<setting name="IcoExport48" serializeAs="String">
<value>True</value>
</setting>
<setting name="IcoExport64" serializeAs="String">
<value>False</value>
</setting>
<setting name="IcoExport72" serializeAs="String">
<value>False</value>
</setting>
<setting name="IcoExport96" serializeAs="String">
<value>False</value>
</setting>
<setting name="IcoExport128" serializeAs="String">
<value>False</value>
</setting>
<setting name="IcoExport180" serializeAs="String">
<value>False</value>
</setting>
<setting name="IcoExport256" serializeAs="String">
<value>True</value>
</setting>
</IconPacks.Browser.Properties.Settings>
</userSettings>
</configuration>
1 change: 1 addition & 0 deletions src/IconPacks.Browser/Controls/SideBar.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,7 @@
<Button Command="{Binding SaveAsPngCommand}" Content="Save as Png" />
<Button Command="{Binding SaveAsJpegCommand}" Content="Save as Jpeg" />
<Button Command="{Binding SaveAsBmpCommand}" Content="Save as Bmp" />
<Button Command="{Binding SaveAsIcoCommand}" Content="Save as Ico" />
</StackPanel>
</Expander>
</StackPanel>
Expand Down
305 changes: 305 additions & 0 deletions src/IconPacks.Browser/IcoExport/ExportIconView.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,305 @@
<mah:MetroWindow
x:Class="IconPacks.Browser.IcoExport.ExportIconView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converter="http://metro.mahapps.com/winfx/xaml/shared"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:local="clr-namespace:IconPacks.Browser.IcoExport"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:prop="clr-namespace:IconPacks.Browser.Properties"
Title="Export selected Icon as .ICO File"
Width="600"
Height="700"
d:DataContext="{d:DesignInstance local:ExportIconViewModel}"
TitleCharacterCasing="Normal"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
<mah:MetroWindow.Resources>
<Style
x:Key="SliderStyle"
BasedOn="{StaticResource MahApps.Styles.Slider.Flat}"
TargetType="{x:Type Slider}">
<Setter Property="AutoToolTipPlacement" Value="TopLeft" />
</Style>
</mah:MetroWindow.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="320" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<GroupBox
Grid.Row="0"
Padding="0"
Header="Preview">
<GroupBox.Background>
<DrawingBrush
TileMode="Tile"
Viewport="0,0,10,10"
ViewportUnits="Absolute">
<DrawingBrush.Drawing>
<GeometryDrawing Brush="{DynamicResource MahApps.Brushes.Gray8}">
<GeometryDrawing.Geometry>
<GeometryGroup>
<RectangleGeometry Rect="0,0,5,5" />
<RectangleGeometry Rect="5,5,5,5" />
</GeometryGroup>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingBrush.Drawing>
</DrawingBrush>
</GroupBox.Background>
<Grid
x:Name="Preview"
Width="256"
Height="256"
ClipToBounds="True">
<Grid.Background>
<SolidColorBrush Color="{Binding IcoExportPathBackground}" />
</Grid.Background>
<Path
x:Name="PreviewBorder"
Width="256"
Height="256"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="{Binding RectGeometry}"
StrokeThickness="{Binding IcoExportPathStrokeThickness}">
<Path.Fill>
<SolidColorBrush Color="{Binding IcoExportPathFill}" />
</Path.Fill>
<Path.Stroke>
<SolidColorBrush Color="{Binding IcoExportPathStroke}" />
</Path.Stroke>
</Path>
<iconPacks:PackIconControl
x:Name="PreviewHolder"
Width="{Binding IcoExportIconSize}"
Height="{Binding IcoExportIconSize}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Kind="{Binding Icon.Value, Mode=OneWay}"
RenderTransform="{Binding IconTranslate}"
RenderTransformOrigin=".5,.5"
SnapsToDevicePixels="True">
<iconPacks:PackIconControl.Foreground>
<SolidColorBrush Color="{Binding IcoExportIconForeground}" />
</iconPacks:PackIconControl.Foreground>
<iconPacks:PackIconControl.Background>
<SolidColorBrush Color="{Binding IcoExportIconBackground}" />
</iconPacks:PackIconControl.Background>
</iconPacks:PackIconControl>
</Grid>
</GroupBox>
<GroupBox
Grid.Row="1"
Margin="0,2,0,0"
Header="Export Sizes">
<WrapPanel Grid.Row="1" Orientation="Horizontal">
<CheckBox
Width="70"
Margin="3"
Content="16x16"
IsChecked="{Binding Source={x:Static prop:Settings.Default}, Path=IcoExport16}" />
<CheckBox
Width="70"
Margin="3"
Content="24x24"
IsChecked="{Binding Source={x:Static prop:Settings.Default}, Path=IcoExport24}" />
<CheckBox
Width="70"
Margin="3"
Content="32x32"
IsChecked="{Binding Source={x:Static prop:Settings.Default}, Path=IcoExport32}" />
<CheckBox
Width="70"
Margin="3"
Content="48x48"
IsChecked="{Binding Source={x:Static prop:Settings.Default}, Path=IcoExport48}" />
<CheckBox
Width="70"
Margin="3"
Content="64x64"
IsChecked="{Binding Source={x:Static prop:Settings.Default}, Path=IcoExport64}" />
<CheckBox
Width="70"
Margin="3"
Content="72x72"
IsChecked="{Binding Source={x:Static prop:Settings.Default}, Path=IcoExport72}" />
<CheckBox
Width="70"
Margin="3"
Content="96x96"
IsChecked="{Binding Source={x:Static prop:Settings.Default}, Path=IcoExport96}" />
<CheckBox
Width="70"
Margin="3"
Content="128x128"
IsChecked="{Binding Source={x:Static prop:Settings.Default}, Path=IcoExport128}" />
<CheckBox
Width="70"
Margin="3"
Content="180x180"
IsChecked="{Binding Source={x:Static prop:Settings.Default}, Path=IcoExport180}" />
<CheckBox
Width="70"
Margin="3"
Content="256x256"
IsChecked="{Binding Source={x:Static prop:Settings.Default}, Path=IcoExport256}" />
</WrapPanel>
</GroupBox>
<ScrollViewer
x:Name="PreviewScrollViewer"
Grid.RowSpan="2"
Grid.Column="1"
Padding="2"
mah:ScrollViewerHelper.BubbleUpScrollEventToParentScrollviewer="True"
HorizontalScrollBarVisibility="Disabled"
Style="{StaticResource MahApps.Styles.ScrollViewer}"
VerticalScrollBarVisibility="Auto">
<StackPanel Orientation="Vertical">
<Expander
Margin="0,2,0,0"
DockPanel.Dock="Top"
Header="Icon Style">
<StackPanel Orientation="Vertical">
<mah:MetroHeader Header="Foreground color">
<mah:ColorPicker SelectedColor="{Binding IcoExportIconForeground}" />
</mah:MetroHeader>
<mah:MetroHeader Header="Background color">
<mah:ColorPicker SelectedColor="{Binding IcoExportIconBackground}" />
</mah:MetroHeader>
<mah:MetroHeader Header="Image size">
<Slider
Maximum="256"
Minimum="16"
Orientation="Horizontal"
Style="{StaticResource SliderStyle}"
Value="{Binding IcoExportIconSize}" />
</mah:MetroHeader>
</StackPanel>
</Expander>
<Expander
Margin="0,2,0,0"
DockPanel.Dock="Top"
Header="extended icon manipulation"
IsExpanded="False">
<StackPanel Orientation="Vertical">
<mah:MetroHeader Header="Rotation">
<Slider
Maximum="180"
Minimum="-180"
MouseDoubleClick="Slider_MouseDoubleClick"
Orientation="Horizontal"
Style="{StaticResource SliderStyle}"
Value="{Binding IcoExportIconRotate}" />
</mah:MetroHeader>
<mah:MetroHeader Header="Translation X">
<Slider
Maximum="128"
Minimum="-128"
MouseDoubleClick="Slider_MouseDoubleClick"
Orientation="Horizontal"
Style="{StaticResource SliderStyle}"
Value="{Binding IcoExportIconTranslateX}" />
</mah:MetroHeader>
<mah:MetroHeader Header="Translation Y">
<Slider
Maximum="128"
Minimum="-128"
MouseDoubleClick="Slider_MouseDoubleClick"
Orientation="Horizontal"
Style="{StaticResource SliderStyle}"
Value="{Binding IcoExportIconTranslateY}" />
</mah:MetroHeader>
</StackPanel>
</Expander>
<Expander
Margin="0,2,0,0"
DockPanel.Dock="Top"
Header="Add Rectangle">
<StackPanel>
<mah:MetroHeader Background="{StaticResource IconPackBrowser.Brushes.PanelBackground}">
<DockPanel LastChildFill="False">
<TextBlock
DockPanel.Dock="Left"
FontSize="16"
Text="Enable rectangle around Icon" />
<CheckBox DockPanel.Dock="Right" IsChecked="{Binding IcoExportRectEnabled}" />
</DockPanel>
</mah:MetroHeader>
<mah:MetroHeader Header="Rectangle stroke color">
<mah:ColorPicker SelectedColor="{Binding IcoExportPathStroke}" />
</mah:MetroHeader>
<mah:MetroHeader Header="Rectangle fill color">
<mah:ColorPicker SelectedColor="{Binding IcoExportPathFill}" />
</mah:MetroHeader>
<mah:MetroHeader Header="Rectangle size">
<Slider
Maximum="256"
Minimum="16"
Orientation="Horizontal"
Style="{StaticResource SliderStyle}"
Value="{Binding IcoExportRectSize}" />
</mah:MetroHeader>
<mah:MetroHeader Header="Rectangle stroke">
<Slider
Maximum="30"
Minimum="0"
Orientation="Horizontal"
Style="{StaticResource SliderStyle}"
Value="{Binding IcoExportPathStrokeThickness}" />
</mah:MetroHeader>
<mah:MetroHeader Header="Rectangle radius">
<Slider
Maximum="128"
Minimum="0"
Orientation="Horizontal"
Style="{StaticResource SliderStyle}"
Value="{Binding IcoExportRectRadius}" />
</mah:MetroHeader>
</StackPanel>
</Expander>
</StackPanel>
</ScrollViewer>
<DockPanel
Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="2"
LastChildFill="False">
<Button
x:Name="OK"
Width=" 100"
Margin="3"
Command="{Binding OkCommand}"
CommandParameter="{Binding ElementName=Preview}"
Content="Ok"
DockPanel.Dock="Right">
<Button.Style>
<Style BasedOn="{StaticResource MahApps.Styles.Button}" TargetType="{x:Type Button}">
<Setter Property="mah:ControlsHelper.ContentCharacterCasing" Value="Normal" />
</Style>
</Button.Style>
</Button>
<Button
x:Name="Cancel"
Width=" 100"
Margin="3,3,20,3"
Command="{Binding CancelCommand}"
Content="Cancel"
DockPanel.Dock="Right">
<Button.Style>
<Style BasedOn="{StaticResource MahApps.Styles.Button}" TargetType="{x:Type Button}">
<Setter Property="mah:ControlsHelper.ContentCharacterCasing" Value="Normal" />
</Style>
</Button.Style>
</Button>
</DockPanel>
</Grid>
</mah:MetroWindow>
Loading