Skip to content
This repository was archived by the owner on Aug 9, 2025. It is now read-only.
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit cd44984

Browse files
authoredNov 24, 2018
Merge pull request #186 from lederernc/dark_mode
Dark Mode in VS 2017
2 parents 5dbb487 + eee441e commit cd44984

File tree

2 files changed

+122
-83
lines changed

2 files changed

+122
-83
lines changed
 

‎CPPCheckPlugin/MainToolWindowUI.xaml

Lines changed: 113 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -5,108 +5,138 @@
55
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
66
xmlns:vsp="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.11.0"
77
mc:Ignorable="d"
8-
d:DesignHeight="300" d:DesignWidth="300">
9-
<Grid Background="{DynamicResource {x:Static vsp:EnvironmentColors.ToolWindowBackgroundBrushKey}}"
10-
>
11-
<ListView Margin="0" Name="listView" MouseDoubleClick="onProblemDoubleClick"
12-
ScrollViewer.CanContentScroll ="False"
13-
Background="{DynamicResource {x:Static vsp:EnvironmentColors.ToolWindowBackgroundBrushKey}}"
14-
Foreground="{DynamicResource {x:Static vsp:EnvironmentColors.ToolWindowTextBrushKey}}"
15-
>
16-
<ListView.Resources>
17-
<DataTemplate x:Key="Template">
18-
<Image Source="{Binding Path=Icon}"/>
19-
</DataTemplate>
8+
d:DesignHeight="300" d:DesignWidth="400">
209

21-
<ContextMenu x:Key="ItemContextMenu">
22-
<MenuItem x:Name="menuItem_suppressThisMessageProjectWide"
10+
<ListView Margin="0" Name="listView" MouseDoubleClick="onProblemDoubleClick"
11+
ScrollViewer.CanContentScroll ="False" Background="Transparent">
12+
13+
<ListView.Resources>
14+
<DataTemplate x:Key="Template">
15+
<Image Source="{Binding Path=Icon}"/>
16+
</DataTemplate>
17+
18+
<ContextMenu x:Key="ItemContextMenu">
19+
<MenuItem x:Name="menuItem_suppressThisMessageProjectWide"
2320
Click="menuItem_suppressThisMessageProjectWide"
2421
Header="Suppress this specific message for the Project">
25-
</MenuItem>
26-
<MenuItem x:Name="menuItem_suppressThisMessageSolutionWide"
22+
</MenuItem>
23+
<MenuItem x:Name="menuItem_suppressThisMessageSolutionWide"
2724
Click="menuItem_suppressThisMessageSolutionWide"
2825
Header="Suppress this specific message for the whole Solution">
29-
</MenuItem>
30-
<MenuItem x:Name="menuItem_suppressThisMessageGlobally"
26+
</MenuItem>
27+
<MenuItem x:Name="menuItem_suppressThisMessageGlobally"
3128
Click="menuItem_suppressThisMessageGlobally"
3229
Header="Suppress this specific message Globally">
33-
</MenuItem>
34-
<Separator/>
35-
<MenuItem x:Name="menuItem_suppressThisTypeOfMessageFileWide"
30+
</MenuItem>
31+
<Separator/>
32+
<MenuItem x:Name="menuItem_suppressThisTypeOfMessageFileWide"
3633
Click="menuItem_suppressThisTypeOfMessageFileWide"
3734
Header="Suppress this type of messages in the whole File">
38-
</MenuItem>
39-
<MenuItem x:Name="menuItem_suppressThisTypeOfMessageProjectWide"
35+
</MenuItem>
36+
<MenuItem x:Name="menuItem_suppressThisTypeOfMessageProjectWide"
4037
Click="menuItem_suppressThisTypeOfMessageProjectWide"
4138
Header="Suppress this type of messages in the whole Project">
42-
</MenuItem>
43-
<MenuItem x:Name="menuItem_suppressThisTypeOfMessageSolutionWide"
39+
</MenuItem>
40+
<MenuItem x:Name="menuItem_suppressThisTypeOfMessageSolutionWide"
4441
Click="menuItem_suppressThisTypeOfMessageSolutionWide"
4542
Header="Suppress this type of messages in the whole Solution">
46-
</MenuItem>
47-
<MenuItem x:Name="menuItem_suppressThisTypeOfMessageGlobally"
43+
</MenuItem>
44+
<MenuItem x:Name="menuItem_suppressThisTypeOfMessageGlobally"
4845
Click="menuItem_suppressThisTypeOfMessageGlobally"
4946
Header="Suppress this type of messages Globally">
50-
</MenuItem>
51-
<Separator/>
52-
<MenuItem x:Name="menuItem_suppressAllMessagesThisFileProjectWide"
47+
</MenuItem>
48+
<Separator/>
49+
<MenuItem x:Name="menuItem_suppressAllMessagesThisFileProjectWide"
5350
Click="menuItem_suppressAllMessagesThisFileProjectWide"
5451
Header="Suppress all messages from this file in the Project">
55-
</MenuItem>
56-
<MenuItem x:Name="menuItem_suppressAllMessagesThisFileSolutionWide"
52+
</MenuItem>
53+
<MenuItem x:Name="menuItem_suppressAllMessagesThisFileSolutionWide"
5754
Click="menuItem_suppressAllMessagesThisFileSolutionWide"
5855
Header="Suppress all messages from this file in the whole Solution">
59-
</MenuItem>
60-
<MenuItem x:Name="menuItem_suppressAllMessagesThisFileGlobally"
56+
</MenuItem>
57+
<MenuItem x:Name="menuItem_suppressAllMessagesThisFileGlobally"
6158
Click="menuItem_suppressAllMessagesThisFileGlobally"
6259
Header="Suppress all messages from this file Globally">
63-
</MenuItem>
64-
</ContextMenu>
65-
</ListView.Resources>
66-
<ListView.ItemContainerStyle>
67-
<Style TargetType="{x:Type ListViewItem}">
68-
<Setter Property="ContextMenu" Value="{StaticResource ItemContextMenu}"/>
69-
<Setter Property="VerticalContentAlignment" Value="Top"/>
70-
</Style>
71-
</ListView.ItemContainerStyle>
72-
<ListView.View>
73-
<GridView>
74-
<GridView.ColumnHeaderContainerStyle>
75-
<Style TargetType="{x:Type GridViewColumnHeader}">
76-
<Setter Property="Background" Value="{DynamicResource {x:Static vsp:EnvironmentColors.GridHeadingBackgroundBrushKey}}" />
77-
<Setter Property="Foreground" Value="{DynamicResource {x:Static vsp:EnvironmentColors.GridHeadingTextBrushKey}}" />
78-
</Style>
79-
</GridView.ColumnHeaderContainerStyle>
80-
<GridViewColumn x:Name="SeverityColumn" CellTemplate="{StaticResource Template}" Width ="Auto">
81-
<GridViewColumn.Header>
82-
<GridViewColumnHeader Tag="Severity" Click="problemColumnHeader_Click"></GridViewColumnHeader>
83-
</GridViewColumn.Header>
84-
</GridViewColumn>
85-
<GridViewColumn x:Name="FileNameColumn" DisplayMemberBinding="{Binding FileName}" Width="Auto">
86-
<GridViewColumn.Header>
87-
<GridViewColumnHeader Tag="FileName" Click="problemColumnHeader_Click">File</GridViewColumnHeader>
88-
</GridViewColumn.Header>
89-
</GridViewColumn>
90-
<GridViewColumn x:Name="LineColumn" DisplayMemberBinding="{Binding Line}" Width="Auto">
91-
<GridViewColumn.Header>
92-
<GridViewColumnHeader Tag="Line">Line</GridViewColumnHeader>
93-
</GridViewColumn.Header>
94-
</GridViewColumn>
95-
<GridViewColumn x:Name="MessageColumn" DisplayMemberBinding="{Binding Message}" Width="{Binding ElementName=helperField, Path=ActualWidth}">
96-
<GridViewColumn.Header>
97-
<GridViewColumnHeader Tag="Message" Click="problemColumnHeader_Click">Message</GridViewColumnHeader>
98-
</GridViewColumn.Header>
99-
</GridViewColumn>
100-
</GridView>
101-
</ListView.View>
102-
</ListView>
103-
<!--This is the hidden helper Grid which does the resizing -->
104-
<Grid Visibility="Hidden">
105-
<Grid.ColumnDefinitions>
106-
<ColumnDefinition Width="*"/>
107-
</Grid.ColumnDefinitions>
108-
<!--This is the hidden helper Field which is used to bind to, using the "Fill" column of the helper grid-->
109-
<Grid Grid.Column="1" x:Name="helperField"/>
110-
</Grid>
111-
</Grid>
60+
</MenuItem>
61+
</ContextMenu>
62+
</ListView.Resources>
63+
<ListView.ItemContainerStyle>
64+
<Style TargetType="{x:Type ListViewItem}">
65+
<Setter Property="Template">
66+
<Setter.Value>
67+
<ControlTemplate TargetType="{x:Type ListViewItem}">
68+
<Border x:Name="Bd"
69+
BorderBrush="{TemplateBinding BorderBrush}"
70+
BorderThickness="{TemplateBinding BorderThickness}"
71+
Background="{TemplateBinding Background}"
72+
Padding="{TemplateBinding Padding}"
73+
SnapsToDevicePixels="true">
74+
<GridViewRowPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
75+
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
76+
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
77+
</Border>
78+
</ControlTemplate>
79+
</Setter.Value>
80+
</Setter>
81+
<Setter Property="ContextMenu" Value="{StaticResource ItemContextMenu}"/>
82+
<Setter Property="VerticalContentAlignment" Value="Top"/>
83+
<Style.Triggers>
84+
<Trigger Property="IsSelected" Value="True">
85+
<Setter Property="Background" Value="{DynamicResource {x:Static vsp:TreeViewColors.SelectedItemActiveBrushKey}}" />
86+
<Setter Property="Foreground" Value="{DynamicResource {x:Static vsp:TreeViewColors.SelectedItemActiveTextBrushKey}}" />
87+
</Trigger>
88+
<Trigger Property="IsSelected" Value="False">
89+
<Setter Property="Background" Value="{DynamicResource {x:Static vsp:TreeViewColors.BackgroundBrushKey}}" />
90+
<Setter Property="Foreground" Value="{DynamicResource {x:Static vsp:TreeViewColors.BackgroundTextBrushKey}}" />
91+
</Trigger>
92+
</Style.Triggers>
93+
</Style>
94+
</ListView.ItemContainerStyle>
95+
<ListView.View>
96+
<GridView>
97+
<GridView.ColumnHeaderContainerStyle>
98+
<Style TargetType="{x:Type GridViewColumnHeader}">
99+
<Setter Property="Background" Value="{DynamicResource {x:Static vsp:HeaderColors.DefaultBrushKey}}" />
100+
<Setter Property="Foreground" Value="{DynamicResource {x:Static vsp:HeaderColors.DefaultTextBrushKey}}" />
101+
<Setter Property="BorderBrush" Value="{DynamicResource {x:Static vsp:HeaderColors.SeparatorLineBrushKey}}"/>
102+
<Style.Triggers>
103+
<Trigger Property="IsMouseOver" Value="True">
104+
<Setter Property="Background" Value="{DynamicResource {x:Static vsp:HeaderColors.MouseOverBrushKey}}"/>
105+
<Setter Property="Foreground" Value="{DynamicResource {x:Static vsp:HeaderColors.MouseOverTextBrushKey}}"/>
106+
</Trigger>
107+
<Trigger Property="IsPressed" Value="True">
108+
<Setter Property="Background" Value="{DynamicResource {x:Static vsp:HeaderColors.MouseDownBrushKey}}"/>
109+
<Setter Property="Foreground" Value="{DynamicResource {x:Static vsp:HeaderColors.MouseDownTextBrushKey}}"/>
110+
</Trigger>
111+
</Style.Triggers>
112+
</Style>
113+
</GridView.ColumnHeaderContainerStyle>
114+
<GridViewColumn x:Name="SeverityColumn" CellTemplate="{StaticResource Template}" Width ="32">
115+
<GridViewColumn.Header>
116+
<GridViewColumnHeader Tag="Severity" Click="problemColumnHeader_Click"></GridViewColumnHeader>
117+
</GridViewColumn.Header>
118+
</GridViewColumn>
119+
<GridViewColumn x:Name="FileNameColumn" DisplayMemberBinding="{Binding FileName}" Width="Auto">
120+
<GridViewColumn.Header>
121+
<GridViewColumnHeader Tag="FileName" Click="problemColumnHeader_Click">File</GridViewColumnHeader>
122+
</GridViewColumn.Header>
123+
</GridViewColumn>
124+
<GridViewColumn x:Name="LineColumn" DisplayMemberBinding="{Binding Line}" Width="Auto">
125+
<GridViewColumn.Header>
126+
<GridViewColumnHeader Tag="Line">Line</GridViewColumnHeader>
127+
</GridViewColumn.Header>
128+
</GridViewColumn>
129+
<GridViewColumn x:Name="MessageColumn" Width="{Binding ElementName=helperField, Path=ActualWidth}">
130+
<GridViewColumn.CellTemplate>
131+
<DataTemplate>
132+
<TextBlock TextWrapping="Wrap" Text="{Binding Message}" />
133+
</DataTemplate>
134+
</GridViewColumn.CellTemplate>
135+
<GridViewColumn.Header>
136+
<GridViewColumnHeader Tag="Message" Click="problemColumnHeader_Click" RenderTransformOrigin="2.065,0.467">Message</GridViewColumnHeader>
137+
</GridViewColumn.Header>
138+
</GridViewColumn>
139+
</GridView>
140+
</ListView.View>
141+
</ListView>
112142
</UserControl>

‎CPPCheckPlugin/MainToolWindowUI.xaml.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,15 @@ public Problem Problem
259259

260260
Problem _problem;
261261
}
262+
private void ListView_SelectionChanged()
263+
{
264+
}
265+
private void ListView_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
266+
{
267+
}
268+
private void ListView_SelectionChanged_2(object sender, SelectionChangedEventArgs e)
269+
{
270+
}
262271
}
263272

264273
public class DeleteObjectInvoker

0 commit comments

Comments
 (0)
This repository has been archived.