Skip to content

Commit 8d1cbad

Browse files
committed
Move priority buttons to left, add dynamic sytling. Closes #4647
1 parent c4524c7 commit 8d1cbad

File tree

9 files changed

+297
-52
lines changed

9 files changed

+297
-52
lines changed

Rubberduck.Core/UI/AddRemoveReferences/AddRemoveReferencesWindow.xaml

Lines changed: 88 additions & 41 deletions
Large diffs are not rendered by default.
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Globalization;
4+
using System.Windows.Data;
5+
using System.Windows.Media;
6+
using Rubberduck.AddRemoveReferences;
7+
using ImageSourceConverter = Rubberduck.UI.Converters.ImageSourceConverter;
8+
9+
namespace Rubberduck.UI.AddRemoveReferences
10+
{
11+
public class PriorityButtonImageSourceConverter : ImageSourceConverter, IMultiValueConverter
12+
{
13+
private enum IconKey
14+
{
15+
None,
16+
MoveUp,
17+
MoveUpDim,
18+
MoveDown,
19+
MoveDownDim
20+
}
21+
22+
private readonly IDictionary<IconKey, ImageSource> _icons = new Dictionary<IconKey, ImageSource>
23+
{
24+
{ IconKey.None, null },
25+
{ IconKey.MoveUp , ToImageSource(Resources.RubberduckUI.arrow_090) },
26+
{ IconKey.MoveUpDim, ToImageSource(Resources.RubberduckUI.arrow_090_dimmed) },
27+
{ IconKey.MoveDown, ToImageSource(Resources.RubberduckUI.arrow_270) },
28+
{ IconKey.MoveDownDim, ToImageSource(Resources.RubberduckUI.arrow_270_dimmed) }
29+
};
30+
31+
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
32+
{
33+
return _icons[IconKey.None];
34+
}
35+
36+
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
37+
{
38+
if (values is null ||
39+
values.Length != 2 ||
40+
!(values[1] is ReferenceModel reference) || //DataContext
41+
reference.IsBuiltIn ||
42+
!(parameter is string direction))
43+
{
44+
return _icons[IconKey.None];
45+
}
46+
47+
var mouseOver = (bool)values[0];
48+
49+
if (mouseOver)
50+
{
51+
return direction.Equals("Up") ? _icons[IconKey.MoveUp] : _icons[IconKey.MoveDown];
52+
}
53+
54+
return direction.Equals("Up") ? _icons[IconKey.MoveUpDim] : _icons[IconKey.MoveDownDim];
55+
}
56+
57+
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
58+
{
59+
throw new NotImplementedException();
60+
}
61+
}
62+
}

Rubberduck.Core/UI/AddRemoveReferences/PriorityButtonVisibilityConverter.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,17 @@ internal class PriorityButtonVisibilityConverter : IMultiValueConverter
1010
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
1111
{
1212
if (values is null ||
13-
values.Length != 4 ||
14-
!(bool)values[0] || //IsSelected
15-
!(values[2] is ReferenceModel reference) || //DataContext
13+
values.Length != 3 ||
14+
!(values[1] is ReferenceModel reference) || //DataContext
1615
reference.IsBuiltIn ||
1716
!(parameter is string direction))
1817
{
1918
return false;
2019
}
2120

22-
var position = reference.Priority; //ProjectSelect.SelectedIndex
23-
var items = (int)values[1]; //ProjectSelect.Items.Count
24-
var builtIn = (int)values[3]; //AddRemoveReferencesWindow.DataContext.BuiltInReferenceCount
21+
var position = reference.Priority;
22+
var items = (int)values[0]; //ProjectSelect.Items.Count
23+
var builtIn = (int)values[2]; //AddRemoveReferencesWindow.DataContext.BuiltInReferenceCount
2524

2625
if (direction.Equals("Up"))
2726
{
Loading
Loading
Loading
469 Bytes
Loading

Rubberduck.Resources/RubberduckUI.Designer.cs

Lines changed: 109 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Rubberduck.Resources/RubberduckUI.resx

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1448,4 +1448,37 @@ NOTE: Restart is required for the setting to take effect.</value>
14481448
<value>Add/Remove References - {0}</value>
14491449
<comment>{0} = Project name</comment>
14501450
</data>
1451+
<data name="edit_size" type="System.Resources.ResXFileRef, System.Windows.Forms">
1452+
<value>Icons\Fugue\edit-size.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
1453+
</data>
1454+
<data name="SyncArrows" type="System.Resources.ResXFileRef, System.Windows.Forms">
1455+
<value>Icons\Custom\PNG\SyncArrows.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
1456+
</data>
1457+
<data name="arrow_090" type="System.Resources.ResXFileRef, System.Windows.Forms">
1458+
<value>icons\fugue\arrow-090.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
1459+
</data>
1460+
<data name="arrow_090_dimmed" type="System.Resources.ResXFileRef, System.Windows.Forms">
1461+
<value>Icons\Fugue\arrow-090-dimmed.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
1462+
</data>
1463+
<data name="arrow_270" type="System.Resources.ResXFileRef, System.Windows.Forms">
1464+
<value>icons\fugue\arrow-270.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
1465+
</data>
1466+
<data name="arrow_270_dimmed" type="System.Resources.ResXFileRef, System.Windows.Forms">
1467+
<value>Icons\Fugue\arrow-270-dimmed.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
1468+
</data>
1469+
<data name="References_AddToolTip" xml:space="preserve">
1470+
<value>Add to project</value>
1471+
</data>
1472+
<data name="References_MoveDownToolTip" xml:space="preserve">
1473+
<value>Move down</value>
1474+
</data>
1475+
<data name="References_MoveUpToolTip" xml:space="preserve">
1476+
<value>Move up</value>
1477+
</data>
1478+
<data name="References_PinToolTip" xml:space="preserve">
1479+
<value>Pin reference</value>
1480+
</data>
1481+
<data name="References_RemoveToolTip" xml:space="preserve">
1482+
<value>Remove from project</value>
1483+
</data>
14511484
</root>

0 commit comments

Comments
 (0)