Files
OpenBullet/OpenBullet/Views/Main/ProxyManager.xaml
T
2019-12-21 01:47:02 +01:00

315 lines
17 KiB
XML

<Page x:Class="OpenBullet.Views.Main.ProxyManager"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:utils="clr-namespace:System.Web;assembly=System"
xmlns:local="clr-namespace:OpenBullet.Views.Main"
mc:Ignorable="d"
d:DesignHeight="550" d:DesignWidth="780"
Title="ProxyManager">
<Page.Resources>
<ContextMenu x:Key="ItemContextMenu">
<MenuItem x:Name="copySelectedProxies" Header="Copy Selected Proxies" Click="copySelectedProxies_Click"/>
</ContextMenu>
</Page.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="150" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="80" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- Top Grid -->
<Grid Grid.Column="0" Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="65" />
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" VerticalAlignment="Center" Content="Progress:" />
<Label Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" Content="Test On:" />
<ProgressBar x:Name="progressBar" Grid.Column="1" Grid.Row="0" Minimum="0" Maximum="1" Margin="5" />
<TextBox Grid.Column="1" Grid.Row="1" Margin="5" Text="{Binding TestSite}" VerticalContentAlignment="Center"/>
<DockPanel Grid.Column="2" Grid.Row="0" VerticalAlignment="Center">
<Label Content="Bots: " />
<Label Width="35" Content="{Binding BotsAmount}" />
<Slider x:Name="botsSlider" VerticalAlignment="Center" TickFrequency="20" TickPlacement="Both" Minimum="1" Maximum="200" ValueChanged="botsSlider_ValueChanged" Margin="0 0 10 0"/>
</DockPanel>
<DockPanel Grid.Column="2" Grid.Row="1">
<Label Content="Success Key:" VerticalAlignment="Center" />
<TextBox Margin="5" Text="{Binding SuccessKey}" VerticalContentAlignment="Center"/>
</DockPanel>
</Grid>
<!-- Check Button -->
<Button x:Name="checkButton" Grid.Column="1" Grid.Row="0" Margin="5" Content="CHECK" Click="checkButton_Click" />
<!-- Proxies List View -->
<ListView x:Name="proxiesListView" Grid.Column="0" Grid.Row="1" Foreground="{DynamicResource ForegroundMain}" Background="Transparent" ItemsSource="{Binding Path=ProxiesCollection}" SelectionMode="Extended" BorderThickness="1" VirtualizingPanel.IsVirtualizing="True" AllowDrop="True" Drop="ProxyListViewDrop">
<!-- Show Headers by overriding the default style -->
<ListView.Style>
<Style TargetType="{x:Type ListView}" />
</ListView.Style>
<!-- Align Headers to the Left -->
<ListView.Resources>
<Style x:Key="GridViewColumnHeaderGripper" TargetType="Thumb">
<Setter Property="Width" Value="18" />
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<LinearGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="{DynamicResource BorderLightColor}" Offset="0.0" />
<GradientStop Color="{DynamicResource BorderDarkColor}" Offset="1.0" />
</GradientStopCollection>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<Border Padding="{TemplateBinding Padding}" Background="Transparent">
<Rectangle HorizontalAlignment="Center" Width="1" Fill="{TemplateBinding Background}" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="0" />
<GradientStop Color="White" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Left" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
<Grid>
<Border BorderThickness="0,0,0,1" BorderBrush="Black" Background="Transparent">
<TextBlock x:Name="ContentHeader" Text="{TemplateBinding Content}" Padding="5,5,5,0" Width="{TemplateBinding Width}" TextAlignment="Left" />
</Border>
<Thumb x:Name="PART_HeaderGripper"
HorizontalAlignment="Right"
Margin="0,0,-9,0"
Style="{StaticResource GridViewColumnHeaderGripper}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Foreground" Value="{DynamicResource ForegroundMain}" />
<Setter Property="FontFamily" Value="pack://application:,,,/Fonts/#Century Gothic" />
<Setter Property="FontSize" Value="14" />
</Style>
<Style TargetType="{x:Type ListViewItem}">
<EventSetter Event="MouseRightButtonDown" Handler="ListViewItem_MouseRightButtonDown" />
<Setter Property="ContextMenu" Value="{StaticResource ItemContextMenu}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
Padding="0"
SnapsToDevicePixels="true">
<GridViewRowPresenter
HorizontalAlignment="Left"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{DynamicResource BackgroundSecondary}" />
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="{DynamicResource BackgroundSecondary}" />
</Trigger>
</Style.Triggers>
</Style>
</ListView.Resources>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel>
</VirtualizingStackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Path=Type}">
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Type" Click="listViewColumnHeader_Click">Type</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=Host}">
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Host" Click="listViewColumnHeader_Click">Host</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=Port}">
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Port" Click="listViewColumnHeader_Click">Port</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=Username}">
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Username" Click="listViewColumnHeader_Click">Username</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=Password}">
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Password" Click="listViewColumnHeader_Click">Password</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=Country}">
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Country" Click="listViewColumnHeader_Click">Country</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=Working}">
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Working" Click="listViewColumnHeader_Click">Working</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=Ping}">
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Ping" Click="listViewColumnHeader_Click">Ping</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=HasNext}">
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Type" Click="listViewColumnHeader_Click">Chain</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
<!-- Stats Grid -->
<StackPanel Grid.Column="1" Grid.Row="1" Margin="5">
<StackPanel.Resources>
<Style TargetType="{x:Type Label}">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="Foreground" Value="{DynamicResource ForegroundMain}" />
<Setter Property="Margin" Value="0 0 0 -7" />
</Style>
</StackPanel.Resources>
<Button x:Name="importButton" Click="importButton_Click" Margin="0 -5 0 0">
<StackPanel Orientation="Horizontal" Margin="0 5 0 0">
<Image Source="/Images/Icons/import.png" Width="20" />
<TextBlock VerticalAlignment="Center" Margin="5 0">Import</TextBlock>
</StackPanel>
</Button>
<Button x:Name="exportButton" Click="exportButton_Click" >
<StackPanel Orientation="Horizontal">
<Image Source="/Images/Icons/export.png" Width="20" />
<TextBlock VerticalAlignment="Center" Margin="5 0">Export</TextBlock>
</StackPanel>
</Button>
<Button x:Name="deleteButton" Click="deleteButton_Click" >
<StackPanel Orientation="Horizontal">
<Image Source="/Images/Icons/delete.png" Width="20" />
<TextBlock VerticalAlignment="Center" Margin="5 0">Delete</TextBlock>
</StackPanel>
</Button>
<Button x:Name="deleteAllButton" Click="deleteAllButton_Click" >
<StackPanel Orientation="Horizontal">
<Image Source="/Images/Icons/delete.png" Width="20" />
<TextBlock VerticalAlignment="Center" Margin="5 0">Delete All</TextBlock>
</StackPanel>
</Button>
<Expander Header="More Actions" ExpandDirection="Down" IsExpanded="False">
<StackPanel>
<Button x:Name="deleteNotWorkingButton" Click="deleteNotWorkingButton_Click" >
<StackPanel Orientation="Horizontal">
<Image Source="/Images/Icons/delete.png" Width="20" />
<TextBlock VerticalAlignment="Center" Margin="5 0">Del. Not Working</TextBlock>
</StackPanel>
</Button>
<Button x:Name="deleteDuplicatesButton" Click="deleteDuplicatesButton_Click" >
<StackPanel Orientation="Horizontal">
<Image Source="/Images/Icons/delete.png" Width="20" />
<TextBlock VerticalAlignment="Center" Margin="5 0">Del. Duplicates</TextBlock>
</StackPanel>
</Button>
<Button x:Name="deleteUntestedButton" Click="DeleteUntestedButton_Click" >
<StackPanel Orientation="Horizontal">
<Image Source="/Images/Icons/delete.png" Width="20" />
<TextBlock VerticalAlignment="Center" Margin="5 0">Del. Untested</TextBlock>
</StackPanel>
</Button>
</StackPanel>
</Expander>
<Label Content="STATISTICS" FontWeight="Bold" />
<StackPanel Orientation="Horizontal">
<Label Content="Total:" />
<Label Content="{Binding Total}" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label Content="Tested:" />
<Label Content="{Binding Tested}" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label Content="Working:" Foreground="{DynamicResource ForegroundGood}" />
<Label Content="{Binding Working}" Foreground="{DynamicResource ForegroundGood}" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label Content="Not Working:" Foreground="{DynamicResource ForegroundBad}" />
<Label Content="{Binding NotWorking}" Foreground="{DynamicResource ForegroundBad}" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label Content="HTTP:" />
<Label Content="{Binding Http}" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label Content="SOCKS4:" />
<Label Content="{Binding Socks4}" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label Content="SOCKS4a:" />
<Label Content="{Binding Socks4a}" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label Content="SOCKS5:" />
<Label Content="{Binding Socks5}" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label Content="Chain:"/>
<Label Content="{Binding Chain}"/>
</StackPanel>
<Label Content="OPTIONS" FontWeight="Bold" />
<CheckBox Content="Only Untested" IsChecked="{Binding OnlyUntested}" Margin="0 5 0 0" />
<StackPanel Orientation="Horizontal">
<Label Content="Timeout (sec):" Margin="0 0 0 0"/>
<xctk:IntegerUpDown Name="timeoutUpDown" Background="Transparent" Value="{Binding Timeout}" Foreground="{DynamicResource ForegroundMain}"/>
</StackPanel>
</StackPanel>
</Grid>
</Page>