<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	xmlns:cc="clr-namespace:ICSharpCode.AvalonEdit.CodeCompletion"
>
	<cc:InsightWindowTemplateSelector x:Key="templateSelector" />
	
	<!-- Template for InsightWindow. Based on the template for ToolTip. -->
	<Style TargetType="{x:Type cc:InsightWindow}">
		<Setter Property="SizeToContent" Value="WidthAndHeight" />
		
		<Setter Property="BorderThickness" Value="1" />
		<Setter Property="BorderBrush" Value="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}" />
		<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.InfoBrushKey}}" />
		<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.InfoTextBrushKey}}" />
		<Setter Property="FontFamily" Value="{DynamicResource {x:Static SystemFonts.StatusFontFamilyKey}}" />
		<Setter Property="FontSize" Value="{DynamicResource {x:Static SystemFonts.StatusFontSizeKey}}" />
		<Setter Property="FontStyle" Value="{DynamicResource {x:Static SystemFonts.StatusFontStyleKey}}" />
		<Setter Property="FontWeight" Value="{DynamicResource {x:Static SystemFonts.StatusFontWeightKey}}" />
		<Setter Property="Padding" Value="1,1,3,1" />
		<Setter Property="HorizontalContentAlignment" Value="Left" />
		<Setter Property="VerticalContentAlignment" Value="Center" />
		<Setter Property="Template">
			<Setter.Value>
				<ControlTemplate TargetType="{x:Type cc:InsightWindow}">
					<Border BorderThickness="{TemplateBinding Border.BorderThickness}"
					        Padding="{TemplateBinding Control.Padding}"
					        CornerRadius="2,2,2,2"
					        BorderBrush="{TemplateBinding Border.BorderBrush}"
					        Background="{TemplateBinding Panel.Background}">
						<AdornerDecorator>
							<ContentPresenter
								Content="{TemplateBinding ContentControl.Content}"
								ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}"
								ContentStringFormat="{TemplateBinding ContentControl.ContentStringFormat}"
								HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
								VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}"
								SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" />
						</AdornerDecorator>
					</Border>
				</ControlTemplate>
			</Setter.Value>
		</Setter>
	</Style>
	
	<!-- Template for OverloadViewer. -->
	<Style TargetType="{x:Type cc:OverloadViewer}">
		<Setter Property="Template">
			<Setter.Value>
				<ControlTemplate TargetType="{x:Type cc:OverloadViewer}">
					<Grid>
						<Grid.Resources>
							<cc:CollapseIfSingleOverloadConverter x:Key="collapseIfSingleOverloadConverter"/>
							
							<!-- Style of the UpDownButton -->
							<Style TargetType="{x:Type Button}" x:Key="upDownButtonStyle">
								<Style.Setters>
									<Setter Property="Background" Value="LightGray"/>
									<Setter Property="Padding" Value="2,2,2,2"/>
									<Setter Property="Width" Value="9"/>
									<Setter Property="Height" Value="9"/>
									<Setter Property="SnapsToDevicePixels" Value="True"/>
									<Setter Property="OverridesDefaultStyle" Value="True"/>
									<Setter Property="Template">
										<Setter.Value>
											<ControlTemplate TargetType="{x:Type Button}">
												<Border Name="bd"
												        Background="{TemplateBinding Background}" CornerRadius="2">
													<ContentPresenter Margin="{TemplateBinding Padding}"
													                  Content="{TemplateBinding Content}"/>
												</Border>
												<ControlTemplate.Triggers>
													<Trigger Property="IsMouseOver" Value="true">
														<Setter TargetName="bd" Property="Background" Value="LightBlue"/>
													</Trigger>
												</ControlTemplate.Triggers>
											</ControlTemplate>
										</Setter.Value>
									</Setter>
								</Style.Setters>
							</Style>
						
							<DataTemplate x:Key="TextBlockTemplate">
								<TextBlock TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}" />
							</DataTemplate>
						</Grid.Resources>
						
						<Grid.ColumnDefinitions>
							<ColumnDefinition Width="Auto"/>
							<ColumnDefinition Width="1*"/>
						</Grid.ColumnDefinitions>
						<Grid.RowDefinitions>
							<RowDefinition Height="Auto"/>
							<RowDefinition Height="1*"/>
						</Grid.RowDefinitions>
						
						<StackPanel Grid.Row="0" Grid.Column="0"
						            Margin="0,0,4,0"
						            Orientation="Horizontal"
						            Visibility="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Provider.Count, Converter={StaticResource collapseIfSingleOverloadConverter}}">
							<Button Name="PART_UP" Style="{StaticResource upDownButtonStyle}">
								<Path Stroke="Black" Fill="Black" Data="M 0,0.866 L 1,0.866 L 0.5,0 Z" Stretch="UniformToFill" />
							</Button>
							<TextBlock Margin="2,0,2,0"
							           Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Provider.CurrentIndexText}"/>
							<Button Name="PART_DOWN" Style="{StaticResource upDownButtonStyle}">
								<Path Stroke="Black" Fill="Black" Data="M 0,0 L 1,0 L 0.5,0.866 Z" Stretch="UniformToFill" />
							</Button>
						</StackPanel>
						<ContentPresenter Grid.Row="0" Grid.Column="1" ContentTemplateSelector="{StaticResource templateSelector}"
						                  Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Provider.CurrentHeader}" />
						<ContentPresenter Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" ContentTemplateSelector="{StaticResource templateSelector}"
						                  Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Provider.CurrentContent}" />
					</Grid>
				</ControlTemplate>
			</Setter.Value>
		</Setter>
	</Style>
</ResourceDictionary>