1
0
Fork 0
mirror of https://github.com/wagesj45/butterflow-ui.git synced 2024-12-22 09:12:42 -06:00

Menu progress

This commit is contained in:
Jordan Wages 2018-07-04 19:46:33 -05:00
parent 9af3ad400b
commit 0ffd5c401b
7 changed files with 142 additions and 20 deletions

View file

@ -21,6 +21,8 @@ namespace butterflow_ui
private decimal value; private decimal value;
/// <summary> True if the subregion runs to the end, false if not. </summary> /// <summary> True if the subregion runs to the end, false if not. </summary>
private bool toEnd; private bool toEnd;
/// <summary> A unique identifier used to locate this subregion withing a subregion collection. </summary>
private Guid identifier = new Guid();
#endregion #endregion
@ -100,6 +102,16 @@ namespace butterflow_ui
OnPropertyChanged(); OnPropertyChanged();
} }
} }
/// <summary> Gets a unique identifier used to locate this subregion withing a subregion collection. </summary>
/// <value> The unique identifier. </value>
public Guid Identifier
{
get
{
return this.identifier;
}
}
#endregion #endregion
} }

View file

@ -150,7 +150,7 @@
</ControlTemplate> </ControlTemplate>
<ControlTemplate x:Key="RadarIcon"> <ControlTemplate x:Key="RadarIcon">
<Viewbox> <Viewbox>
<Path Fill="#000000"> <Path Fill="#FF1B7A16">
<Path.Data> <Path.Data>
<PathGeometry Figures="M12 0c6.623 0 12 5.377 12 12s-5.377 12-12 12-12-5.377-12-12 5.377-12 12-12zm6.363 18.363c-1.629 1.629-3.879 2.637-6.363 2.637-4.967 0-9-4.033-9-9 0-4.28 2.994-7.866 7-8.777v1.029c-3.449.889-6 4.023-6 7.748 0 4.415 3.585 8 8 8 2.208 0 4.208-.896 5.656-2.344l.707.707zm-2.475-2.475c-.995.996-2.37 1.612-3.888 1.612-3.036 0-5.5-2.464-5.5-5.5 0-2.33 1.452-4.324 3.5-5.124v1.092c-1.481.737-2.5 2.267-2.5 4.032 0 2.484 2.016 4.5 4.5 4.5 1.242 0 2.367-.504 3.181-1.319l.707.707zm-4.888-5.62v-7.268c0-.265.105-.52.293-.707.187-.188.442-.293.707-.293.265 0 .52.105.707.293.188.187.293.442.293.707v7.268c.598.346 1 .992 1 1.732 0 1.104-.896 2-2 2s-2-.896-2-2c0-.74.402-1.386 1-1.732z" FillRule="EvenOdd"/> <PathGeometry Figures="M12 0c6.623 0 12 5.377 12 12s-5.377 12-12 12-12-5.377-12-12 5.377-12 12-12zm6.363 18.363c-1.629 1.629-3.879 2.637-6.363 2.637-4.967 0-9-4.033-9-9 0-4.28 2.994-7.866 7-8.777v1.029c-3.449.889-6 4.023-6 7.748 0 4.415 3.585 8 8 8 2.208 0 4.208-.896 5.656-2.344l.707.707zm-2.475-2.475c-.995.996-2.37 1.612-3.888 1.612-3.036 0-5.5-2.464-5.5-5.5 0-2.33 1.452-4.324 3.5-5.124v1.092c-1.481.737-2.5 2.267-2.5 4.032 0 2.484 2.016 4.5 4.5 4.5 1.242 0 2.367-.504 3.181-1.319l.707.707zm-4.888-5.62v-7.268c0-.265.105-.52.293-.707.187-.188.442-.293.707-.293.265 0 .52.105.707.293.188.187.293.442.293.707v7.268c.598.346 1 .992 1 1.732 0 1.104-.896 2-2 2s-2-.896-2-2c0-.74.402-1.386 1-1.732z" FillRule="EvenOdd"/>
</Path.Data> </Path.Data>
@ -159,7 +159,7 @@
</ControlTemplate> </ControlTemplate>
<ControlTemplate x:Key="CancelIcon"> <ControlTemplate x:Key="CancelIcon">
<Viewbox> <Viewbox>
<Path Fill="#000000"> <Path Fill="#FF5B0D0D">
<Path.Data> <Path.Data>
<PathGeometry Figures="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm4.151 17.943l-4.143-4.102-4.117 4.159-1.833-1.833 4.104-4.157-4.162-4.119 1.833-1.833 4.155 4.102 4.106-4.16 1.849 1.849-4.1 4.141 4.157 4.104-1.849 1.849z" FillRule="NonZero"/> <PathGeometry Figures="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm4.151 17.943l-4.143-4.102-4.117 4.159-1.833-1.833 4.104-4.157-4.162-4.119 1.833-1.833 4.155 4.102 4.106-4.16 1.849 1.849-4.1 4.141 4.157 4.104-1.849 1.849z" FillRule="NonZero"/>
</Path.Data> </Path.Data>

View file

@ -402,6 +402,15 @@ namespace butterflow_ui.Localization {
} }
} }
/// <summary>
/// Looks up a localized string similar to _Open....
/// </summary>
public static string OpenMenuItem {
get {
return ResourceManager.GetString("OpenMenuItem", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Pixel Neighborhood. /// Looks up a localized string similar to Pixel Neighborhood.
/// </summary> /// </summary>
@ -501,6 +510,24 @@ namespace butterflow_ui.Localization {
} }
} }
/// <summary>
/// Looks up a localized string similar to Save Configuration _As....
/// </summary>
public static string SaveAsMenuItem {
get {
return ResourceManager.GetString("SaveAsMenuItem", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to _Save Configuration....
/// </summary>
public static string SaveMenuItem {
get {
return ResourceManager.GetString("SaveMenuItem", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Skip backward in the video.. /// Looks up a localized string similar to Skip backward in the video..
/// </summary> /// </summary>

View file

@ -273,6 +273,9 @@
<data name="LevelsTooltip" xml:space="preserve"> <data name="LevelsTooltip" xml:space="preserve">
<value>The number of pyramid layers.</value> <value>The number of pyramid layers.</value>
</data> </data>
<data name="OpenMenuItem" xml:space="preserve">
<value>_Open...</value>
</data>
<data name="PixelNeighborhoodLabel" xml:space="preserve"> <data name="PixelNeighborhoodLabel" xml:space="preserve">
<value>Pixel Neighborhood</value> <value>Pixel Neighborhood</value>
</data> </data>
@ -291,6 +294,12 @@
<data name="PyramidScaleTooltip" xml:space="preserve"> <data name="PyramidScaleTooltip" xml:space="preserve">
<value /> <value />
</data> </data>
<data name="SaveAsMenuItem" xml:space="preserve">
<value>Save Configuration _As...</value>
</data>
<data name="SaveMenuItem" xml:space="preserve">
<value>_Save Configuration...</value>
</data>
<data name="SmoothDerivativeLabel" xml:space="preserve"> <data name="SmoothDerivativeLabel" xml:space="preserve">
<value>Smooth Derivative</value> <value>Smooth Derivative</value>
</data> </data>

View file

@ -29,17 +29,17 @@
<DockPanel> <DockPanel>
<Menu DockPanel.Dock="Top"> <Menu DockPanel.Dock="Top">
<MenuItem Header="{x:Static loc:Localization.FileMenu}"> <MenuItem Header="{x:Static loc:Localization.FileMenu}">
<MenuItem Header="Open"> <MenuItem Name="menuOpen" Header="{x:Static loc:Localization.OpenMenuItem}" Click="menuOpen_Click">
<MenuItem.Icon> <MenuItem.Icon>
<ContentControl Template="{StaticResource OpenIcon}" /> <ContentControl Template="{StaticResource OpenIcon}" />
</MenuItem.Icon> </MenuItem.Icon>
</MenuItem> </MenuItem>
<MenuItem Header="Save Configuration"> <MenuItem Name="menuSaveConfiguration" Header="{x:Static loc:Localization.SaveMenuItem}" Click="menuSaveConfiguration_Click">
<MenuItem.Icon> <MenuItem.Icon>
<ContentControl Template="{StaticResource SaveIcon}" /> <ContentControl Template="{StaticResource SaveIcon}" />
</MenuItem.Icon> </MenuItem.Icon>
</MenuItem> </MenuItem>
<MenuItem Header="Save Configuration As..."> <MenuItem Name="menuSaveConfigurationAs" Header="{x:Static loc:Localization.SaveAsMenuItem}" Click="menuSaveConfigurationAs_Click">
<MenuItem.Icon> <MenuItem.Icon>
<ContentControl Template="{StaticResource SaveAsIcon}" /> <ContentControl Template="{StaticResource SaveAsIcon}" />
</MenuItem.Icon> </MenuItem.Icon>
@ -47,18 +47,18 @@
</MenuItem> </MenuItem>
<MenuItem Header="{x:Static loc:Localization.EditMenu}" /> <MenuItem Header="{x:Static loc:Localization.EditMenu}" />
<MenuItem Header="{x:Static loc:Localization.HelpMenu}"> <MenuItem Header="{x:Static loc:Localization.HelpMenu}">
<MenuItem Header="{x:Static loc:Localization.AboutButterflowMenu}" > <MenuItem Name="menuButterflowGithub" Header="{x:Static loc:Localization.AboutButterflowMenu}" Click="menuButterflowGithub_Click" >
<MenuItem.Icon> <MenuItem.Icon>
<ContentControl Template="{StaticResource LinkIcon}" /> <ContentControl Template="{StaticResource LinkIcon}" />
</MenuItem.Icon> </MenuItem.Icon>
</MenuItem> </MenuItem>
<MenuItem Header="{x:Static loc:Localization.AboutButterflowUIMenu}"> <MenuItem Name="menuButterflowUIGithub" Header="{x:Static loc:Localization.AboutButterflowUIMenu}" Click="menuButterflowUIGithub_Click">
<MenuItem.Icon> <MenuItem.Icon>
<ContentControl Template="{StaticResource LinkIcon}" /> <ContentControl Template="{StaticResource LinkIcon}" />
</MenuItem.Icon> </MenuItem.Icon>
</MenuItem> </MenuItem>
<Separator /> <Separator />
<MenuItem Header="{x:Static loc:Localization.AboutMenu}"> <MenuItem Name="menuAboutButterflowUI" Header="{x:Static loc:Localization.AboutMenu}" Click="menuAboutButterflowUI_Click">
<MenuItem.Icon> <MenuItem.Icon>
<ContentControl Template="{StaticResource QuestionIcon}" /> <ContentControl Template="{StaticResource QuestionIcon}" />
</MenuItem.Icon> </MenuItem.Icon>
@ -222,16 +222,19 @@
<ListView Name="listSubregions" MinHeight="25" ItemsSource="{Binding OptionsConfiguration.Subregions, Mode=OneWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type butterflow_ui:MainWindow}}, UpdateSourceTrigger=PropertyChanged}"> <ListView Name="listSubregions" MinHeight="25" ItemsSource="{Binding OptionsConfiguration.Subregions, Mode=OneWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type butterflow_ui:MainWindow}}, UpdateSourceTrigger=PropertyChanged}">
<ListView.ItemTemplate> <ListView.ItemTemplate>
<DataTemplate> <DataTemplate>
<WrapPanel> <DockPanel MaxHeight="24">
<TextBlock Text="{x:Static loc:Localization.StartLabel}" /> <TextBlock VerticalAlignment="Center" Text="{x:Static loc:Localization.StartLabel}" />
<TextBlock Text="{Binding Start, Converter={x:Static gu:TimeSpanToStringConverter.Default}}" ToolTip="{Binding Start}"/> <TextBlock VerticalAlignment="Center" Text="{Binding Start, Converter={x:Static gu:TimeSpanToStringConverter.Default}}" ToolTip="{Binding Start}"/>
<TextBlock Text="{x:Static loc:Localization.EndLabel}" /> <TextBlock VerticalAlignment="Center" Text="{x:Static loc:Localization.EndLabel}" />
<TextBlock Text="{Binding End, Converter={x:Static gu:TimeSpanToStringConverter.Default}}" ToolTip="{Binding End}"/> <TextBlock VerticalAlignment="Center" Text="{Binding End, Converter={x:Static gu:TimeSpanToStringConverter.Default}}" ToolTip="{Binding End}"/>
<ComboBox ItemsSource="{Binding Source={StaticResource enumRegionTypeDataProvider}}" SelectedItem="{Binding SubregionType, Mode=TwoWay}"/> <ComboBox VerticalAlignment="Center" ItemsSource="{Binding Source={StaticResource enumRegionTypeDataProvider}}" SelectedItem="{Binding SubregionType, Mode=TwoWay}"/>
<TextBox MinWidth="35" Text="{Binding Value, Mode=TwoWay}" /> <TextBox VerticalAlignment="Center" MinWidth="35" Text="{Binding Value, Mode=TwoWay}" />
<TextBlock Text="{x:Static loc:Localization.ToEndLabel}" /> <TextBlock VerticalAlignment="Center" Text="{x:Static loc:Localization.ToEndLabel}" />
<CheckBox IsChecked="{Binding ToEnd, Mode=TwoWay}" /> <CheckBox VerticalAlignment="Center" IsChecked="{Binding ToEnd, Mode=TwoWay}" />
</WrapPanel> <Button VerticalAlignment="Center" HorizontalAlignment="Right" Name="btnRemoveSubregion" Click="btnRemoveSubregion_Click" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" Tag="{Binding Identifier}">
<ContentControl Template="{StaticResource CancelIcon}" />
</Button>
</DockPanel>
</DataTemplate> </DataTemplate>
</ListView.ItemTemplate> </ListView.ItemTemplate>
</ListView> </ListView>

View file

@ -1,6 +1,7 @@
using Microsoft.Win32; using Microsoft.Win32;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -312,6 +313,76 @@ namespace butterflow_ui
this.ButterflowWrapper.Run(this.OptionsConfiguration); this.ButterflowWrapper.Run(this.OptionsConfiguration);
} }
/// <summary> Event handler. Called by btnRemoveSubregion for click events. </summary>
/// <param name="sender"> Source of the event. </param>
/// <param name="e"> Routed event information. </param>
private void btnRemoveSubregion_Click(object sender, RoutedEventArgs e)
{
var button = sender as Button;
if(button != null)
{
if (button.Tag.GetType() == typeof(Guid))
{
var identifier = (Guid)button.Tag;
if (this.OptionsConfiguration.Subregions.Any(sr => sr.Identifier == identifier))
{
var item = this.OptionsConfiguration.Subregions.Where(sr => sr.Identifier == identifier).First();
this.OptionsConfiguration.Subregions.Remove(item);
}
}
}
}
/// <summary> Event handler. Called by menuOpen for click events. </summary>
/// <param name="sender"> Source of the event. </param>
/// <param name="e"> Routed event information. </param>
private void menuOpen_Click(object sender, RoutedEventArgs e)
{
}
/// <summary> Event handler. Called by menuSaveConfiguration for click events. </summary>
/// <param name="sender"> Source of the event. </param>
/// <param name="e"> Routed event information. </param>
private void menuSaveConfiguration_Click(object sender, RoutedEventArgs e)
{
}
/// <summary> Event handler. Called by menuSaveConfigurationAs for click events. </summary>
/// <param name="sender"> Source of the event. </param>
/// <param name="e"> Routed event information. </param>
private void menuSaveConfigurationAs_Click(object sender, RoutedEventArgs e)
{
}
/// <summary> Event handler. Called by menuButterflowGithub for click events. </summary>
/// <param name="sender"> Source of the event. </param>
/// <param name="e"> Routed event information. </param>
private void menuButterflowGithub_Click(object sender, RoutedEventArgs e)
{
Process.Start("https://github.com/dthpham/butterflow");
}
/// <summary> Event handler. Called by menuButterflowUIGithub for click events. </summary>
/// <param name="sender"> Source of the event. </param>
/// <param name="e"> Routed event information. </param>
private void menuButterflowUIGithub_Click(object sender, RoutedEventArgs e)
{
Process.Start("https://github.com/wagesj45/butterflow-ui");
}
/// <summary> Event handler. Called by menuAboutButterflowUI for click events. </summary>
/// <param name="sender"> Source of the event. </param>
/// <param name="e"> Routed event information. </param>
private void menuAboutButterflowUI_Click(object sender, RoutedEventArgs e)
{
}
#endregion #endregion
} }
} }

View file

@ -312,6 +312,7 @@ namespace butterflow_ui
/// <summary> Gets or sets the size of the pixel neighborhood. </summary> /// <summary> Gets or sets the size of the pixel neighborhood. </summary>
/// <value> The size of the pixel neighborhood. </value> /// <value> The size of the pixel neighborhood. </value>
/// <remarks> Per butterflow's documentation, the valid range for --poly-n is {5,7}. </remarks>
public string PixelNeighborhood public string PixelNeighborhood
{ {
get get
@ -322,8 +323,7 @@ namespace butterflow_ui
{ {
interpreter.Interpret(value); interpreter.Interpret(value);
// Per butterflow's documentation, the valid range for --poly-n is {5,7} if (interpreter.Int >= 5 && interpreter.Int <= 7)
if (interpreter.Int >= 5 || interpreter.Int <= 7)
{ {
this.pixelNeighborhood = interpreter.Int; this.pixelNeighborhood = interpreter.Int;
} }