Skip to content

Commit

Permalink
Move priority buttons to left, add dynamic sytling. Closes #4647
Browse files Browse the repository at this point in the history
  • Loading branch information
comintern committed Dec 19, 2018
1 parent c4524c7 commit 8d1cbad
Show file tree
Hide file tree
Showing 9 changed files with 297 additions and 52 deletions.
129 changes: 88 additions & 41 deletions Rubberduck.Core/UI/AddRemoveReferences/AddRemoveReferencesWindow.xaml

Large diffs are not rendered by default.

@@ -0,0 +1,62 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Windows.Data;
using System.Windows.Media;
using Rubberduck.AddRemoveReferences;
using ImageSourceConverter = Rubberduck.UI.Converters.ImageSourceConverter;

namespace Rubberduck.UI.AddRemoveReferences
{
public class PriorityButtonImageSourceConverter : ImageSourceConverter, IMultiValueConverter
{
private enum IconKey
{
None,
MoveUp,
MoveUpDim,
MoveDown,
MoveDownDim
}

private readonly IDictionary<IconKey, ImageSource> _icons = new Dictionary<IconKey, ImageSource>
{
{ IconKey.None, null },
{ IconKey.MoveUp , ToImageSource(Resources.RubberduckUI.arrow_090) },
{ IconKey.MoveUpDim, ToImageSource(Resources.RubberduckUI.arrow_090_dimmed) },
{ IconKey.MoveDown, ToImageSource(Resources.RubberduckUI.arrow_270) },
{ IconKey.MoveDownDim, ToImageSource(Resources.RubberduckUI.arrow_270_dimmed) }
};

public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return _icons[IconKey.None];
}

public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if (values is null ||
values.Length != 2 ||
!(values[1] is ReferenceModel reference) || //DataContext
reference.IsBuiltIn ||
!(parameter is string direction))
{
return _icons[IconKey.None];
}

var mouseOver = (bool)values[0];

if (mouseOver)
{
return direction.Equals("Up") ? _icons[IconKey.MoveUp] : _icons[IconKey.MoveDown];
}

return direction.Equals("Up") ? _icons[IconKey.MoveUpDim] : _icons[IconKey.MoveDownDim];
}

public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
Expand Up @@ -10,18 +10,17 @@ internal class PriorityButtonVisibilityConverter : IMultiValueConverter
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if (values is null ||
values.Length != 4 ||
!(bool)values[0] || //IsSelected
!(values[2] is ReferenceModel reference) || //DataContext
values.Length != 3 ||
!(values[1] is ReferenceModel reference) || //DataContext
reference.IsBuiltIn ||
!(parameter is string direction))
{
return false;
}

var position = reference.Priority; //ProjectSelect.SelectedIndex
var items = (int)values[1]; //ProjectSelect.Items.Count
var builtIn = (int)values[3]; //AddRemoveReferencesWindow.DataContext.BuiltInReferenceCount
var position = reference.Priority;
var items = (int)values[0]; //ProjectSelect.Items.Count
var builtIn = (int)values[2]; //AddRemoveReferencesWindow.DataContext.BuiltInReferenceCount

if (direction.Equals("Up"))
{
Expand Down
Binary file added Rubberduck.Resources/Icons/Custom/PNG/SyncArrows.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Rubberduck.Resources/Icons/Fugue/edit-size.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
114 changes: 109 additions & 5 deletions Rubberduck.Resources/RubberduckUI.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

33 changes: 33 additions & 0 deletions Rubberduck.Resources/RubberduckUI.resx
Expand Up @@ -1448,4 +1448,37 @@ NOTE: Restart is required for the setting to take effect.</value>
<value>Add/Remove References - {0}</value>
<comment>{0} = Project name</comment>
</data>
<data name="edit_size" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Icons\Fugue\edit-size.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="SyncArrows" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Icons\Custom\PNG\SyncArrows.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_090" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>icons\fugue\arrow-090.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_090_dimmed" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Icons\Fugue\arrow-090-dimmed.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_270" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>icons\fugue\arrow-270.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_270_dimmed" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Icons\Fugue\arrow-270-dimmed.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="References_AddToolTip" xml:space="preserve">
<value>Add to project</value>
</data>
<data name="References_MoveDownToolTip" xml:space="preserve">
<value>Move down</value>
</data>
<data name="References_MoveUpToolTip" xml:space="preserve">
<value>Move up</value>
</data>
<data name="References_PinToolTip" xml:space="preserve">
<value>Pin reference</value>
</data>
<data name="References_RemoveToolTip" xml:space="preserve">
<value>Remove from project</value>
</data>
</root>

0 comments on commit 8d1cbad

Please sign in to comment.