Compare commits
64
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e9fdbc2acd | ||
|
|
a50e0cfc26 | ||
|
|
937173dd2f | ||
|
|
f1f7a40fba | ||
|
|
5522d364d4 | ||
|
|
3a218d246e | ||
|
|
bafc28e3bc | ||
|
|
6d1eb474c4 | ||
|
|
d172f4ffab | ||
|
|
c527b6e84f | ||
|
|
b8c7abd6b3 | ||
|
|
fea8e184c1 | ||
|
|
44a7bc0de9 | ||
|
|
4bad9ef183 | ||
|
|
590835c627 | ||
|
|
997766df92 | ||
|
|
cdbf66cd6c | ||
|
|
4c90eed59e | ||
|
|
d260f8ce2c | ||
|
|
12d0afb215 | ||
|
|
a9040f5f8f | ||
|
|
6e6acb5a71 | ||
|
|
256697d5b0 | ||
|
|
be9067b22e | ||
|
|
a5874a59f0 | ||
|
|
e8405e5638 | ||
|
|
ab70c9dfb1 | ||
|
|
1e4d8584c7 | ||
|
|
29eef77099 | ||
|
|
c50e89ae78 | ||
|
|
89917713d6 | ||
|
|
1e0ac46e07 | ||
|
|
6279b8f5f5 | ||
|
|
4007c87e20 | ||
|
|
ec0f42e76c | ||
|
|
99f63c2a6f | ||
|
|
12ac20f756 | ||
|
|
9d36d74005 | ||
|
|
da2cc977a0 | ||
|
|
84e7bdb586 | ||
|
|
b062a229c8 | ||
|
|
8680b3d815 | ||
|
|
6ab0e4c5a7 | ||
|
|
867bcf97d0 | ||
|
|
360bf9b37e | ||
|
|
4d85106fbf | ||
|
|
64a253b581 | ||
|
|
5f379c1356 | ||
|
|
76c80383ce | ||
|
|
e5a6ea80f0 | ||
|
|
b921e644df | ||
|
|
1c3fb8c192 | ||
|
|
d530d86a30 | ||
|
|
9d9229ef56 | ||
|
|
6f6f3c0800 | ||
|
|
7b234044f6 | ||
|
|
d46c82f34c | ||
|
|
4d5af610f0 | ||
|
|
1e94466f24 | ||
|
|
3210c0bce4 | ||
|
|
849f4ac579 | ||
|
|
acadc3bd7c | ||
|
|
258d4a3fc1 | ||
|
|
c53f6425cd |
No files matched your search
@@ -9,7 +9,7 @@
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
xmlns:cv="clr-namespace:mbts.ui.converters"
|
||||
xmlns:shell="clr-namespace:mbts.ui.shell"
|
||||
Background="{StaticResource CommonBackground}">
|
||||
Background="{u:BTSBrush UI.common_background}">
|
||||
<UserControl.Resources>
|
||||
<cv:DoubleTextConverter x:Key="DoubleTextConverter" />
|
||||
<cv:DoubleTextConverter
|
||||
@@ -30,9 +30,6 @@
|
||||
<Setter
|
||||
Property="FontStyle"
|
||||
Value="Italic" />
|
||||
<Setter
|
||||
Property="Foreground"
|
||||
Value="Gray" />
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
@@ -51,9 +48,6 @@
|
||||
<Setter
|
||||
Property="FontStyle"
|
||||
Value="Italic" />
|
||||
<Setter
|
||||
Property="Foreground"
|
||||
Value="Gray" />
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
@@ -123,6 +117,20 @@
|
||||
CommandParameter="{Binding}"
|
||||
/>
|
||||
</ContextMenu>
|
||||
|
||||
<Style x:Key="TextBlockCellElement" TargetType="TextBlock">
|
||||
<Setter
|
||||
Property="Foreground"
|
||||
Value="{Binding Foreground, RelativeSource={RelativeSource AncestorType=DataGridCell}}" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ComboBoxCellElement" TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}">
|
||||
<Setter
|
||||
Property="Foreground"
|
||||
Value="{Binding Foreground, RelativeSource={RelativeSource AncestorType=DataGridCell}}" />
|
||||
<Setter Property="Margin" Value="2" />
|
||||
<Setter Property="IsSynchronizedWithCurrentItem" Value="False" />
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
<Grid>
|
||||
<Grid.Resources>
|
||||
@@ -145,17 +153,23 @@
|
||||
SelectedItems="{Binding selected_symbols}"
|
||||
HorizontalAlignment="Left"
|
||||
Margin="5,2,2,2"
|
||||
TextBlock.Foreground="Black"
|
||||
HeaderContent="Symbols"
|
||||
ShowSelectAll="True"
|
||||
/>
|
||||
ShowSelectAll="True">
|
||||
<c:ComboCheckBox.HeaderContentTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding}" Foreground="{u:BTSColor UI.default_text}" />
|
||||
</DataTemplate>
|
||||
</c:ComboCheckBox.HeaderContentTemplate>
|
||||
</c:ComboCheckBox>
|
||||
|
||||
<WrapPanel>
|
||||
<TextBlock Margin="5,5,0,0" Text="Auto copy rolls:" />
|
||||
<TextBlock
|
||||
Margin="5,5,0,0" Foreground="{u:BTSBrush UI.default_text}" Text="Auto copy rolls:" />
|
||||
<CheckBox Margin="5,5,10,0" IsChecked="{Binding auto_copy_rolls_is_checked}" />
|
||||
</WrapPanel>
|
||||
<WrapPanel>
|
||||
<TextBlock Margin='0,5,0,0' Text="Auto copy rates:" />
|
||||
<TextBlock
|
||||
Margin='0,5,0,0' Foreground="{u:BTSBrush UI.default_text}" Text="Auto copy rates:" />
|
||||
<CheckBox Margin="5,5,0,0" IsChecked="{Binding auto_copy_rates_is_checked}" />
|
||||
</WrapPanel>
|
||||
</StackPanel>
|
||||
@@ -163,8 +177,8 @@
|
||||
x:Name="_grid"
|
||||
Grid.Row="1"
|
||||
ItemsSource="{Binding visible_rows}"
|
||||
AlternatingRowBackground="{u:BTSColor MarketData.driver_background}"
|
||||
VerticalGridLinesBrush="Gray"
|
||||
Background="Transparent"
|
||||
VerticalGridLinesBrush="{u:BTSColor Grid.grid_line}"
|
||||
EnableRowVirtualization="True"
|
||||
EnableColumnVirtualization="True"
|
||||
CanUserAddRows="False"
|
||||
@@ -177,35 +191,10 @@
|
||||
SelectionUnit="FullRow"
|
||||
SelectedUnits="{Binding selected_rows}"
|
||||
PreviewMouseRightButtonUp="_grid_PreviewMouseRightButtonUp">
|
||||
<DataGrid.Resources>
|
||||
<Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource {x:Type DataGridCell}}">
|
||||
<Setter Property="BorderThickness" Value="1" />
|
||||
<Style.Triggers>
|
||||
<Trigger
|
||||
Property="IsSelected"
|
||||
Value="True">
|
||||
<Setter
|
||||
Property="Background"
|
||||
Value="{u:BTSColor Grid.grid_selection_background}" />
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
Value="{u:BTSColor Grid.grid_selection_background}" />
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</DataGrid.Resources>
|
||||
<DataGrid.RowStyle>
|
||||
<Style TargetType="DataGridRow">
|
||||
<c:DataGridEx.RowStyle>
|
||||
<Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Type DataGridRow}}">
|
||||
<Setter Property="IsSelected" Value="{Binding is_selected, Mode=TwoWay}"/>
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Style.Triggers>
|
||||
<Trigger
|
||||
Property="IsSelected"
|
||||
Value="true">
|
||||
<Setter
|
||||
Property="Background"
|
||||
Value="{u:BTSColor Grid.grid_selection_background}" />
|
||||
</Trigger>
|
||||
<DataTrigger
|
||||
Binding="{Binding is_last_row_of_month_group}"
|
||||
Value="True">
|
||||
@@ -218,7 +207,7 @@
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</DataGrid.RowStyle>
|
||||
</c:DataGridEx.RowStyle>
|
||||
<DataGrid.ColumnHeaderStyle>
|
||||
<Style TargetType="DataGridColumnHeader">
|
||||
<Setter
|
||||
@@ -230,9 +219,6 @@
|
||||
<Setter
|
||||
Property="HorizontalContentAlignment"
|
||||
Value="Center" />
|
||||
<Setter
|
||||
Property="BorderThickness"
|
||||
Value="0,0,1,0" />
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
Value="Black" />
|
||||
@@ -259,9 +245,6 @@
|
||||
<Setter
|
||||
Property="Foreground"
|
||||
Value="{u:BTSColor Name=header_text}" />
|
||||
<Setter
|
||||
Property="BorderThickness"
|
||||
Value="0" />
|
||||
<Setter
|
||||
Property="VerticalContentAlignment"
|
||||
Value="Center" />
|
||||
@@ -308,9 +291,7 @@
|
||||
<DataTrigger
|
||||
Binding="{Binding is_driver_dirty}"
|
||||
Value="True">
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
Value="{u:BTSColor UI.input_dirty_border}" />
|
||||
<Setter Property="Foreground" Value="{u:BTSColor UI.input_dirty_foreground}" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
@@ -318,11 +299,10 @@
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<ComboBox
|
||||
IsSynchronizedWithCurrentItem="False"
|
||||
ItemsSource="{Binding Source={StaticResource Drivers}}"
|
||||
ItemTemplate="{StaticResource DriverTemplate}"
|
||||
SelectedItem="{Binding driver, UpdateSourceTrigger=PropertyChanged}"
|
||||
Margin="2" />
|
||||
Style="{StaticResource ComboBoxCellElement}" />
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
@@ -340,21 +320,28 @@
|
||||
<DataTrigger
|
||||
Binding="{Binding is_deliverable_dirty}"
|
||||
Value="True">
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
Value="Red" />
|
||||
<Setter Property="Foreground" Value="{u:BTSColor UI.input_dirty_foreground}" />
|
||||
</DataTrigger>
|
||||
<MultiDataTrigger>
|
||||
<MultiDataTrigger.Conditions>
|
||||
<Condition Binding="{Binding is_deliverable_dirty}" Value="False" />
|
||||
<Condition Binding="{Binding
|
||||
deliverable,
|
||||
Converter={x:Static shell:AnalyticsExpirationParametersView.expiration_is_defined_converter}}"
|
||||
Value="False" />
|
||||
</MultiDataTrigger.Conditions>
|
||||
<Setter Property="Foreground" Value="{u:BTSColor UI.default_foreground_dark}" />
|
||||
</MultiDataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</DataGridTemplateColumn.CellStyle>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<ComboBox
|
||||
IsSynchronizedWithCurrentItem="False"
|
||||
ItemsSource="{Binding Source={StaticResource NonOptionsWithEmpty}}"
|
||||
ItemTemplate="{StaticResource ExpirationTemplate}"
|
||||
SelectedItem="{Binding deliverable, UpdateSourceTrigger=PropertyChanged}"
|
||||
Margin="2" />
|
||||
Style="{StaticResource ComboBoxCellElement}" />
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
@@ -372,21 +359,28 @@
|
||||
<DataTrigger
|
||||
Binding="{Binding is_roll_schedule_dirty}"
|
||||
Value="True">
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
Value="Red" />
|
||||
<Setter Property="Foreground" Value="{u:BTSColor UI.input_dirty_foreground}" />
|
||||
</DataTrigger>
|
||||
<MultiDataTrigger>
|
||||
<MultiDataTrigger.Conditions>
|
||||
<Condition Binding="{Binding is_roll_schedule_dirty}" Value="False" />
|
||||
<Condition Binding="{Binding
|
||||
roll_schedule,
|
||||
Converter={x:Static shell:AnalyticsExpirationParametersView.expiration_is_defined_converter}}"
|
||||
Value="False" />
|
||||
</MultiDataTrigger.Conditions>
|
||||
<Setter Property="Foreground" Value="{u:BTSColor UI.default_foreground_dark}" />
|
||||
</MultiDataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</DataGridTemplateColumn.CellStyle>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<ComboBox
|
||||
IsSynchronizedWithCurrentItem="False"
|
||||
ItemsSource="{Binding Source={StaticResource NonOptionsWithEmpty}}"
|
||||
ItemTemplate="{StaticResource ExpirationTemplate}"
|
||||
SelectedItem="{Binding roll_schedule, UpdateSourceTrigger=PropertyChanged}"
|
||||
Margin="2" />
|
||||
Style="{StaticResource ComboBoxCellElement}" />
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
@@ -402,9 +396,7 @@
|
||||
<DataTrigger
|
||||
Binding="{Binding is_roll_target_dirty}"
|
||||
Value="True">
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
Value="Red" />
|
||||
<Setter Property="Foreground" Value="{u:BTSColor UI.input_dirty_foreground}" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
@@ -415,14 +407,15 @@
|
||||
Text="{Binding roll_target, Converter={StaticResource DoubleTextConverter}}"
|
||||
VerticalAlignment="Center"
|
||||
Margin="2,0,2,0"
|
||||
ContextMenu="{StaticResource RollTargetContextMenu}" />
|
||||
ContextMenu="{StaticResource RollTargetContextMenu}"
|
||||
Style="{StaticResource TextBlockCellElement}" />
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
<DataGridTemplateColumn.CellEditingTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox
|
||||
Text="{Binding roll_target, Converter={StaticResource DoubleTextConverter}}"
|
||||
Margin="2" />
|
||||
Text="{Binding roll_target, Converter={StaticResource DoubleTextConverter}}"
|
||||
Margin="2" />
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellEditingTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
@@ -438,9 +431,7 @@
|
||||
<DataTrigger
|
||||
Binding="{Binding is_riskless_rate_dirty}"
|
||||
Value="True">
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
Value="Red" />
|
||||
<Setter Property="Foreground" Value="{u:BTSColor UI.input_dirty_foreground}" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
@@ -451,12 +442,14 @@
|
||||
Text="{Binding riskless_rate, Converter={StaticResource RisklessRateConverter}}"
|
||||
VerticalAlignment="Center"
|
||||
Margin="2,0,2,0"
|
||||
ContextMenu="{StaticResource RisklessRateContextMenu}" />
|
||||
ContextMenu="{StaticResource RisklessRateContextMenu}"
|
||||
Style="{StaticResource TextBlockCellElement}" />
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
<DataGridTemplateColumn.CellEditingTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Text="{Binding riskless_rate, Converter={StaticResource RisklessRateConverter}}" />
|
||||
<TextBox
|
||||
Text="{Binding riskless_rate, Converter={StaticResource RisklessRateConverter}}" />
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellEditingTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
@@ -472,9 +465,7 @@
|
||||
<DataTrigger
|
||||
Binding="{Binding is_settlement_price_dirty}"
|
||||
Value="True">
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
Value="Red" />
|
||||
<Setter Property="Foreground" Value="{u:BTSColor UI.input_dirty_foreground}" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
@@ -485,12 +476,14 @@
|
||||
Text="{Binding settlement_price, Converter={StaticResource DoubleTextConverter}}"
|
||||
VerticalAlignment="Center"
|
||||
Margin="2,0,2,0"
|
||||
ContextMenu="{StaticResource SettlementPriceContextMenu}" />
|
||||
ContextMenu="{StaticResource SettlementPriceContextMenu}"
|
||||
Style="{StaticResource TextBlockCellElement}" />
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
<DataGridTemplateColumn.CellEditingTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Text="{Binding settlement_price, Converter={StaticResource DoubleTextConverter}}" />
|
||||
<TextBox
|
||||
Text="{Binding settlement_price, Converter={StaticResource DoubleTextConverter}}" />
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellEditingTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
@@ -507,9 +500,7 @@
|
||||
<DataTrigger
|
||||
Binding="{Binding is_delta_beta_dirty}"
|
||||
Value="True">
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
Value="Red" />
|
||||
<Setter Property="Foreground" Value="{u:BTSColor UI.input_dirty_foreground}" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
@@ -520,12 +511,14 @@
|
||||
Text="{Binding delta_beta, Converter={StaticResource DoubleTextConverter}}"
|
||||
VerticalAlignment="Center"
|
||||
Margin="2,0,2,0"
|
||||
ContextMenu="{StaticResource DeltaBetaContextMenu}" />
|
||||
ContextMenu="{StaticResource DeltaBetaContextMenu}"
|
||||
Style="{StaticResource TextBlockCellElement}" />
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
<DataGridTemplateColumn.CellEditingTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Text="{Binding delta_beta, Converter={StaticResource DoubleTextConverter}}" />
|
||||
<TextBox
|
||||
Text="{Binding delta_beta, Converter={StaticResource DoubleTextConverter}}" />
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellEditingTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
@@ -542,9 +535,7 @@
|
||||
<DataTrigger
|
||||
Binding="{Binding is_vega_beta_dirty}"
|
||||
Value="True">
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
Value="Red" />
|
||||
<Setter Property="Foreground" Value="{u:BTSColor UI.input_dirty_foreground}" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
@@ -552,10 +543,11 @@
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock
|
||||
Text="{Binding vega_beta, Converter={StaticResource DoubleTextConverter}}"
|
||||
VerticalAlignment="Center"
|
||||
Margin="2,0,2,0"
|
||||
ContextMenu="{StaticResource VegaBetaContextMenu}" />
|
||||
Text="{Binding vega_beta, Converter={StaticResource DoubleTextConverter}}"
|
||||
VerticalAlignment="Center"
|
||||
Margin="2,0,2,0"
|
||||
ContextMenu="{StaticResource VegaBetaContextMenu}"
|
||||
Style="{StaticResource TextBlockCellElement}" />
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
<DataGridTemplateColumn.CellEditingTemplate>
|
||||
|
||||
@@ -53,6 +53,10 @@ namespace mbts.ui.shell {
|
||||
} :
|
||||
null);
|
||||
|
||||
public static IValueConverter expiration_is_defined_converter =>
|
||||
ValueConverter.create<SecurityExpiration?, bool>(exp =>
|
||||
exp is not null && exp.expiration != default);
|
||||
|
||||
void _grid_PreviewMouseRightButtonUp(object sender, MouseButtonEventArgs e) {
|
||||
Disposable.dispose(ref _context_menu_op);
|
||||
if (e.OriginalSource is not FrameworkElement el || DataContext is not AnalyticsExpirationParametersVM vm) {
|
||||
|
||||
@@ -77,7 +77,8 @@ namespace mbts.spark {
|
||||
private HighPerformanceTimer _timer = new HighPerformanceTimer();
|
||||
|
||||
public VolSurfaceBusManager(bts.api.IBus bus,
|
||||
bts.api.analytics.AnalyticsService analytics_service) {
|
||||
bts.api.analytics.AnalyticsService analytics_service,
|
||||
bts.api.orderman.OrderService order_service) {
|
||||
bts.Log.Ui.info("VSBusManager cons tid:{VolSurfaceTroubleshootingFunctions.tid()}");
|
||||
_bus = bus;
|
||||
_bb = new ThreadedBlackboard("AW2", bus);
|
||||
@@ -111,6 +112,7 @@ namespace mbts.spark {
|
||||
_bb, SecurityType.Option, sym => SparkTags.TC2Tags.LiveTheosTag(sym),
|
||||
SparkTags.TC2Tags.AllLiveTheosTag));
|
||||
_subs.Add(new LiveTheoPublisher(_bb));
|
||||
_subs.Add(new InterpTheosServerPublisher(_bb, order_service));
|
||||
_subs.Add(new VolSurfaceInterpGreeksMultiplexer(_bb));
|
||||
// usage
|
||||
var list_sub = _bus.subscribe(SparkTags.VolSurfaceListTag).OnDispatcher().Subscribe(t => {
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using mbts.analytics;
|
||||
using bts.api;
|
||||
using bts.collections;
|
||||
using System.Linq;
|
||||
using bts.api.orderman;
|
||||
using bts;
|
||||
|
||||
namespace mbts.spark {
|
||||
// Listens to the interp theos, decorates the data
|
||||
// and sends them over to the sparkd server
|
||||
public class InterpTheosServerPublisher : IDisposable {
|
||||
private readonly ThreadedBlackboard _bb;
|
||||
private readonly bts.api.orderman.OrderService _order_service;
|
||||
private HighPerformanceTimer _timer = new HighPerformanceTimer();
|
||||
|
||||
public InterpTheosServerPublisher(ThreadedBlackboard bb,
|
||||
bts.api.orderman.OrderService order_service) {
|
||||
bts.Log.Ui.info(
|
||||
$"InterpTheosServerPublisher cons tid:{VolSurfaceTroubleshootingFunctions.tid()}");
|
||||
_bb = bb;
|
||||
_order_service = order_service;
|
||||
_bb.subscribe(SparkTags.AllInterpGreeks);
|
||||
_bb.subscribe(SparkTags.SystemContractsTag);
|
||||
_bb.data_callback += _on_data;
|
||||
}
|
||||
|
||||
private void _on_data(object tag, object data) {
|
||||
if (tag.Equals(SparkTags.SystemContractsTag) ||
|
||||
tag.Equals(SparkTags.AllInterpGreeks)) {
|
||||
_publish_data();
|
||||
}
|
||||
}
|
||||
|
||||
private static IDictionary<UInt32, DriverMD> _get_drivers(
|
||||
IReadOnlyDictionary<string, OptionDriverPriceMap> driver_map,
|
||||
SystemContractData sc_data) {
|
||||
var rv = new Dictionary<UInt32, DriverMD>();
|
||||
foreach (var kv in driver_map) {
|
||||
rv.AddRange(
|
||||
SecurityNormalizer.normalize_drivers(kv.Value, sc_data).ToArray());
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
private static IEnumerable<Tuple<SecurityImmutable, TheoPoint>> _get_theos(
|
||||
IReadOnlyDictionary<string, OptionTheoInterpolationData> theo_data,
|
||||
SystemContractData sc_data) {
|
||||
var rv = new List<Tuple<SecurityImmutable, TheoPoint>>();
|
||||
foreach (var kv in theo_data) {
|
||||
rv.AddRange(
|
||||
SecurityNormalizer.normalize_interp_theos(kv.Value, sc_data));
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
private void _publish_data() {
|
||||
SystemContractData sc_data = _bb.read_state(SparkTags.SystemContractsTag, null);
|
||||
IReadOnlyDictionary<string, OptionTheoInterpolationData> all_theos =
|
||||
_bb.read_state(SparkTags.AllInterpGreeks, null);
|
||||
IReadOnlyDictionary<string, OptionDriverPriceMap> all_drivers =
|
||||
_bb.read_state(SparkTags.AllOptionDriverBBOTag, null);
|
||||
if (sc_data == null || all_theos == null || all_drivers == null)
|
||||
return;
|
||||
_timer.start();
|
||||
IDictionary<UInt32, DriverMD> driver_map = _get_drivers(all_drivers, sc_data);
|
||||
IEnumerable<Tuple<SecurityImmutable, TheoPoint>> theo_map = _get_theos(all_theos, sc_data);
|
||||
// assemble it together and send it to the server
|
||||
var ptp_list = new List<bts.api.orderman.PrecomputedTheoPoint>();
|
||||
foreach (var tup in theo_map) {
|
||||
SecurityImmutable sec = tup.Item1;
|
||||
TheoPoint tp = tup.Item2;
|
||||
bool is_call = sec.Option.CallPut == PutOrCall.Call;
|
||||
var sec_id = sec.Id;
|
||||
DriverMD dmd = null;
|
||||
driver_map.TryGetValue(sec_id, out dmd);
|
||||
PrecomputedTheoPoint ptp = new PrecomputedTheoPoint();
|
||||
ptp.SecId = sec_id;
|
||||
ptp.Driver = tp.driver;
|
||||
ptp.DriverSecId = dmd != null && dmd.driver_security.HasValue ?
|
||||
dmd.driver_security.Value.Id : 0;
|
||||
ptp.Theo = is_call ? tp.call : tp.put;
|
||||
ptp.Delta = is_call ? tp.cdelta : tp.pdelta;
|
||||
ptp.Gamma = is_call ? tp.cgamma : tp.pgamma;
|
||||
ptp.Vega = is_call ? tp.cvega : tp.pvega;
|
||||
ptp.Theta = is_call ? tp.c_theta : tp.p_theta;
|
||||
ptp.Rho = Double.NaN;
|
||||
ptp_list.Add(ptp);
|
||||
}
|
||||
bts.api.orderman.PrecomputedTheos server_theos = new PrecomputedTheos();
|
||||
server_theos.Theos.AddRange(ptp_list);
|
||||
_timer.stop();
|
||||
var comp_time = _timer.lastIntervalTime;
|
||||
_timer.start();
|
||||
_order_service.set_precomputed_theos(server_theos);
|
||||
_timer.stop();
|
||||
var pub_time = _timer.lastIntervalTime;
|
||||
bts.Log.Gen.info($"InterpTheosServerPublisher._publish_data " +
|
||||
$"size: {server_theos.Theos.Count} comp_time: {comp_time} msecs " +
|
||||
$"pub_time: {pub_time}");
|
||||
}
|
||||
|
||||
public void Dispose() {
|
||||
_bb.data_callback -= _on_data;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
#nullable enable
|
||||
namespace mbts.spark {
|
||||
using bts.api;
|
||||
|
||||
using mbts.analytics;
|
||||
|
||||
using System;
|
||||
@@ -39,5 +41,10 @@ namespace mbts.spark {
|
||||
.SelectMany(kv => kv.Value.exp_price_map)
|
||||
.ToDictionaryCrushed(kv => kv.Key.to_vs_exp(), kv => kv.Value);
|
||||
}
|
||||
|
||||
public IReadOnlyDictionary<SecurityExpiration, DriverMD> get_price_map() {
|
||||
return new Dictionary<SecurityExpiration, DriverMD>(exp_price_map);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
namespace mbts.spark {
|
||||
using bts.api;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
|
||||
// A lot of options data (migrated from edge) is not normalized
|
||||
// on the sec_id, but rather on a combination of symbol, exp, strike.
|
||||
// Additionally the exchange is missing. This class serves as that
|
||||
// one since point to resolve that.
|
||||
// (Over time we will normalize all the data and this wont be needed)
|
||||
public static class SecurityNormalizer {
|
||||
// f(option_exp:driver_md) -> (sec_id:driver_md)
|
||||
|
||||
public static IDictionary<UInt32, DriverMD> normalize_drivers(
|
||||
OptionDriverPriceMap driver_map, SystemContractData sc_data) {
|
||||
if (driver_map is null) {
|
||||
return new Dictionary<uint, DriverMD>(0);
|
||||
}
|
||||
Dictionary<UInt32, DriverMD> rv = new Dictionary<uint, DriverMD>();
|
||||
foreach (var kv in driver_map.get_price_map()) {
|
||||
var exp = kv.Key;
|
||||
var dmd = kv.Value;
|
||||
IEnumerable<SecurityMD> exp_secs = sc_data.get_securities(
|
||||
(sec_md) => {
|
||||
var s = sec_md.security;
|
||||
return s.security_type() == SecurityType.Option &&
|
||||
s.Symbol == driver_map.option_symbol &&
|
||||
s.earliest_expiration() == exp.expiration;
|
||||
}
|
||||
);
|
||||
foreach (var sec_md in exp_secs) {
|
||||
rv.Add(sec_md.security.Id, kv.Value);
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
public static IEnumerable<Tuple<SecurityImmutable, TheoPoint>> normalize_interp_theos(
|
||||
OptionTheoInterpolationData symbol_theos, SystemContractData sc_data) {
|
||||
if (symbol_theos is null) {
|
||||
return Enumerable.Empty<Tuple<SecurityImmutable, TheoPoint>>();
|
||||
}
|
||||
var rv = new List<Tuple<SecurityImmutable, TheoPoint>>();
|
||||
foreach (DateTime exp in symbol_theos.get_expirations()) {
|
||||
Dictionary<double, Dictionary<double, TheoPoint>> exp_data =
|
||||
symbol_theos.get_expiration_data(exp);
|
||||
// exp_data is driver vs strike vs TP
|
||||
foreach (var exp_kv in exp_data) {
|
||||
foreach (var k_kv in exp_kv.Value) {
|
||||
double strike = k_kv.Key;
|
||||
TheoPoint tp = k_kv.Value;
|
||||
IEnumerable<SecurityMD> calls = sc_data.get_options(
|
||||
null, symbol_theos.symbol, exp, strike, PutOrCall.Call);
|
||||
IEnumerable<SecurityMD> puts = sc_data.get_options(
|
||||
null, symbol_theos.symbol, exp, strike, PutOrCall.Put);
|
||||
foreach (SecurityMD sec_md in calls) {
|
||||
rv.Add(Tuple.Create(sec_md.security, tp));
|
||||
}
|
||||
foreach (SecurityMD sec_md in puts) {
|
||||
rv.Add(Tuple.Create(sec_md.security, tp));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
@@ -265,5 +266,21 @@ namespace mbts.spark {
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<SecurityMD> get_securities(Func<SecurityMD, bool> criteria) {
|
||||
return sec_md_map.Values.Where(sec_md => criteria(sec_md));
|
||||
}
|
||||
|
||||
public IEnumerable<SecurityMD> get_options(
|
||||
Venue? exchange, string option_name, DateTime? exp, double? strike, PutOrCall? cp) {
|
||||
return get_securities(sc => {
|
||||
var s = sc.security;
|
||||
return s.security_type() == SecurityType.Option &&
|
||||
(exchange == null || s.Exchange == exchange) &&
|
||||
(exp == null || s.earliest_expiration() == exp) &&
|
||||
(strike == null || s.strike() == strike) &&
|
||||
(cp == null || s.Option.CallPut == cp);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -50,6 +50,7 @@ namespace mbts.spark {
|
||||
if (startup_data.vol_curve_x_axis == null) {
|
||||
var x_axis = BTSOxyGraphAxisDouble.Default;
|
||||
x_axis.name = "Strike";
|
||||
x_axis.axis_line_color = BTSColors.Graph.axis_line;
|
||||
x_axis.major_grid_line_color = BTSColors.Graph.grid_line;
|
||||
x_axis.tick_line_color = BTSColors.Graph.tick_line;
|
||||
x_axis.position = AxisPosition.BottomLeftToRight;
|
||||
@@ -63,6 +64,7 @@ namespace mbts.spark {
|
||||
if (startup_data.vol_curve_y_axis == null) {
|
||||
var y_axis = BTSOxyGraphAxisDouble.Default;
|
||||
y_axis.name = "Volatility";
|
||||
y_axis.axis_line_color = BTSColors.Graph.axis_line;
|
||||
y_axis.major_grid_line_color = BTSColors.Graph.grid_line;
|
||||
y_axis.tick_line_color = BTSColors.Graph.tick_line;
|
||||
y_axis.position = AxisPosition.LeftBottomToTop;
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace mbts.spark.VolSurface {
|
||||
var view = new TextBlock {
|
||||
HorizontalAlignment = HorizontalAlignment.Right,
|
||||
Margin = _cell_padding,
|
||||
Foreground = Brushes.Blue,
|
||||
Foreground = BTSColors.VolSurfaceGrid.readonly_column_foreground
|
||||
};
|
||||
view.SetBinding(FrameworkElement.DataContextProperty, new Binding() {
|
||||
Converter = _data_context_converter
|
||||
|
||||
@@ -59,6 +59,7 @@ namespace mbts.spark {
|
||||
var account_tuple_map = MappedDictionary.create(map, (id, name) => new AccountTuple(id, name));
|
||||
bus.post(SparkTags.AccountsTag, account_tuple_map);
|
||||
}));
|
||||
bus.post(SparkTags.CurrentUser, user);
|
||||
}
|
||||
|
||||
public IObservable<IReadOnlyDictionary<uint, string>> on_users { get; }
|
||||
|
||||
@@ -23,6 +23,7 @@ namespace bts {
|
||||
class AnalyticsDaemon : IShellDaemon, IDisposable {
|
||||
private readonly IBus _bus;
|
||||
private readonly AnalyticsService _analytics_service;
|
||||
private readonly bts.api.orderman.OrderService _order_service;
|
||||
private readonly VolSurfaceBusManager _vs_manager;
|
||||
private readonly SpreadManager _spread_manager;
|
||||
private readonly SpreadCalculationSynchronizer _spread_calc;
|
||||
@@ -30,11 +31,13 @@ namespace bts {
|
||||
IDisposable _dispose;
|
||||
|
||||
[ImportingConstructor]
|
||||
public AnalyticsDaemon(IBus bus, AnalyticsService analytics_service) {
|
||||
public AnalyticsDaemon(IBus bus, AnalyticsService analytics_service,
|
||||
bts.api.orderman.OrderService order_service) {
|
||||
bts.Log.Gen.info("AnalyticsDaemon started");
|
||||
_bus = bus;
|
||||
_analytics_service = analytics_service;
|
||||
_vs_manager = new VolSurfaceBusManager(_bus, _analytics_service);
|
||||
_order_service = order_service;
|
||||
_vs_manager = new VolSurfaceBusManager(_bus, _analytics_service, _order_service);
|
||||
_spread_manager = new SpreadManager(_vs_manager.bb(), "xxx");
|
||||
_spread_calc = new SpreadCalculationSynchronizer(_vs_manager.bb());
|
||||
}
|
||||
|
||||
@@ -52,6 +52,9 @@ namespace mbts.ui {
|
||||
EditDocumentGeometryKey = nameof(EditDocumentGeometryKey),
|
||||
VolCurveGeometryKey = nameof(VolCurveGeometryKey),
|
||||
FinancialGrowthGeometryKey = nameof(FinancialGrowthGeometryKey),
|
||||
MarketGeometryKey = nameof(MarketGeometryKey),
|
||||
RefreshGeometryKey = nameof(RefreshGeometryKey),
|
||||
FavoriteWindowGeometryKey = nameof(FavoriteWindowGeometryKey),
|
||||
GearGeometryKey = nameof(GearGeometryKey),
|
||||
HamburgerMenuGeometryKey = nameof(HamburgerMenuGeometryKey),
|
||||
HornGeometryKey = nameof(HornGeometryKey),
|
||||
@@ -78,7 +81,9 @@ namespace mbts.ui {
|
||||
|
||||
public static Geometry PlayGeometry => Geometry.Parse(get_geometric_path(PlayGeometryKey).FirstOrDefault() ?? string.Empty);
|
||||
|
||||
static readonly Pen _copy_boxes_pen = new Pen(Brushes.Black, HighDpiExtensions.RoundLayoutValue(5)).frozen();
|
||||
static readonly Pen _copy_boxes_pen = new Pen(
|
||||
BTSColors.UI.icon_foreground, 5.0.RoundLayoutValue())
|
||||
.frozen();
|
||||
|
||||
static readonly string base_uri = "pack://application:,,,/Images/Icons/";
|
||||
private static ResourceDictionary _resources = (ResourceDictionary)Application.LoadComponent(new Uri("/Images/Vector/Icons.xaml", UriKind.RelativeOrAbsolute));
|
||||
@@ -117,8 +122,8 @@ namespace mbts.ui {
|
||||
|
||||
|
||||
public static ImageSource DataCopy { get { return load_image("DataCopy.ico"); } }
|
||||
public static ImageSource Refresh { get { return load_image("Refresh.png"); } }
|
||||
public static ImageSource FavoriteWindow { get { return load_image("FavoriteWindow.png"); } }
|
||||
// public static ImageSource Refresh { get { return load_image("Refresh.png"); } }
|
||||
// public static ImageSource FavoriteWindow { get { return load_image("FavoriteWindow.png"); } }
|
||||
|
||||
public static ImageSource Browser => load_resource_and_freeze("Browser");
|
||||
|
||||
@@ -154,6 +159,9 @@ namespace mbts.ui {
|
||||
public static ImageSource Book { get { return load_resource_and_freeze("Book"); } }
|
||||
|
||||
public static ImageSource Orders => create_icon(OrdersGeometryKey);
|
||||
|
||||
public static ImageSource Refresh => create_icon(RefreshGeometryKey);
|
||||
public static ImageSource FavoriteWindow => create_icon(FavoriteWindowGeometryKey);
|
||||
public static ImageSource AddOrders { get { return load_resource_and_freeze("AddOrders"); } }
|
||||
public static ImageSource CancelOrders { get { return load_resource_and_freeze("CancelOrders"); } }
|
||||
public static ImageSource CancelBuys { get { return load_resource_and_freeze("CancelBuys"); } }
|
||||
@@ -232,11 +240,12 @@ namespace mbts.ui {
|
||||
public static ImageSource Key => create_icon(KeyGeometryKey);
|
||||
public static ImageSource Knight { get { return load_resource_and_freeze("Knight"); } }
|
||||
public static ImageSource manual_fills => create_icon(DataEditGeometryKey);
|
||||
public static ImageSource Market => create_icon(MarketGeometryKey);
|
||||
public static ImageSource MenuOrientation => create_icon(MenuOrientationGeometryKey);
|
||||
public static ImageSource open_orders => Book;
|
||||
public static ImageSource options_view => Sheets;
|
||||
public static ImageSource paper_plane => create_icon(
|
||||
PaperPlaneGeometryKey, null, new(Brushes.Black, 2));
|
||||
PaperPlaneGeometryKey, null, new(BTSColors.UI.icon_foreground, 2));
|
||||
public static ImageSource Pause => create_icon(PauseGeometryKey);
|
||||
public static ImageSource Payment => create_icon(PaymentGeometryKey);
|
||||
public static ImageSource Pencil => create_icon(PencilGeometryKey);
|
||||
@@ -270,9 +279,9 @@ namespace mbts.ui {
|
||||
public static ImageSource vol_surface => Math;
|
||||
public static ImageSource Wrench { get { return load_resource_and_freeze("Wrench"); } }
|
||||
public static ImageSource RightArrow => create_icon(
|
||||
ArrowGeometryKey, null, new(Brushes.Black, 3));
|
||||
ArrowGeometryKey, null, new(BTSColors.UI.icon_foreground, 3));
|
||||
public static ImageSource DownArrow => create_icon(
|
||||
ArrowGeometryKey, null, new(Brushes.Black, 3), new RotateTransform(90, 0.5, 0.5));
|
||||
ArrowGeometryKey, null, new(BTSColors.UI.icon_foreground, 3), new RotateTransform(90, 0.5, 0.5));
|
||||
public static ImageSource Factory { get { return (load_resource_and_freeze("Factory")); } }
|
||||
public static ImageSource DotsVertical { get { return (load_resource_and_freeze("DotsVertical")); } }
|
||||
public static ImageSource HandPointingOverDocument => load_resource_and_freeze("HandPointingOverDocument");
|
||||
@@ -280,10 +289,10 @@ namespace mbts.ui {
|
||||
public static ImageSource FloppyDisk => create_icon("FloppyDisk");
|
||||
|
||||
static Brush _default_chevron_brush => null;
|
||||
static Pen _default_chevron_pen { get; } = new Pen(Brushes.Black, 3).frozen();
|
||||
static Pen _default_chevron_pen { get; } = new Pen(BTSColors.UI.default_text, 3).frozen();
|
||||
|
||||
public static ImageSource create_icon(string geometric_path_key) =>
|
||||
create_icon(geometric_path_key, Brushes.Black);
|
||||
create_icon(geometric_path_key, BTSColors.UI.icon_foreground);
|
||||
|
||||
public static ImageSource create_icon(string geometric_path_key, Brush brush, Pen pen = null, Transform transform = null) {
|
||||
var rv = new DrawingImage(create_drawing(geometric_path_key, brush, pen, transform));
|
||||
|
||||
@@ -515,7 +515,7 @@
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Geometry="M1540.22,2082.07L1546.95,2102.78 1568.73,2102.78 1551.11,2115.58 1557.84,2136.29 1540.22,2123.49 1522.6,2136.29 1529.33,2115.58 1511.71,2102.78 1533.49,2102.78 1540.22,2082.07z">
|
||||
<GeometryDrawing.Pen>
|
||||
<Pen Thickness="3" Brush="Black" />
|
||||
<Pen Thickness="3" Brush="{mbts:BTSColor UI.icon_foreground}" />
|
||||
</GeometryDrawing.Pen>
|
||||
<GeometryDrawing.Brush>
|
||||
<SolidColorBrush Color="Transparent" />
|
||||
@@ -537,7 +537,7 @@ M 52.868601,3.8869994 C51.026201,3.8869996 49.534,5.3791947 49.534,7.2190399 49.
|
||||
M5.2010002,14.812L5.2010002,43.573997 56.098,43.573997 56.098,14.812z
|
||||
M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<GeometryDrawing.Pen>
|
||||
<Pen Thickness="1" Brush="Black" />
|
||||
<Pen Thickness="1" Brush="{mbts:BTSColor UI.icon_foreground}" />
|
||||
</GeometryDrawing.Pen>
|
||||
</GeometryDrawing>
|
||||
</DrawingGroup.Children>
|
||||
@@ -549,14 +549,14 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="
|
||||
M 32.868601,3.8869994 C31.026201,3.8869996 29.534,5.3791947 29.534,7.2190399 29.534,9.0588851 31.026201,10.553 32.868601,10.553 34.7085,10.553 36.202,9.0588851 36.202,7.2190399 36.202,5.3791947 34.7085,3.8869996 32.868601,3.8869994z
|
||||
M 42.868601,3.8869994 C41.026201,3.8869996 39.534,5.3791947 39.534,7.2190399 39.534,9.0588851 41.026201,10.553 42.868601,10.553 44.7085,10.553 46.202,9.0588851 46.202,7.2190399 46.202,5.3791947 44.7085,3.8869996 42.868601,3.8869994z
|
||||
M 52.868601,3.8869994 C51.026201,3.8869996 49.534,5.3791947 49.534,7.2190399 49.534,9.0588851 51.026201,10.553 52.868601,10.553 54.7085,10.553 56.202,9.0588851 56.202,7.2190399 56.202,5.3791947 54.7085,3.8869996 52.868601,3.8869994z
|
||||
M5.2010002,14.812L5.2010002,43.573997 56.098,43.573997 56.098,14.812z
|
||||
M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<GeometryDrawing.Pen>
|
||||
<Pen Thickness="1" Brush="Black" />
|
||||
<Pen Thickness="1" Brush="{mbts:BTSColor UI.icon_foreground}" />
|
||||
</GeometryDrawing.Pen>
|
||||
</GeometryDrawing>
|
||||
</DrawingGroup.Children>
|
||||
@@ -568,7 +568,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="F1M-198.67,4280.19C-197.609,4277.78 -197.035,4275.17 -197.035,4272.46 -197.035,4267.33 -199.032,4262.51 -202.665,4258.88 -206.286,4255.25 -211.107,4253.26 -216.235,4253.26 -221.365,4253.26 -226.186,4255.25 -229.811,4258.88 -232.498,4261.57 -234.282,4264.92 -235.032,4268.56L-225.835,4278.86 -252.503,4278.86 -250.373,4251.38 -241.577,4261.22C-240.214,4258.14 -238.303,4255.3 -235.844,4252.85 -230.61,4247.61 -223.644,4244.72 -216.235,4244.72 -208.822,4244.72 -201.861,4247.61 -196.627,4252.85 -191.39,4258.08 -188.503,4265.05 -188.503,4272.46 -188.503,4275.11 -188.894,4277.71 -189.617,4280.19L-198.67,4280.19z">
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="F1M-198.67,4280.19C-197.609,4277.78 -197.035,4275.17 -197.035,4272.46 -197.035,4267.33 -199.032,4262.51 -202.665,4258.88 -206.286,4255.25 -211.107,4253.26 -216.235,4253.26 -221.365,4253.26 -226.186,4255.25 -229.811,4258.88 -232.498,4261.57 -234.282,4264.92 -235.032,4268.56L-225.835,4278.86 -252.503,4278.86 -250.373,4251.38 -241.577,4261.22C-240.214,4258.14 -238.303,4255.3 -235.844,4252.85 -230.61,4247.61 -223.644,4244.72 -216.235,4244.72 -208.822,4244.72 -201.861,4247.61 -196.627,4252.85 -191.39,4258.08 -188.503,4265.05 -188.503,4272.46 -188.503,4275.11 -188.894,4277.71 -189.617,4280.19L-198.67,4280.19z">
|
||||
</GeometryDrawing>
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -579,7 +579,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="m 430.4375 225.625 c -1.92352 0.0276 -3.82501 0.82944 -5.1875 2.1875 L 330.0625 323 288 280.9375 c -1.38915 -1.39371 -3.34472 -2.2056 -5.3125 -2.2056 -1.96778 0 -3.92335 0.81189 -5.3125 2.2056 l -23.9375 23.9375 c -1.3844 1.38804 -2.18997 3.33646 -2.18997 5.29687 0 1.96042 0.80557 3.90884 2.18997 5.29688 l 71.3125 71.3125 c 1.38804 1.3844 3.33646 2.18997 5.29687 2.18997 1.96042 0 3.90884 -0.80557 5.29688 -2.18997 l 4.34375 -4.34375 19.59375 -19.59375 100.5 -100.5 c 1.3844 -1.38804 2.18997 -3.33646 2.18997 -5.29688 0 -1.96041 -0.80557 -3.90883 -2.18997 -5.29687 l -23.9375 -23.9375 c -1.41413 -1.40955 -3.40982 -2.21706 -5.40625 -2.1875 z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="m 430.4375 225.625 c -1.92352 0.0276 -3.82501 0.82944 -5.1875 2.1875 L 330.0625 323 288 280.9375 c -1.38915 -1.39371 -3.34472 -2.2056 -5.3125 -2.2056 -1.96778 0 -3.92335 0.81189 -5.3125 2.2056 l -23.9375 23.9375 c -1.3844 1.38804 -2.18997 3.33646 -2.18997 5.29687 0 1.96042 0.80557 3.90884 2.18997 5.29688 l 71.3125 71.3125 c 1.38804 1.3844 3.33646 2.18997 5.29687 2.18997 1.96042 0 3.90884 -0.80557 5.29688 -2.18997 l 4.34375 -4.34375 19.59375 -19.59375 100.5 -100.5 c 1.3844 -1.38804 2.18997 -3.33646 2.18997 -5.29688 0 -1.96041 -0.80557 -3.90883 -2.18997 -5.29687 l -23.9375 -23.9375 c -1.41413 -1.40955 -3.40982 -2.21706 -5.40625 -2.1875 z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -589,7 +589,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M37.063741,37.405188L33.240929,50.771959 33.345182,50.829412C33.743126,51.061163,34.109612,51.337603,34.437061,51.651468L34.468327,51.682901 44.707291,44.003126 44.641921,43.880777C44.347813,43.295671,44.183001,42.63962,44.183001,41.946699L44.185978,41.833834z M24.591099,31.982382L10.519234,39.24213 10.504738,39.424831C10.479679,39.661278,10.436295,39.892527,10.375957,40.117252L10.337856,40.24584 10.451912,40.307037C10.495525,40.332783,10.538376,40.360497,10.58033,40.390192L26.361021,51.547636 26.448517,51.467699C27.339916,50.69132,28.485014,50.17779,29.750544,50.054647L30.015249,50.035364 34.145618,35.590685 29.192999,32.51112C29.04261,32.417593,28.908485,32.31176,28.79232,32.197899L28.716364,32.117622 28.685419,32.139805C28.132467,32.49791 27.465902,32.706999 26.748449,32.706999 26.030621,32.706999 25.363836,32.49791 24.810755,32.139805z M28.780092,24.040133L28.448082,26.492748 28.685419,26.630915C29.607006,27.227547 30.212999,28.238197 30.212999,29.385599 30.212999,29.614918 30.188759,29.838802 30.142603,30.055031L30.080193,30.287708 30.111809,30.297695C30.268356,30.353413,30.424189,30.42791,30.574446,30.521399L34.837221,33.172018 35.327473,31.457518C35.410911,31.165865,35.525216,30.895145,35.662153,30.652515L35.756067,30.497255 35.710442,30.474535C33.991901,29.570229,32.844,27.933699,32.844,26.065052L32.845716,26.006275z M53.770291,20.119031L44.688253,25.319921 44.720247,25.537884C44.740581,25.711212 44.750998,25.887079 44.750998,26.065052 44.750998,28.912514 42.084275,31.221001 38.797749,31.221001L38.67025,31.218208 38.672958,31.305962C38.671358,31.615515,38.625373,31.944508,38.53014,32.277802L37.755445,34.986586 44.966217,39.470285 44.977812,39.451984C45.814164,38.264851 47.230547,37.483999 48.837201,37.483999 49.078189,37.483999 49.314904,37.501568 49.546028,37.535442L49.656656,37.554392 54.505396,20.597714 54.402527,20.541037C54.290171,20.475618,54.180146,20.40689,54.0726,20.334991z M9.6452522,14.786494L9.5807686,14.857854C9.0475883,15.420187,8.3894768,15.871748,7.6484566,16.172216L7.5149994,16.222663 7.5149994,34.615192 7.5420074,34.625397C8.4930382,35.010883,9.2904701,35.676405,9.8216705,36.51416L9.9140587,36.668142 23.306246,29.758877 23.300888,29.725224C23.289059,29.61356 23.282999,29.500257 23.282999,29.385599 23.282999,27.893976 24.307062,26.633465 25.717823,26.213213L26.001564,26.143343 26.439465,22.908201z M25.594164,6.962996L10.989891,11.757046 10.982574,11.849259C10.963779,12.026639,10.935814,12.201424,10.899147,12.373173L10.896881,12.382581 26.821791,20.083639 28.28179,9.2974239 28.12504,9.2381914C27.074772,8.8124379,26.207533,8.0535914,25.667171,7.0996943z M34.637348,6.8116302L34.599276,6.8923512C33.894737,8.2938632,32.502018,9.3174334,30.841724,9.5606082L30.738474,9.5731842 29.162455,21.21555 33.69524,23.407539 33.705906,23.391473C34.750082,21.903184 36.639784,20.909001 38.797749,20.909001 40.441011,20.909001 41.929324,21.486123 43.006821,22.41919L43.020344,22.431472 51.760321,17.426437 51.737371,17.368303C51.521266,16.762437 51.403998,16.112631 51.403998,15.436536 51.403998,14.921415 51.472072,14.421554 51.600069,13.944759L51.681425,13.670171z M30.077951,0C32.588049,0,34.668222,1.7676992,35.036192,4.0752702L35.064489,4.2886443 52.961684,11.489869 53.021899,11.423252C54.161165,10.222043 55.804663,9.4679997 57.631995,9.4679992 61.070987,9.4680003 63.858998,12.139764 63.858998,15.436536 63.858998,18.733305 61.070987,21.405001 57.631995,21.405001L57.456546,21.40075 52.402265,39.080206 52.428996,39.108406C53.093061,39.879898 53.492,40.868822 53.492,41.946699 53.492,44.410421 51.407745,46.407999 48.837201,46.407999 48.033874,46.407999 47.278115,46.212923 46.618644,45.869505L46.615751,45.867823 35.872695,53.925859 35.950705,54.189234C36.069708,54.632677 36.132998,55.097586 36.132998,55.5767 36.132998,58.641745 33.540598,61.126001 30.342699,61.126001 27.144098,61.126001 24.550999,58.641745 24.550999,55.5767 24.550999,55.193407 24.591516,54.819208 24.668669,54.457815L24.711109,54.281561 8.605793,42.894129C8.5577812,42.860109,8.5120659,42.824305,8.4686737,42.786901L8.4553757,42.77429 8.3729744,42.833338C7.5921974,43.338846 6.6510086,43.634001 5.6380043,43.634001 2.935627,43.634001 0.74499893,41.535135 0.74499893,38.9454 0.74499893,36.841322 2.1911545,35.061296 4.1829567,34.467758L4.2889977,34.438908 4.2889977,16.456114 4.1295319,16.420828C1.7547989,15.835048 0,13.768469 0,11.309781 0,8.3958501 2.4649048,6.0340006 5.5053978,6.0339997 7.5959015,6.0340006 9.4142189,7.1503434 10.346516,8.7949429L10.425873,8.9434187 25.113558,4.1221313 25.119768,4.0752702C25.48749,1.7676992,27.566404,0,30.077951,0z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M37.063741,37.405188L33.240929,50.771959 33.345182,50.829412C33.743126,51.061163,34.109612,51.337603,34.437061,51.651468L34.468327,51.682901 44.707291,44.003126 44.641921,43.880777C44.347813,43.295671,44.183001,42.63962,44.183001,41.946699L44.185978,41.833834z M24.591099,31.982382L10.519234,39.24213 10.504738,39.424831C10.479679,39.661278,10.436295,39.892527,10.375957,40.117252L10.337856,40.24584 10.451912,40.307037C10.495525,40.332783,10.538376,40.360497,10.58033,40.390192L26.361021,51.547636 26.448517,51.467699C27.339916,50.69132,28.485014,50.17779,29.750544,50.054647L30.015249,50.035364 34.145618,35.590685 29.192999,32.51112C29.04261,32.417593,28.908485,32.31176,28.79232,32.197899L28.716364,32.117622 28.685419,32.139805C28.132467,32.49791 27.465902,32.706999 26.748449,32.706999 26.030621,32.706999 25.363836,32.49791 24.810755,32.139805z M28.780092,24.040133L28.448082,26.492748 28.685419,26.630915C29.607006,27.227547 30.212999,28.238197 30.212999,29.385599 30.212999,29.614918 30.188759,29.838802 30.142603,30.055031L30.080193,30.287708 30.111809,30.297695C30.268356,30.353413,30.424189,30.42791,30.574446,30.521399L34.837221,33.172018 35.327473,31.457518C35.410911,31.165865,35.525216,30.895145,35.662153,30.652515L35.756067,30.497255 35.710442,30.474535C33.991901,29.570229,32.844,27.933699,32.844,26.065052L32.845716,26.006275z M53.770291,20.119031L44.688253,25.319921 44.720247,25.537884C44.740581,25.711212 44.750998,25.887079 44.750998,26.065052 44.750998,28.912514 42.084275,31.221001 38.797749,31.221001L38.67025,31.218208 38.672958,31.305962C38.671358,31.615515,38.625373,31.944508,38.53014,32.277802L37.755445,34.986586 44.966217,39.470285 44.977812,39.451984C45.814164,38.264851 47.230547,37.483999 48.837201,37.483999 49.078189,37.483999 49.314904,37.501568 49.546028,37.535442L49.656656,37.554392 54.505396,20.597714 54.402527,20.541037C54.290171,20.475618,54.180146,20.40689,54.0726,20.334991z M9.6452522,14.786494L9.5807686,14.857854C9.0475883,15.420187,8.3894768,15.871748,7.6484566,16.172216L7.5149994,16.222663 7.5149994,34.615192 7.5420074,34.625397C8.4930382,35.010883,9.2904701,35.676405,9.8216705,36.51416L9.9140587,36.668142 23.306246,29.758877 23.300888,29.725224C23.289059,29.61356 23.282999,29.500257 23.282999,29.385599 23.282999,27.893976 24.307062,26.633465 25.717823,26.213213L26.001564,26.143343 26.439465,22.908201z M25.594164,6.962996L10.989891,11.757046 10.982574,11.849259C10.963779,12.026639,10.935814,12.201424,10.899147,12.373173L10.896881,12.382581 26.821791,20.083639 28.28179,9.2974239 28.12504,9.2381914C27.074772,8.8124379,26.207533,8.0535914,25.667171,7.0996943z M34.637348,6.8116302L34.599276,6.8923512C33.894737,8.2938632,32.502018,9.3174334,30.841724,9.5606082L30.738474,9.5731842 29.162455,21.21555 33.69524,23.407539 33.705906,23.391473C34.750082,21.903184 36.639784,20.909001 38.797749,20.909001 40.441011,20.909001 41.929324,21.486123 43.006821,22.41919L43.020344,22.431472 51.760321,17.426437 51.737371,17.368303C51.521266,16.762437 51.403998,16.112631 51.403998,15.436536 51.403998,14.921415 51.472072,14.421554 51.600069,13.944759L51.681425,13.670171z M30.077951,0C32.588049,0,34.668222,1.7676992,35.036192,4.0752702L35.064489,4.2886443 52.961684,11.489869 53.021899,11.423252C54.161165,10.222043 55.804663,9.4679997 57.631995,9.4679992 61.070987,9.4680003 63.858998,12.139764 63.858998,15.436536 63.858998,18.733305 61.070987,21.405001 57.631995,21.405001L57.456546,21.40075 52.402265,39.080206 52.428996,39.108406C53.093061,39.879898 53.492,40.868822 53.492,41.946699 53.492,44.410421 51.407745,46.407999 48.837201,46.407999 48.033874,46.407999 47.278115,46.212923 46.618644,45.869505L46.615751,45.867823 35.872695,53.925859 35.950705,54.189234C36.069708,54.632677 36.132998,55.097586 36.132998,55.5767 36.132998,58.641745 33.540598,61.126001 30.342699,61.126001 27.144098,61.126001 24.550999,58.641745 24.550999,55.5767 24.550999,55.193407 24.591516,54.819208 24.668669,54.457815L24.711109,54.281561 8.605793,42.894129C8.5577812,42.860109,8.5120659,42.824305,8.4686737,42.786901L8.4553757,42.77429 8.3729744,42.833338C7.5921974,43.338846 6.6510086,43.634001 5.6380043,43.634001 2.935627,43.634001 0.74499893,41.535135 0.74499893,38.9454 0.74499893,36.841322 2.1911545,35.061296 4.1829567,34.467758L4.2889977,34.438908 4.2889977,16.456114 4.1295319,16.420828C1.7547989,15.835048 0,13.768469 0,11.309781 0,8.3958501 2.4649048,6.0340006 5.5053978,6.0339997 7.5959015,6.0340006 9.4142189,7.1503434 10.346516,8.7949429L10.425873,8.9434187 25.113558,4.1221313 25.119768,4.0752702C25.48749,1.7676992,27.566404,0,30.077951,0z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -599,7 +599,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M3.3500004,28.921999L16.410999,28.921999 16.410999,29.396999 16.410999,32.959999 16.410999,38.421999 25.514,38.421999 25.514,42.458 25.495,42.458 25.495,47.602999 34.698,47.602999 34.698,51.640999 25.495,51.640999 25.495,51.671 21.458,51.671 21.458,42.458 16.410999,42.458 12.453001,42.458 12.374001,42.458 12.374001,32.959999 3.3500004,32.959999z M54.794001,20.069L59.39695,23.324425 64,26.580851 59.39695,29.837375 54.794001,33.094 54.794001,30.650999 33.583,30.650999 33.583,22.698998 54.794001,22.698998z M14.7162,0.3409996L24.9141,0.3409996C25.97705,0.3409996,26.865667,1.1746159,27.071213,2.1986313L27.086924,2.3030968 27.124624,2.3546333C27.940995,3.4717503 29.881758,6.1571293 30.565413,7.3636971 30.565413,7.3636971 34.096944,13.338465 34.877442,15.061705L34.890623,15.092 40.170837,15.092C41.324416,15.092 42.257998,16.195044 42.257998,17.396999 42.257998,18.600256 41.324416,19.702 40.170837,19.702L33.450961,19.702C32.370606,19.702,31.482553,18.733671,31.375766,17.621177L31.37387,17.581701 29.230907,13.962816 22.261399,18.123934 26.40747,22.377669C27.150276,23.141019,27.230264,24.306093,26.654201,25.155003L26.643522,25.169146 26.636381,25.286112C26.628118,25.36014,26.616044,25.434453,26.600019,25.508835L24.851152,33.574084C24.592043,34.765377 23.418798,35.519273 22.228654,35.261475 21.03861,35.004976 20.280681,33.829283 20.53979,32.64039L22.288656,24.57524 22.309726,24.495231 17.488041,19.548167 17.480572,19.539678 17.253374,19.529043C16.366886,19.445599,15.589428,19.018761,15.078829,18.394262L15.074381,18.388281 12.282196,21.977999 12.216562,21.901865 12.1124,21.994324C11.720974,22.306216,11.1803,22.469,10.5833,22.469L2.1626606,22.469C0.96679688,22.469 0,21.817864 0,20.624998 0,19.428434 0.96679688,18.779999 2.1626606,18.779999L9.5252495,18.779999 9.3850002,18.617311 14.600033,11.548028C14.600033,11.548028,15.127697,11.125361,15.599133,10.798839L15.614553,10.78836 15.604,10.776026 24.149192,5.6036739 23.803184,4.9510002 14.7162,4.9510002C13.500099,4.9510002 12.514999,3.8623199 12.514999,2.6472778 12.514999,1.4298038 13.500099,0.3409996 14.7162,0.3409996z M34.6091,0C36.912666,0 38.780001,1.8671761 38.780001,4.1704998 38.780001,6.4739532 36.912666,8.3409996 34.6091,8.3409996 32.304335,8.3409996 30.437,6.4739532 30.437,4.1704998 30.437,1.8671761 32.304335,0 34.6091,0z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M3.3500004,28.921999L16.410999,28.921999 16.410999,29.396999 16.410999,32.959999 16.410999,38.421999 25.514,38.421999 25.514,42.458 25.495,42.458 25.495,47.602999 34.698,47.602999 34.698,51.640999 25.495,51.640999 25.495,51.671 21.458,51.671 21.458,42.458 16.410999,42.458 12.453001,42.458 12.374001,42.458 12.374001,32.959999 3.3500004,32.959999z M54.794001,20.069L59.39695,23.324425 64,26.580851 59.39695,29.837375 54.794001,33.094 54.794001,30.650999 33.583,30.650999 33.583,22.698998 54.794001,22.698998z M14.7162,0.3409996L24.9141,0.3409996C25.97705,0.3409996,26.865667,1.1746159,27.071213,2.1986313L27.086924,2.3030968 27.124624,2.3546333C27.940995,3.4717503 29.881758,6.1571293 30.565413,7.3636971 30.565413,7.3636971 34.096944,13.338465 34.877442,15.061705L34.890623,15.092 40.170837,15.092C41.324416,15.092 42.257998,16.195044 42.257998,17.396999 42.257998,18.600256 41.324416,19.702 40.170837,19.702L33.450961,19.702C32.370606,19.702,31.482553,18.733671,31.375766,17.621177L31.37387,17.581701 29.230907,13.962816 22.261399,18.123934 26.40747,22.377669C27.150276,23.141019,27.230264,24.306093,26.654201,25.155003L26.643522,25.169146 26.636381,25.286112C26.628118,25.36014,26.616044,25.434453,26.600019,25.508835L24.851152,33.574084C24.592043,34.765377 23.418798,35.519273 22.228654,35.261475 21.03861,35.004976 20.280681,33.829283 20.53979,32.64039L22.288656,24.57524 22.309726,24.495231 17.488041,19.548167 17.480572,19.539678 17.253374,19.529043C16.366886,19.445599,15.589428,19.018761,15.078829,18.394262L15.074381,18.388281 12.282196,21.977999 12.216562,21.901865 12.1124,21.994324C11.720974,22.306216,11.1803,22.469,10.5833,22.469L2.1626606,22.469C0.96679688,22.469 0,21.817864 0,20.624998 0,19.428434 0.96679688,18.779999 2.1626606,18.779999L9.5252495,18.779999 9.3850002,18.617311 14.600033,11.548028C14.600033,11.548028,15.127697,11.125361,15.599133,10.798839L15.614553,10.78836 15.604,10.776026 24.149192,5.6036739 23.803184,4.9510002 14.7162,4.9510002C13.500099,4.9510002 12.514999,3.8623199 12.514999,2.6472778 12.514999,1.4298038 13.500099,0.3409996 14.7162,0.3409996z M34.6091,0C36.912666,0 38.780001,1.8671761 38.780001,4.1704998 38.780001,6.4739532 36.912666,8.3409996 34.6091,8.3409996 32.304335,8.3409996 30.437,6.4739532 30.437,4.1704998 30.437,1.8671761 32.304335,0 34.6091,0z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -609,7 +609,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M55.859353,59.282085C56.00929,59.285538,56.143475,59.392647,56.172002,59.547607L55.789193,65.810493C55.674588,66.466682,55.295579,65.802589,55.295579,65.802589L54.473962,64.431519C51.7422,68.327347 47.221295,70.881996 42.101273,70.881996 36.226228,70.881996 31.13625,67.53186 28.632329,62.638653 28.382323,62.158161 28.059378,61.686871 27.969502,61.146481 27.66084,59.337914 29.858891,59.01112 30.614098,59.864002 30.926646,60.216797 31.299044,60.827484 31.563321,61.306576 33.567227,65.081306 37.533479,67.649055 42.101273,67.649055 46.122369,67.649055 49.669251,65.651596 51.828099,62.602253L50.338567,62.323559C50.338567,62.323559,49.473847,62.210258,50.067658,61.849567L55.794392,59.287113C55.816193,59.283215,55.837933,59.28159,55.859353,59.282085z M40.764077,45.717999L43.468282,45.717999 43.468282,47.945969C44.940877,48.043633,45.939504,48.464172,46.57486,48.781933L46.850839,48.919876 45.9889,51.849625 45.591931,51.649216C44.965676,51.336708 43.994244,50.849598 42.497052,50.849598 41.307038,50.849598 40.589589,51.340611 40.589589,52.155632 40.589589,52.883549 41.269242,53.390064 43.278195,54.159683 46.150391,55.237812 47.377004,56.67535 47.377004,58.964413 47.377004,61.232674 45.806714,62.99192 43.348592,63.516731L43.348592,66.047997 40.616887,66.047997 40.616887,63.706738C39.216088,63.607735,37.791692,63.200325,36.902394,62.633808L36.672002,62.482704 37.5286,59.474827 37.945279,59.724831C38.568932,60.09864 39.856541,60.726257 41.489224,60.726257 42.825127,60.726257 43.684468,60.136341 43.684468,59.230118 43.684468,58.503498 43.274297,57.873283 41.294038,57.157166 39.122395,56.362843 36.898515,55.19091 36.898515,52.516441 36.898515,50.313221 38.372449,48.646427 40.764077,48.112602z M42.010037,40.691002C47.882275,40.691002 52.973134,44.039906 55.477063,48.93552 55.725755,49.413418 56.051247,49.888626 56.139745,50.42767 56.447038,52.237579 54.249299,52.563072 53.493916,51.708893 53.181527,51.354805 52.809136,50.742821 52.546143,50.264954 50.543599,46.492958 46.577512,43.922722 42.010037,43.922722 37.98795,43.922722 34.44249,45.919983 32.28362,48.96946L33.773167,49.248013C33.773167,49.248013,34.636472,49.363979,34.044091,49.72456L28.316394,52.28698C28.141854,52.318275,27.969985,52.199879,27.940001,52.026585L28.322789,45.767639C28.43744,45.104939,28.815036,45.774227,28.815036,45.774227L29.632752,47.140041C32.366937,43.245621,36.88775,40.691002,42.010037,40.691002z M21.804616,0L44.531026,0C48.257512,0,51.280999,3.0222199,51.280999,6.7460904L51.280999,38.274937 50.537671,37.898952C49.215222,37.269638,47.812577,36.778652,46.348977,36.444992L45.879922,36.344151 45.879922,6.7460904C45.879922,6.0039101,45.273122,5.3972201,44.531026,5.3972206L22.158713,5.3972206 21.794215,17.167999C21.794215,17.167999,21.325417,24.9519,12.747249,24.0117L5.3957184,23.8125 5.3957184,57.253899C5.3957189,57.998699,6.0024966,58.602901,6.7473038,58.602901L21.820422,58.602901 21.860354,58.884754C22.115357,60.533066,22.574946,62.114872,23.212727,63.604115L23.393945,64 6.7473038,64C3.0207885,64,2.9307267E-07,60.980499,0,57.253899L0,23.0051 2.6718498,20.1863 2.6743804,20.1094 16.677035,5.3972206 16.637936,5.3972206 12.89565,9.3464394 16.817534,5.1914101 16.872334,5.1914101 16.997233,5.0612788 17.007634,5.0612788z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M55.859353,59.282085C56.00929,59.285538,56.143475,59.392647,56.172002,59.547607L55.789193,65.810493C55.674588,66.466682,55.295579,65.802589,55.295579,65.802589L54.473962,64.431519C51.7422,68.327347 47.221295,70.881996 42.101273,70.881996 36.226228,70.881996 31.13625,67.53186 28.632329,62.638653 28.382323,62.158161 28.059378,61.686871 27.969502,61.146481 27.66084,59.337914 29.858891,59.01112 30.614098,59.864002 30.926646,60.216797 31.299044,60.827484 31.563321,61.306576 33.567227,65.081306 37.533479,67.649055 42.101273,67.649055 46.122369,67.649055 49.669251,65.651596 51.828099,62.602253L50.338567,62.323559C50.338567,62.323559,49.473847,62.210258,50.067658,61.849567L55.794392,59.287113C55.816193,59.283215,55.837933,59.28159,55.859353,59.282085z M40.764077,45.717999L43.468282,45.717999 43.468282,47.945969C44.940877,48.043633,45.939504,48.464172,46.57486,48.781933L46.850839,48.919876 45.9889,51.849625 45.591931,51.649216C44.965676,51.336708 43.994244,50.849598 42.497052,50.849598 41.307038,50.849598 40.589589,51.340611 40.589589,52.155632 40.589589,52.883549 41.269242,53.390064 43.278195,54.159683 46.150391,55.237812 47.377004,56.67535 47.377004,58.964413 47.377004,61.232674 45.806714,62.99192 43.348592,63.516731L43.348592,66.047997 40.616887,66.047997 40.616887,63.706738C39.216088,63.607735,37.791692,63.200325,36.902394,62.633808L36.672002,62.482704 37.5286,59.474827 37.945279,59.724831C38.568932,60.09864 39.856541,60.726257 41.489224,60.726257 42.825127,60.726257 43.684468,60.136341 43.684468,59.230118 43.684468,58.503498 43.274297,57.873283 41.294038,57.157166 39.122395,56.362843 36.898515,55.19091 36.898515,52.516441 36.898515,50.313221 38.372449,48.646427 40.764077,48.112602z M42.010037,40.691002C47.882275,40.691002 52.973134,44.039906 55.477063,48.93552 55.725755,49.413418 56.051247,49.888626 56.139745,50.42767 56.447038,52.237579 54.249299,52.563072 53.493916,51.708893 53.181527,51.354805 52.809136,50.742821 52.546143,50.264954 50.543599,46.492958 46.577512,43.922722 42.010037,43.922722 37.98795,43.922722 34.44249,45.919983 32.28362,48.96946L33.773167,49.248013C33.773167,49.248013,34.636472,49.363979,34.044091,49.72456L28.316394,52.28698C28.141854,52.318275,27.969985,52.199879,27.940001,52.026585L28.322789,45.767639C28.43744,45.104939,28.815036,45.774227,28.815036,45.774227L29.632752,47.140041C32.366937,43.245621,36.88775,40.691002,42.010037,40.691002z M21.804616,0L44.531026,0C48.257512,0,51.280999,3.0222199,51.280999,6.7460904L51.280999,38.274937 50.537671,37.898952C49.215222,37.269638,47.812577,36.778652,46.348977,36.444992L45.879922,36.344151 45.879922,6.7460904C45.879922,6.0039101,45.273122,5.3972201,44.531026,5.3972206L22.158713,5.3972206 21.794215,17.167999C21.794215,17.167999,21.325417,24.9519,12.747249,24.0117L5.3957184,23.8125 5.3957184,57.253899C5.3957189,57.998699,6.0024966,58.602901,6.7473038,58.602901L21.820422,58.602901 21.860354,58.884754C22.115357,60.533066,22.574946,62.114872,23.212727,63.604115L23.393945,64 6.7473038,64C3.0207885,64,2.9307267E-07,60.980499,0,57.253899L0,23.0051 2.6718498,20.1863 2.6743804,20.1094 16.677035,5.3972206 16.637936,5.3972206 12.89565,9.3464394 16.817534,5.1914101 16.872334,5.1914101 16.997233,5.0612788 17.007634,5.0612788z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -619,7 +619,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="F1M70.546875,54.3758316040039L77.484375,54.3758316040039 77.484375,89.0633316040039 70.546875,89.0633316040039 70.546875,54.3758316040039z M48.5625,54.3758316040039L65.90625,71.7195816040039 48.5625,89.0633316040039 48.5625,75.1883316040039 8.109375,75.1883316040039 8.109375,68.2508316040039 48.5625,68.2508316040039 48.5625,54.3758316040039z M37.03125,19.6883316040039L37.03125,33.5633316040039 77.484375,33.5633316040039 77.484375,40.5008316040039 37.03125,40.5008316040039 37.03125,54.3758316040039 19.6875,37.0320816040039 37.03125,19.6883316040039z M8.109375,19.6883316040039L15.046875,19.6883316040039 15.046875,54.3758316040039 8.109375,54.3758316040039 8.109375,19.6883316040039z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="F1M70.546875,54.3758316040039L77.484375,54.3758316040039 77.484375,89.0633316040039 70.546875,89.0633316040039 70.546875,54.3758316040039z M48.5625,54.3758316040039L65.90625,71.7195816040039 48.5625,89.0633316040039 48.5625,75.1883316040039 8.109375,75.1883316040039 8.109375,68.2508316040039 48.5625,68.2508316040039 48.5625,54.3758316040039z M37.03125,19.6883316040039L37.03125,33.5633316040039 77.484375,33.5633316040039 77.484375,40.5008316040039 37.03125,40.5008316040039 37.03125,54.3758316040039 19.6875,37.0320816040039 37.03125,19.6883316040039z M8.109375,19.6883316040039L15.046875,19.6883316040039 15.046875,54.3758316040039 8.109375,54.3758316040039 8.109375,19.6883316040039z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -629,7 +629,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M0,27.006001L37.806999,27.006001 37.806999,31.806 0,31.806z M0,18.003L37.806999,18.003 37.806999,22.806 0,22.806z M0,8.9999999L37.806999,8.9999999 37.806999,13.803 0,13.803z M0,0L37.806999,0 37.806999,4.8030009 0,4.8030009z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M0,27.006001L37.806999,27.006001 37.806999,31.806 0,31.806z M0,18.003L37.806999,18.003 37.806999,22.806 0,22.806z M0,8.9999999L37.806999,8.9999999 37.806999,13.803 0,13.803z M0,0L37.806999,0 37.806999,4.8030009 0,4.8030009z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -639,7 +639,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M -2.7407407 21.999952 V 25 H 11.37037 v -3.000048 z m 0 -4.999952 v 2.999952 H 11.37037 V 17 Z m 0 -5 v 3 H 11.37037 v -3 z m 0 -5 v 3 H 11.37037 V 7 Z m -1 -7 c 0.552 0 1.0810413 0.45297098 1 1 V 5 H 11.37037 V 1 c 0 -0.5529995 0.448 -1 1 -1 0.552 0 1 0.4470005 1 1 0 11.544484 0 19.62158 0 30 0 0.553 -0.448 1 -1 1 -0.552 0 -0.918958 -0.45297 -1 -1 V 27 H -2.7407407 v 4 c 0 0.553 -0.448 1 -1 1 -0.552 0 -1 -0.447 -1 -1 0 -11.54448 0 -19.621581 0 -30 0 -0.5529995 0.448 -1 1 -1 z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M -2.7407407 21.999952 V 25 H 11.37037 v -3.000048 z m 0 -4.999952 v 2.999952 H 11.37037 V 17 Z m 0 -5 v 3 H 11.37037 v -3 z m 0 -5 v 3 H 11.37037 V 7 Z m -1 -7 c 0.552 0 1.0810413 0.45297098 1 1 V 5 H 11.37037 V 1 c 0 -0.5529995 0.448 -1 1 -1 0.552 0 1 0.4470005 1 1 0 11.544484 0 19.62158 0 30 0 0.553 -0.448 1 -1 1 -0.552 0 -0.918958 -0.45297 -1 -1 V 27 H -2.7407407 v 4 c 0 0.553 -0.448 1 -1 1 -0.552 0 -1 -0.447 -1 -1 0 -11.54448 0 -19.621581 0 -30 0 -0.5529995 0.448 -1 1 -1 z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -649,7 +649,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M50.14375,33.389126C50.416863,33.394688,50.653496,33.587773,50.705998,33.864617L50.015995,45.114388C49.810295,46.291462,49.130394,45.097489,49.130394,45.097489L47.65659,42.640538C42.747776,49.635197 34.633152,54.221001 25.433924,54.221001 14.884193,54.221001 5.7437552,48.204125 1.2449617,39.419205 0.80087067,38.552021 0.21358696,37.705738 0.052086769,36.736958 -0.49735315,33.490925 3.4507786,32.901036 4.8049124,34.432404 5.3674143,35.067692 6.034036,36.16407 6.5079177,37.026051 10.106778,43.799416 17.2321,48.413819 25.433924,48.413819 32.656544,48.413819 39.026364,44.826695 42.903977,39.351506L40.229367,38.854115C40.229367,38.854115,38.677464,38.647118,39.742466,37.996033L50.024895,33.398526C50.064972,33.391365,50.104733,33.388333,50.14375,33.389126z M23.030291,9.0310004L27.889918,9.0310004 27.889918,13.028299C30.539786,13.205498,32.324932,13.958096,33.464161,14.528294L33.964176,14.775793 32.417435,20.038878 31.706417,19.68068C30.579987,19.11958 28.839241,18.244583 26.149073,18.244583 24.006916,18.244583 22.723183,19.122181 22.723183,20.590876 22.723183,21.894272 23.943314,22.804369 27.551308,24.187165 32.706444,26.124659 34.911,28.702853 34.911,32.817341 34.911,36.892929 32.090527,40.05172 27.673611,40.989117L27.673611,45.540001 22.767485,45.540001 22.767485,41.330414C20.252919,41.155815,17.695551,40.424118,16.101811,39.404721L15.683999,39.137619 17.221739,33.731438 17.969059,34.180634C19.088988,34.851235 21.402748,35.97873 24.340325,35.97873 26.734886,35.97873 28.276728,34.921635 28.276728,33.291336 28.276728,31.986641 27.547409,30.853846 23.986016,29.57255 20.083815,28.144253 16.095511,26.04406 16.095511,21.239174 16.095511,17.280985 18.737379,14.291395 23.030291,13.329098z M25.268765,0C35.819447,2.7347414E-07 44.961449,6.0155495 49.458798,14.804573 49.902695,15.669173 50.490094,16.516972 50.651287,17.48427 51.198281,20.734265 47.255726,21.318962 45.901341,19.789065 45.336346,19.153567 44.669552,18.051968 44.19566,17.19517 40.5957,10.421881 33.473275,5.8072398 25.268765,5.8072393 18.047545,5.8072398 11.678013,9.3918336 7.8003562,14.867073L10.474627,15.367072C10.474627,15.367072,12.026909,15.574172,10.962921,16.223872L0.67933281,20.826762C0.36037083,20.880062,0.057029126,20.669165,0.00099972012,20.354063L0.69093342,9.1118043C0.89552094,7.9296158,1.5738537,9.124924,1.5738539,9.124924L3.0452772,11.583379C7.9566038,4.584462,16.073666,2.7347414E-07,25.268765,0z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M50.14375,33.389126C50.416863,33.394688,50.653496,33.587773,50.705998,33.864617L50.015995,45.114388C49.810295,46.291462,49.130394,45.097489,49.130394,45.097489L47.65659,42.640538C42.747776,49.635197 34.633152,54.221001 25.433924,54.221001 14.884193,54.221001 5.7437552,48.204125 1.2449617,39.419205 0.80087067,38.552021 0.21358696,37.705738 0.052086769,36.736958 -0.49735315,33.490925 3.4507786,32.901036 4.8049124,34.432404 5.3674143,35.067692 6.034036,36.16407 6.5079177,37.026051 10.106778,43.799416 17.2321,48.413819 25.433924,48.413819 32.656544,48.413819 39.026364,44.826695 42.903977,39.351506L40.229367,38.854115C40.229367,38.854115,38.677464,38.647118,39.742466,37.996033L50.024895,33.398526C50.064972,33.391365,50.104733,33.388333,50.14375,33.389126z M23.030291,9.0310004L27.889918,9.0310004 27.889918,13.028299C30.539786,13.205498,32.324932,13.958096,33.464161,14.528294L33.964176,14.775793 32.417435,20.038878 31.706417,19.68068C30.579987,19.11958 28.839241,18.244583 26.149073,18.244583 24.006916,18.244583 22.723183,19.122181 22.723183,20.590876 22.723183,21.894272 23.943314,22.804369 27.551308,24.187165 32.706444,26.124659 34.911,28.702853 34.911,32.817341 34.911,36.892929 32.090527,40.05172 27.673611,40.989117L27.673611,45.540001 22.767485,45.540001 22.767485,41.330414C20.252919,41.155815,17.695551,40.424118,16.101811,39.404721L15.683999,39.137619 17.221739,33.731438 17.969059,34.180634C19.088988,34.851235 21.402748,35.97873 24.340325,35.97873 26.734886,35.97873 28.276728,34.921635 28.276728,33.291336 28.276728,31.986641 27.547409,30.853846 23.986016,29.57255 20.083815,28.144253 16.095511,26.04406 16.095511,21.239174 16.095511,17.280985 18.737379,14.291395 23.030291,13.329098z M25.268765,0C35.819447,2.7347414E-07 44.961449,6.0155495 49.458798,14.804573 49.902695,15.669173 50.490094,16.516972 50.651287,17.48427 51.198281,20.734265 47.255726,21.318962 45.901341,19.789065 45.336346,19.153567 44.669552,18.051968 44.19566,17.19517 40.5957,10.421881 33.473275,5.8072398 25.268765,5.8072393 18.047545,5.8072398 11.678013,9.3918336 7.8003562,14.867073L10.474627,15.367072C10.474627,15.367072,12.026909,15.574172,10.962921,16.223872L0.67933281,20.826762C0.36037083,20.880062,0.057029126,20.669165,0.00099972012,20.354063L0.69093342,9.1118043C0.89552094,7.9296158,1.5738537,9.124924,1.5738539,9.124924L3.0452772,11.583379C7.9566038,4.584462,16.073666,2.7347414E-07,25.268765,0z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -659,7 +659,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M22.1575,13.53399L21.794301,25.304994C21.794301,25.304994,21.3242,33.088695,12.747401,32.148692L5.3958107,31.949492 5.3958107,65.390895C5.3958107,66.135493,6.0026208,66.7391,6.7473808,66.7391L44.5313,66.7391C45.2734,66.7391,45.8802,66.135493,45.8802,65.390895L45.8802,14.883091C45.8802,14.140891,45.2734,13.53399,44.5313,13.53399z M21.804701,8.1369996L44.5313,8.1369996C48.257802,8.1370001,51.279999,11.15899,51.279999,14.883091L51.279999,65.390895C51.279999,69.117496,48.257802,72.136996,44.5313,72.136996L6.7473808,72.136996C3.0208105,72.136996,5.8073994E-07,69.117496,0,65.390895L0,31.142392 2.6718808,28.322993 2.6745006,28.246392 16.6771,13.53399 16.638001,13.53399 12.8945,17.483192 16.816401,13.328391 16.872401,13.328391 16.9961,13.19799 17.0078,13.19799z M30.352,0L55.255002,0 60.581002,0 60.581002,4.747 60.581002,55.207999 55.255002,55.207999 55.255002,4.747 30.352,4.747z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M22.1575,13.53399L21.794301,25.304994C21.794301,25.304994,21.3242,33.088695,12.747401,32.148692L5.3958107,31.949492 5.3958107,65.390895C5.3958107,66.135493,6.0026208,66.7391,6.7473808,66.7391L44.5313,66.7391C45.2734,66.7391,45.8802,66.135493,45.8802,65.390895L45.8802,14.883091C45.8802,14.140891,45.2734,13.53399,44.5313,13.53399z M21.804701,8.1369996L44.5313,8.1369996C48.257802,8.1370001,51.279999,11.15899,51.279999,14.883091L51.279999,65.390895C51.279999,69.117496,48.257802,72.136996,44.5313,72.136996L6.7473808,72.136996C3.0208105,72.136996,5.8073994E-07,69.117496,0,65.390895L0,31.142392 2.6718808,28.322993 2.6745006,28.246392 16.6771,13.53399 16.638001,13.53399 12.8945,17.483192 16.816401,13.328391 16.872401,13.328391 16.9961,13.19799 17.0078,13.19799z M30.352,0L55.255002,0 60.581002,0 60.581002,4.747 60.581002,55.207999 55.255002,55.207999 55.255002,4.747 30.352,4.747z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -671,7 +671,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="m 127.71875,0.03125 c 1.96953,0.68706766 3.77873,1.728511 5.53125,2.84375 5.68444,-0.1664634 11.35972,0.1351305 17.03125,0.46875 -1.73194,-1.1492389 -3.57847,-2.1023993 -5.53125,-2.8125 -5.6651,-0.45913017 -11.34995,-0.58354857 -17.03125,-0.5 z m -4.25,0.125 c -5.70361,0.2336956 -11.37548,0.81394241 -17.03125,1.5625 1.95847,0.6900238 3.78385,1.7005175 5.53125,2.8125 C 117.61899,3.7613446 123.30363,3.2513106 129,3 127.28567,1.8094865 125.39256,0.94326338 123.46875,0.15625 z M 149,0.90625 c 1.96418,0.6694319 3.78573,1.7017145 5.53125,2.8125 5.71276,0.5944911 11.3908,1.4529283 17.03125,2.53125 C 169.85207,5.0455955 167.95676,4.1939604 166.03125,3.40625 160.39919,2.2891664 154.71106,1.4856327 149,0.90625 z m -46.8125,1.4375 C 96.464888,3.3096165 90.767826,4.4520829 85.15625,5.9375 87.106815,6.6380546 88.941831,7.6391195 90.6875,8.75 96.310308,7.3225043 101.99157,6.1139557 107.71875,5.1875 106.00019,4.0048872 104.11138,3.1307925 102.1875,2.34375 z m 32.46875,1.5 c 2.00275,1.4247295 3.75993,3.1494432 5.53125,4.84375 5.68351,-0.080003 11.36274,0.089238 17.03125,0.5 -1.73044,-1.7529327 -3.58348,-3.3699033 -5.53125,-4.875 -5.66508,-0.4641114 -11.35053,-0.55229 -17.03125,-0.46875 z m -4.28125,0.125 C 124.103,4.2953783 119.00738,4.7504024 113.34375,5.5 c 1.99941,1.4415661 3.79164,3.1353901 5.53125,4.875 5.65135,-0.7706117 11.33386,-1.2798945 17.03125,-1.53125 -1.66132,-1.8295873 -3.58341,-3.3698478 -5.53125,-4.875 z m 39.9375,0.34375 c 1.96346,0.6759081 3.78484,1.7011488 5.53125,2.8125 5.74468,1.2638733 11.4064,2.8505892 17.03125,4.5625 -1.72987,-1.168721 -3.60534,-2.0558794 -5.53125,-2.84375 C 181.73627,7.0795573 176.0521,5.5785891 170.3125,4.3125 z m -14.375,0.375 c 1.9717,1.4743322 3.79243,3.136185 5.53125,4.875 5.71797,0.542825 11.39215,1.453188 17.03125,2.53125 -1.6913,-1.79287 -3.58414,-3.3704114 -5.53125,-4.875 C 167.33901,6.0657565 161.63964,5.35834 155.9375,4.6875 z m -46.84375,1.46875 c -5.72932,0.9221197 -11.402883,2.1554082 -17.03125,3.5625 1.99347,1.451281 3.791265,3.135015 5.53125,4.875 5.62016,-1.451631 11.30209,-2.635724 17.03125,-3.5625 -1.69439,-1.7852366 -3.54058,-3.4272419 -5.53125,-4.875 z M 80.90625,7.0625 c -5.768034,1.593637 -11.417957,3.561289 -17.03125,5.625 1.930762,0.74325 3.819326,1.676529 5.53125,2.84375 5.568779,-2.194858 11.293752,-3.937501 17.03125,-5.625 C 84.697913,8.7506893 82.833288,7.8508336 80.90625,7.0625 z m 96.3125,1.03125 c 2.01998,1.5283684 3.9853,3.332564 5.53125,4.875 5.75001,1.241656 11.41327,2.827536 17.03125,4.5625 -1.70386,-1.770251 -3.54256,-3.428678 -5.53125,-4.875 -5.59469,-1.822363 -11.3081,-3.215876 -17.03125,-4.5625 z M 141.5625,10.1875 c 1.98812,2.171216 3.79154,4.502672 5.53125,6.875 5.68335,-0.07635 11.3631,0.08322 17.03125,0.5 -1.70296,-2.41177 -3.58181,-4.690977 -5.53125,-6.90625 -5.82598,-0.440889 -11.98586,-0.537879 -17.03125,-0.46875 z m -4.25,0.125 c -5.69916,0.210199 -11.37949,0.783222 -17.03125,1.53125 1.96864,2.199545 3.78641,4.526916 5.53125,6.90625 5.65033,-0.779208 11.33395,-1.279899 17.03125,-1.53125 -1.7175,-2.400101 -3.58197,-4.691155 -5.53125,-6.90625 z m -49.5,0.5625 c -5.756209,1.627414 -11.443914,3.488666 -17.03125,5.625 1.986252,1.443163 3.797302,3.109802 5.53125,4.84375 C 81.914775,19.260145 87.586406,17.35867 93.34375,15.75 91.661607,13.944308 89.760517,12.380286 87.8125,10.875 z m 75.03125,0.15625 c 1.99219,2.183637 3.78522,4.525295 5.53125,6.90625 6.28774,0.687745 11.37979,1.450824 17.03125,2.53125 -1.68349,-2.427307 -3.58184,-4.691013 -5.53125,-6.90625 -5.63506,-1.107989 -11.31933,-1.943258 -17.03125,-2.53125 z M 116,12.5 c -5.73799,0.878008 -11.39825,2.174659 -17.03125,3.5625 2.03956,2.148921 3.76403,4.56042 5.5625,6.90625 5.61994,-1.453285 11.29946,-2.648737 17.03125,-3.5625 C 119.8176,17.015603 118.00451,14.67882 116,12.5 z m -56.40625,1.84375 c -5.792814,2.278458 -11.419014,4.940887 -17.03125,7.625 1.967004,0.694041 3.777949,1.728013 5.53125,2.84375 5.58415,-2.744879 11.247417,-5.328478 17.03125,-7.625 -1.725645,-1.141384 -3.572016,-2.162277 -5.53125,-2.84375 z M 184.125,14.4375 c 2.02152,2.155746 3.78605,4.526439 5.53125,6.90625 5.75343,1.228401 11.41327,2.827536 17.03125,4.5625 C 205.01516,23.467587 203.10649,21.216187 201.15625,19 195.55578,17.209943 189.86603,15.703904 184.125,14.4375 z m -89.40625,2.78125 c -5.757378,1.612569 -11.421181,3.531225 -17.03125,5.59375 2.013414,2.164294 3.785804,4.526096 5.53125,6.90625 C 88.826875,27.652066 94.492577,25.733692 100.25,24.125 98.572893,21.691803 96.66853,19.434409 94.71875,17.21875 z m -28.1875,0.9375 c -5.809395,2.239258 -11.434051,4.908712 -17.03125,7.625 1.996367,1.448111 3.791108,3.134858 5.53125,4.875 C 60.587618,27.843081 66.305928,25.370353 72.0625,23 70.325483,21.271546 68.515383,19.599256 66.53125,18.15625 z m 81.9375,0.90625 C 150.4643,21.946692 152.27759,24.946629 154,28 c 5.68473,-0.186058 11.35951,0.135118 17.03125,0.46875 -1.70966,-3.061344 -3.58704,-6.02118 -5.53125,-8.9375 -5.66815,-0.423667 -11.34913,-0.552311 -17.0Line truncated
|
||||
<GeometryDrawing.Pen>
|
||||
<Pen Brush="White" Thickness="2" />
|
||||
<Pen Brush="{mbts:BTSColor UI.icon_foreground}" Thickness="2" />
|
||||
</GeometryDrawing.Pen>
|
||||
</GeometryDrawing>
|
||||
</DrawingGroup.Children>
|
||||
@@ -683,7 +683,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M17.9349,52.632801L13.5176,60.285198 22.3529,60.285198z M4.1452103,50.3647L4.1452103,52.622398 59.855499,52.622398 59.855499,50.3647z M17.062819,7.9790001L21.601147,36.012657 25.301687,19.424307 28.011845,37.14275 33.26696,12.41387 36.744106,37.14275 40.357449,27.929331 43.067604,37.14275 46.822746,19.489307 50.89698,37.14275 56.015999,23.676769 56.015999,42.608997 8.1710005,42.608997 8.1710005,23.135174 13.86557,31.999594z M4.1452103,3.8098803L4.1452103,45.6199 59.855499,45.6199 59.855499,3.8098803z M0,0L64,0 64,64 0,64z"/>
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M17.9349,52.632801L13.5176,60.285198 22.3529,60.285198z M4.1452103,50.3647L4.1452103,52.622398 59.855499,52.622398 59.855499,50.3647z M17.062819,7.9790001L21.601147,36.012657 25.301687,19.424307 28.011845,37.14275 33.26696,12.41387 36.744106,37.14275 40.357449,27.929331 43.067604,37.14275 46.822746,19.489307 50.89698,37.14275 56.015999,23.676769 56.015999,42.608997 8.1710005,42.608997 8.1710005,23.135174 13.86557,31.999594z M4.1452103,3.8098803L4.1452103,45.6199 59.855499,45.6199 59.855499,3.8098803z M0,0L64,0 64,64 0,64z"/>
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -693,7 +693,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M18.660349,20.393C14.879011,20.393 11.806,23.468643 11.806,27.249899 11.806,31.026154 14.879011,34.103001 18.660349,34.103001 22.444386,34.103001 25.519998,31.026154 25.519998,27.249899 25.519998,23.468643 22.444386,20.393 18.660349,20.393z M50.07317,8.7561953C49.408178,8.7706149 48.735172,8.9156297 48.090648,9.2053407 45.51765,10.359123 44.36155,13.394207 45.51765,15.96858 46.671449,18.541552 49.709146,19.691384 52.283444,18.540251 54.856342,17.378819 56.012442,14.352736 54.856342,11.771862 53.990993,9.8450501 52.068145,8.7129386 50.07317,8.7561953z M15.597473,8.6000007L21.868224,8.6000007 22.20032,14.327933 22.20032,14.531032C23.236712,14.816134,24.218506,15.221134,25.133898,15.736836L25.253695,15.615635 29.675461,11.900828 34.111725,16.338337 30.296556,20.624846 30.165057,20.758946C30.683352,21.674349,31.08955,22.659951,31.378649,23.696451L31.544045,23.696451 37.293999,24.196451 37.293999,30.468565 31.566147,30.803267 31.378649,30.803267C31.08955,31.836972,30.683352,32.821373,30.165057,33.736874L30.280955,33.853974 33.993225,38.274582 29.558261,42.709496 25.271895,38.896988 25.133898,38.758988C24.218506,39.274586,23.236712,39.678185,22.20032,39.963387L22.20032,40.146988 21.868224,45.897 15.597473,45.897 15.093578,40.166485 15.093578,39.959488C14.064985,39.671688,13.084595,39.265385,12.174301,38.749787L12.040102,38.881485 7.7381763,42.709496 3.3033104,38.274582 6.9999428,33.869675 7.1522102,33.721176C6.6379356,32.807072,6.2343292,31.83057,5.9464817,30.803267L5.7499523,30.803267 0,30.468565 0,24.196451 5.7278118,23.696451 5.9464817,23.696451C6.2343292,22.665051,6.6379356,21.687248,7.1522102,20.775946L7.0128822,20.640444 3.1874237,16.338337 7.6209869,11.900828 12.027203,15.600036 12.174301,15.744536C13.084595,15.231535,14.064985,14.825334,15.093578,14.537533L15.093578,14.350033z M52.888157,0L57.259197,1.6601361 56.091211,5.7941664 56.035212,5.937414C56.665401,6.3971274,57.240894,6.9413698,57.753986,7.5533617L57.878984,7.4947021 61.949226,6.0845716 63.865797,10.35405 60.071657,12.331821 59.933659,12.393021C60.053354,13.18731,60.075457,13.977598,60.003952,14.758987L60.12245,14.803286 63.999998,16.682059 62.337223,21.053194 58.253977,19.771912 58.12108,19.721113C57.656389,20.352705,57.112095,20.928097,56.496105,21.441189L56.549604,21.556988 57.962284,25.627228 53.691446,27.541302 51.712375,23.744456 51.653774,23.615557C50.862186,23.736756,50.066597,23.760056,49.285309,23.687157L49.241009,23.800455 47.366036,27.678 42.991099,26.017823 44.277584,21.928082 44.325682,21.799183C43.696789,21.334391,43.121297,20.784899,42.607106,20.171606L42.487208,20.225006 38.469066,21.753483 36.553693,17.486847 40.297138,15.390477 40.441637,15.327978C40.321941,14.53499,40.299839,13.744601,40.372736,12.963413L40.24384,12.915114 36.321998,11.158738 37.984774,6.7851217 42.113513,7.9530752 42.263212,8.009104C42.728206,7.3840535,43.269797,6.8124616,43.879186,6.3033789L43.82189,6.1652506 42.29051,2.1496897 46.562749,0.22918414 48.656518,3.977782 48.722916,4.1289099C49.511906,4.0091622,50.299695,3.9843827,51.075585,4.0534113L51.127785,3.9218233z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M18.660349,20.393C14.879011,20.393 11.806,23.468643 11.806,27.249899 11.806,31.026154 14.879011,34.103001 18.660349,34.103001 22.444386,34.103001 25.519998,31.026154 25.519998,27.249899 25.519998,23.468643 22.444386,20.393 18.660349,20.393z M50.07317,8.7561953C49.408178,8.7706149 48.735172,8.9156297 48.090648,9.2053407 45.51765,10.359123 44.36155,13.394207 45.51765,15.96858 46.671449,18.541552 49.709146,19.691384 52.283444,18.540251 54.856342,17.378819 56.012442,14.352736 54.856342,11.771862 53.990993,9.8450501 52.068145,8.7129386 50.07317,8.7561953z M15.597473,8.6000007L21.868224,8.6000007 22.20032,14.327933 22.20032,14.531032C23.236712,14.816134,24.218506,15.221134,25.133898,15.736836L25.253695,15.615635 29.675461,11.900828 34.111725,16.338337 30.296556,20.624846 30.165057,20.758946C30.683352,21.674349,31.08955,22.659951,31.378649,23.696451L31.544045,23.696451 37.293999,24.196451 37.293999,30.468565 31.566147,30.803267 31.378649,30.803267C31.08955,31.836972,30.683352,32.821373,30.165057,33.736874L30.280955,33.853974 33.993225,38.274582 29.558261,42.709496 25.271895,38.896988 25.133898,38.758988C24.218506,39.274586,23.236712,39.678185,22.20032,39.963387L22.20032,40.146988 21.868224,45.897 15.597473,45.897 15.093578,40.166485 15.093578,39.959488C14.064985,39.671688,13.084595,39.265385,12.174301,38.749787L12.040102,38.881485 7.7381763,42.709496 3.3033104,38.274582 6.9999428,33.869675 7.1522102,33.721176C6.6379356,32.807072,6.2343292,31.83057,5.9464817,30.803267L5.7499523,30.803267 0,30.468565 0,24.196451 5.7278118,23.696451 5.9464817,23.696451C6.2343292,22.665051,6.6379356,21.687248,7.1522102,20.775946L7.0128822,20.640444 3.1874237,16.338337 7.6209869,11.900828 12.027203,15.600036 12.174301,15.744536C13.084595,15.231535,14.064985,14.825334,15.093578,14.537533L15.093578,14.350033z M52.888157,0L57.259197,1.6601361 56.091211,5.7941664 56.035212,5.937414C56.665401,6.3971274,57.240894,6.9413698,57.753986,7.5533617L57.878984,7.4947021 61.949226,6.0845716 63.865797,10.35405 60.071657,12.331821 59.933659,12.393021C60.053354,13.18731,60.075457,13.977598,60.003952,14.758987L60.12245,14.803286 63.999998,16.682059 62.337223,21.053194 58.253977,19.771912 58.12108,19.721113C57.656389,20.352705,57.112095,20.928097,56.496105,21.441189L56.549604,21.556988 57.962284,25.627228 53.691446,27.541302 51.712375,23.744456 51.653774,23.615557C50.862186,23.736756,50.066597,23.760056,49.285309,23.687157L49.241009,23.800455 47.366036,27.678 42.991099,26.017823 44.277584,21.928082 44.325682,21.799183C43.696789,21.334391,43.121297,20.784899,42.607106,20.171606L42.487208,20.225006 38.469066,21.753483 36.553693,17.486847 40.297138,15.390477 40.441637,15.327978C40.321941,14.53499,40.299839,13.744601,40.372736,12.963413L40.24384,12.915114 36.321998,11.158738 37.984774,6.7851217 42.113513,7.9530752 42.263212,8.009104C42.728206,7.3840535,43.269797,6.8124616,43.879186,6.3033789L43.82189,6.1652506 42.29051,2.1496897 46.562749,0.22918414 48.656518,3.977782 48.722916,4.1289099C49.511906,4.0091622,50.299695,3.9843827,51.075585,4.0534113L51.127785,3.9218233z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -703,7 +703,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M33.597977,10.759002C37.946865,10.759002 41.485962,14.285001 41.485962,18.649 41.485962,23 37.946865,26.535 33.597977,26.535 29.23909,26.535 25.709992,23 25.709992,18.649 25.709992,17.784 25.849955,16.953001 26.109888,16.174002 26.779719,16.881001 27.70948,17.327002 28.759213,17.327002 30.778696,17.327002 32.418278,15.691001 32.418278,13.668001 32.418278,12.663001 32.008381,11.748001 31.348551,11.087002 32.058369,10.876001 32.818176,10.759002 33.597977,10.759002z M33.606682,4.3679962C25.92741,4.3679957 19.698065,10.594956 19.698065,18.27293 19.698065,25.953894 25.92741,32.177862 33.606682,32.177862 41.295838,32.177862 47.515175,25.953894 47.515175,18.27293 47.515175,10.594956 41.295838,4.3679957 33.606682,4.3679962z M34.867642,1.546141E-09C36.890393,2.6508449E-05 58.705193,0.41938579 68.893006,18.299923 68.893006,18.299923 57.1442,36.139837 34.44656,34.768854 34.44656,34.768854 14.428583,36.59984 0,18.299923 0,18.299923 9.0791523,0.4590019 34.716553,0.0010111886 34.716553,0.0010114873 34.768162,-1.4442128E-06 34.867642,1.546141E-09z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M33.597977,10.759002C37.946865,10.759002 41.485962,14.285001 41.485962,18.649 41.485962,23 37.946865,26.535 33.597977,26.535 29.23909,26.535 25.709992,23 25.709992,18.649 25.709992,17.784 25.849955,16.953001 26.109888,16.174002 26.779719,16.881001 27.70948,17.327002 28.759213,17.327002 30.778696,17.327002 32.418278,15.691001 32.418278,13.668001 32.418278,12.663001 32.008381,11.748001 31.348551,11.087002 32.058369,10.876001 32.818176,10.759002 33.597977,10.759002z M33.606682,4.3679962C25.92741,4.3679957 19.698065,10.594956 19.698065,18.27293 19.698065,25.953894 25.92741,32.177862 33.606682,32.177862 41.295838,32.177862 47.515175,25.953894 47.515175,18.27293 47.515175,10.594956 41.295838,4.3679957 33.606682,4.3679962z M34.867642,1.546141E-09C36.890393,2.6508449E-05 58.705193,0.41938579 68.893006,18.299923 68.893006,18.299923 57.1442,36.139837 34.44656,34.768854 34.44656,34.768854 14.428583,36.59984 0,18.299923 0,18.299923 9.0791523,0.4590019 34.716553,0.0010111886 34.716553,0.0010114873 34.768162,-1.4442128E-06 34.867642,1.546141E-09z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -713,7 +713,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M3.3390064,47.374004L26.00104,47.374004C26.17504,47.881321 26.361041,48.388939 26.575041,48.889757 27.610043,51.333344 29.086045,53.523722 30.968048,55.406689 31.135048,55.573593 31.309048,55.733997 31.476048,55.894005L3.3390064,55.894005C1.4960022,55.894005,0,54.398552,0,52.555387L0,50.712622C0,48.869556,1.4960022,47.374004,3.3390064,47.374004z M8.6740417,35.422004L25.713049,35.422004C25.220049,37.198282 24.972049,39.03446 24.972049,40.910738 24.972049,41.932125 25.046049,42.947113 25.193049,43.942001L8.6740417,43.942001C6.8310413,43.942001,5.3350391,42.44632,5.3350391,40.60354L5.3350391,38.760464C5.3350391,36.917886,6.8310413,35.422004,8.6740417,35.422004z M44.333998,28.91725L44.333998,31.014374C42.649975,31.25297 41.419993,31.901375 40.634958,32.963784 39.852975,34.026392 39.458993,35.225903 39.458993,36.554114 39.458993,37.565422 39.677987,38.455833 40.118966,39.221838 40.555979,39.98354 41.125986,40.573252 41.829967,40.99555 42.53297,41.425255 43.508984,41.850658 44.758986,42.28466 46.149979,42.776463 47.048965,43.183067 47.451004,43.502871 47.852982,43.819578 48.055986,44.291979 48.055986,44.913282 48.055986,45.51469 47.852982,46.022491 47.451004,46.448399 47.048965,46.874603 46.41597,47.0849 45.560011,47.0849 43.728954,47.0849 42.649975,46.093193 42.325999,44.11248L38.810005,45.030586C39.521005,48.178713,41.360971,49.909225,44.333998,50.214329L44.333998,52.91765 46.607986,52.91765 46.607986,50.202824C48.391985,50.015223 49.755999,49.390217 50.701008,48.33131 51.646992,47.273104 52.118979,45.952789 52.118979,44.36648 52.118979,43.331467 51.888998,42.429262 51.431965,41.65526 50.970966,40.886349 50.360981,40.276442 49.59096,39.839542 48.826006,39.401939 47.763016,38.933239 46.41597,38.440628 45.185011,37.991329 44.384962,37.612823 44.008986,37.307821 43.633984,36.999621 43.446972,36.561912 43.446972,35.991115 43.446972,35.429106 43.641979,34.952402 44.032972,34.558096 44.419996,34.163196 44.935011,33.967896 45.576002,33.967896 46.85701,33.967896 47.797989,34.850602 48.407976,36.612617L51.545002,35.327107C50.795002,32.756988,49.14699,31.319575,46.607986,31.015068L46.607986,28.91725z M3.3390026,23.690004L34.347016,23.690004C33.139015,24.471167 32.010015,25.379241 30.975014,26.414426 29.286014,28.103764 27.917013,30.053523 26.909013,32.203998L3.3390026,32.203998C1.4960022,32.203998,0,30.708376,0,28.865226L0,27.028776C0,25.185925,1.4960022,23.690004,3.3390026,23.690004z M45.470961,22.415C55.686974,22.415 63.96701,30.694868 63.959991,40.924053 63.959991,51.140034 55.680992,59.419998 45.464003,59.419998 41.41096,59.419998 37.659003,58.110893 34.613955,55.900974 31.696961,53.777658 29.412962,50.819633 28.130979,47.380901 27.716977,46.285692 27.408993,45.137482 27.215939,43.948774 27.055966,42.96047 26.96899,41.952459 26.968991,40.917248 26.96899,39.007633 27.255978,37.164823 27.796994,35.428709 28.150998,34.306995 28.597959,33.23199 29.145994,32.210482 31.195984,28.371248 34.553958,25.346428 38.626961,23.723612 40.743967,22.882503 43.053967,22.415 45.470961,22.415z M3.3390045,11.952L38.153052,11.952C39.996056,11.952,41.492057,13.448001,41.492057,15.290001L41.492057,17.133002C41.492057,18.976003,39.996056,20.472003,38.153052,20.472004L3.3390045,20.472004C1.4960022,20.472003,0,18.976003,0,17.133002L0,15.290001C0,13.448001,1.4960022,11.952,3.3390045,11.952z M8.6735134,0L43.487543,0C45.330534,0,46.826027,1.4958782,46.826027,3.3386841L46.826027,5.1814384C46.826027,7.0245428,45.330534,8.5200005,43.487543,8.5200005L8.6735134,8.5200005C6.8304424,8.5200005,5.3350277,7.0245428,5.3350277,5.1814384L5.3350277,3.3386841C5.3350277,1.4958782,6.8304424,0,8.6735134,0z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M3.3390064,47.374004L26.00104,47.374004C26.17504,47.881321 26.361041,48.388939 26.575041,48.889757 27.610043,51.333344 29.086045,53.523722 30.968048,55.406689 31.135048,55.573593 31.309048,55.733997 31.476048,55.894005L3.3390064,55.894005C1.4960022,55.894005,0,54.398552,0,52.555387L0,50.712622C0,48.869556,1.4960022,47.374004,3.3390064,47.374004z M8.6740417,35.422004L25.713049,35.422004C25.220049,37.198282 24.972049,39.03446 24.972049,40.910738 24.972049,41.932125 25.046049,42.947113 25.193049,43.942001L8.6740417,43.942001C6.8310413,43.942001,5.3350391,42.44632,5.3350391,40.60354L5.3350391,38.760464C5.3350391,36.917886,6.8310413,35.422004,8.6740417,35.422004z M44.333998,28.91725L44.333998,31.014374C42.649975,31.25297 41.419993,31.901375 40.634958,32.963784 39.852975,34.026392 39.458993,35.225903 39.458993,36.554114 39.458993,37.565422 39.677987,38.455833 40.118966,39.221838 40.555979,39.98354 41.125986,40.573252 41.829967,40.99555 42.53297,41.425255 43.508984,41.850658 44.758986,42.28466 46.149979,42.776463 47.048965,43.183067 47.451004,43.502871 47.852982,43.819578 48.055986,44.291979 48.055986,44.913282 48.055986,45.51469 47.852982,46.022491 47.451004,46.448399 47.048965,46.874603 46.41597,47.0849 45.560011,47.0849 43.728954,47.0849 42.649975,46.093193 42.325999,44.11248L38.810005,45.030586C39.521005,48.178713,41.360971,49.909225,44.333998,50.214329L44.333998,52.91765 46.607986,52.91765 46.607986,50.202824C48.391985,50.015223 49.755999,49.390217 50.701008,48.33131 51.646992,47.273104 52.118979,45.952789 52.118979,44.36648 52.118979,43.331467 51.888998,42.429262 51.431965,41.65526 50.970966,40.886349 50.360981,40.276442 49.59096,39.839542 48.826006,39.401939 47.763016,38.933239 46.41597,38.440628 45.185011,37.991329 44.384962,37.612823 44.008986,37.307821 43.633984,36.999621 43.446972,36.561912 43.446972,35.991115 43.446972,35.429106 43.641979,34.952402 44.032972,34.558096 44.419996,34.163196 44.935011,33.967896 45.576002,33.967896 46.85701,33.967896 47.797989,34.850602 48.407976,36.612617L51.545002,35.327107C50.795002,32.756988,49.14699,31.319575,46.607986,31.015068L46.607986,28.91725z M3.3390026,23.690004L34.347016,23.690004C33.139015,24.471167 32.010015,25.379241 30.975014,26.414426 29.286014,28.103764 27.917013,30.053523 26.909013,32.203998L3.3390026,32.203998C1.4960022,32.203998,0,30.708376,0,28.865226L0,27.028776C0,25.185925,1.4960022,23.690004,3.3390026,23.690004z M45.470961,22.415C55.686974,22.415 63.96701,30.694868 63.959991,40.924053 63.959991,51.140034 55.680992,59.419998 45.464003,59.419998 41.41096,59.419998 37.659003,58.110893 34.613955,55.900974 31.696961,53.777658 29.412962,50.819633 28.130979,47.380901 27.716977,46.285692 27.408993,45.137482 27.215939,43.948774 27.055966,42.96047 26.96899,41.952459 26.968991,40.917248 26.96899,39.007633 27.255978,37.164823 27.796994,35.428709 28.150998,34.306995 28.597959,33.23199 29.145994,32.210482 31.195984,28.371248 34.553958,25.346428 38.626961,23.723612 40.743967,22.882503 43.053967,22.415 45.470961,22.415z M3.3390045,11.952L38.153052,11.952C39.996056,11.952,41.492057,13.448001,41.492057,15.290001L41.492057,17.133002C41.492057,18.976003,39.996056,20.472003,38.153052,20.472004L3.3390045,20.472004C1.4960022,20.472003,0,18.976003,0,17.133002L0,15.290001C0,13.448001,1.4960022,11.952,3.3390045,11.952z M8.6735134,0L43.487543,0C45.330534,0,46.826027,1.4958782,46.826027,3.3386841L46.826027,5.1814384C46.826027,7.0245428,45.330534,8.5200005,43.487543,8.5200005L8.6735134,8.5200005C6.8304424,8.5200005,5.3350277,7.0245428,5.3350277,5.1814384L5.3350277,3.3386841C5.3350277,1.4958782,6.8304424,0,8.6735134,0z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -723,7 +723,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black"
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M14.200889,0C15.299896,0 16.59991,0.50000046 17.998923,1.4989944 19.597936,2.5990016 20.397944,4.5970043 21.196948,6.4960083 22.495954,9.6950015 23.495961,11.693005 26.093989,11.594006 26.793992,11.594006 27.293996,12.093014 27.293996,12.693005 27.293996,13.393002 26.793992,13.892012 26.193997,13.892012 21.896949,14.092009 20.297938,10.394007 19.097932,7.3960032 18.398921,5.6969966 17.698918,4.0979957 16.699916,3.3979983 15.899907,2.8979978 14.600901,1.9989949 13.700884,2.4989952 12.701883,2.9980039 12.30187,5.0970048 12.20188,6.3960022L13.900898,6.2959961C14.600901,6.2959961,15.100904,6.6960057,15.199904,7.3960032L15.399903,9.6950015C16.799909,10.19401 18.098929,10.894008 19.197938,11.893001 23.995965,15.991012 24.494979,23.287025 20.397944,28.084026 16.099906,32.78203 8.8038569,33.381029 4.0068054,29.184019 -0.79122243,25.086023 -1.3902263,17.79001 2.8067985,12.993009 3.9068136,11.693005 5.405819,10.594005 7.0048309,9.9940128L6.9048391,7.9960098C6.9048391,7.3960032,7.3048363,6.7959966,8.0038471,6.6960057L9.9028645,6.5959992C9.9028645,5.3970083 10.302861,1.6989915 12.701883,0.50000046 13.10188,0.099990942 13.700884,0 14.200889,0z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -734,7 +734,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M10.659519,13.581999C10.787763,13.581999 10.916255,13.630751 11.01375,13.728755 11.207739,13.924762 11.207739,14.241775 11.01175,14.435782L8.5898266,16.850518 11.012901,19.265967C11.20889,19.460974 11.20889,19.776986 11.013901,19.972994 10.916906,20.070997 10.787913,20.119999 10.65992,20.119999 10.531927,20.119999 10.403934,20.070997 10.30694,19.973994L7.8819971,17.556247 5.4570541,19.973994C5.3600597,20.070997 5.2320671,20.119999 5.1040735,20.119999 4.9760809,20.119999 4.8470879,20.070997 4.7500935,19.972994 4.5551033,19.776986 4.5551033,19.460974 4.7510929,19.265967L7.1741672,16.850518 4.752244,14.435782C4.5562544,14.241775 4.5562544,13.924762 4.7502441,13.728755 4.9452333,13.532748 5.2642155,13.533748 5.4572048,13.727755L7.8819966,16.144916 10.306789,13.727755C10.403284,13.630751,10.531276,13.582,10.659519,13.581999z M7.7229891,10.151996C4.0159941,10.151996 0.99999809,13.156997 0.99999809,16.850998 0.99999809,20.544999 4.0159941,23.55 7.7229891,23.55 10.503235,23.55 12.895357,21.859687 13.917652,19.456124L14.034025,19.162648 14.034025,18.772999 14.164453,18.772999 14.191419,18.682897C14.357855,18.100457 14.44698,17.485905 14.44698,16.850998 14.44698,13.156997 11.429984,10.151996 7.7229891,10.151996z M28.477001,10.135L31.999016,13.663 28.424001,17.244999 27.716998,16.538999 29.693872,14.558 21.322995,14.558 21.322995,13.558 30.482195,13.558 27.769998,10.841z M7.4592972,5.1720018L15.45899,8.869 22.849004,5.1720018z M4.6849804,4.1720018L25.465012,4.1720018 25.465012,10.408002 24.465011,10.408002 24.465011,5.4821377 15.476991,9.9780006 5.6849813,5.4540205 5.6849813,9.4246554 5.7953281,9.3948154C6.4117265,9.2363219 7.0576777,9.1519957 7.7229891,9.1519957 11.981983,9.1519957 15.446978,12.605997 15.446978,16.850998 15.446978,17.514279 15.362384,18.158249 15.203383,18.772749L24.465023,18.772999 24.465023,16.665997 25.465026,16.665997 25.465026,19.772997 14.868521,19.772997 14.839026,19.844827C13.664856,22.607125 10.917235,24.550001 7.7229891,24.550001 3.4649954,24.550001 0,21.095999 0,16.850998 0,13.733575 1.8686953,11.042744 4.5478315,9.8331947L4.6849804,9.7732801z M7.8089724,0L29.631012,0 29.631012,7.2790012 28.63101,7.2790012 28.63101,1 8.8089738,1 8.8089738,3.1080008 7.8089724,3.1080008z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M10.659519,13.581999C10.787763,13.581999 10.916255,13.630751 11.01375,13.728755 11.207739,13.924762 11.207739,14.241775 11.01175,14.435782L8.5898266,16.850518 11.012901,19.265967C11.20889,19.460974 11.20889,19.776986 11.013901,19.972994 10.916906,20.070997 10.787913,20.119999 10.65992,20.119999 10.531927,20.119999 10.403934,20.070997 10.30694,19.973994L7.8819971,17.556247 5.4570541,19.973994C5.3600597,20.070997 5.2320671,20.119999 5.1040735,20.119999 4.9760809,20.119999 4.8470879,20.070997 4.7500935,19.972994 4.5551033,19.776986 4.5551033,19.460974 4.7510929,19.265967L7.1741672,16.850518 4.752244,14.435782C4.5562544,14.241775 4.5562544,13.924762 4.7502441,13.728755 4.9452333,13.532748 5.2642155,13.533748 5.4572048,13.727755L7.8819966,16.144916 10.306789,13.727755C10.403284,13.630751,10.531276,13.582,10.659519,13.581999z M7.7229891,10.151996C4.0159941,10.151996 0.99999809,13.156997 0.99999809,16.850998 0.99999809,20.544999 4.0159941,23.55 7.7229891,23.55 10.503235,23.55 12.895357,21.859687 13.917652,19.456124L14.034025,19.162648 14.034025,18.772999 14.164453,18.772999 14.191419,18.682897C14.357855,18.100457 14.44698,17.485905 14.44698,16.850998 14.44698,13.156997 11.429984,10.151996 7.7229891,10.151996z M28.477001,10.135L31.999016,13.663 28.424001,17.244999 27.716998,16.538999 29.693872,14.558 21.322995,14.558 21.322995,13.558 30.482195,13.558 27.769998,10.841z M7.4592972,5.1720018L15.45899,8.869 22.849004,5.1720018z M4.6849804,4.1720018L25.465012,4.1720018 25.465012,10.408002 24.465011,10.408002 24.465011,5.4821377 15.476991,9.9780006 5.6849813,5.4540205 5.6849813,9.4246554 5.7953281,9.3948154C6.4117265,9.2363219 7.0576777,9.1519957 7.7229891,9.1519957 11.981983,9.1519957 15.446978,12.605997 15.446978,16.850998 15.446978,17.514279 15.362384,18.158249 15.203383,18.772749L24.465023,18.772999 24.465023,16.665997 25.465026,16.665997 25.465026,19.772997 14.868521,19.772997 14.839026,19.844827C13.664856,22.607125 10.917235,24.550001 7.7229891,24.550001 3.4649954,24.550001 0,21.095999 0,16.850998 0,13.733575 1.8686953,11.042744 4.5478315,9.8331947L4.6849804,9.7732801z M7.8089724,0L29.631012,0 29.631012,7.2790012 28.63101,7.2790012 28.63101,1 8.8089738,1 8.8089738,3.1080008 7.8089724,3.1080008z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -744,7 +744,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M2,2L2,25 30,25 30,2z M1,0L31,0C31.552002,0,32,0.44702148,32,1L32,26C32,26.552979,31.552002,27,31,27L17,27 17,30 25,30 25,32 7,32 7,30 15,30 15,27 1,27C0.44799805,27,0,26.552979,0,26L0,1C0,0.44702148,0.44799805,0,1,0z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M2,2L2,25 30,25 30,2z M1,0L31,0C31.552002,0,32,0.44702148,32,1L32,26C32,26.552979,31.552002,27,31,27L17,27 17,30 25,30 25,32 7,32 7,30 15,30 15,27 1,27C0.44799805,27,0,26.552979,0,26L0,1C0,0.44702148,0.44799805,0,1,0z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -754,7 +754,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M16.2,11.1C19,11.1 21.2,13.3 21.2,16.1 21.2,18.9 19,21.1 16.2,21.1 13.4,21.1 11.2,18.9 11.2,16.1 11.2,13.4 13.4,11.1 16.2,11.1z M16.2,6C10.6,6 6,10.6 6,16.1 6,21.7 10.5,26.2 16.1,26.2 21.7,26.2 26.2,21.7 26.2,16.1 26.3,10.6 21.7,6 16.2,6z M15.3,0L16.8,0 16.8,5.1999998C22.2,5.5,26.6,9.6999998,27.1,15L32,15 32,16.5 27.1,16.5 27.1,16.7C26.8,22.3,22.3,26.8,16.7,27.1L16.7,32 15.2,32 15.2,27.1 15.5,27.1 16,27.1C10.2,27,5.5,22.5,5.1999998,16.7L5.1999998,16.5 5.1999998,16.4 0,16.4 0,15 5.3000002,15C5.9000001,9.6999998,10.3,5.5,15.7,5.1999998L15.6,5.1999998 15.3,5.1999998z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M16.2,11.1C19,11.1 21.2,13.3 21.2,16.1 21.2,18.9 19,21.1 16.2,21.1 13.4,21.1 11.2,18.9 11.2,16.1 11.2,13.4 13.4,11.1 16.2,11.1z M16.2,6C10.6,6 6,10.6 6,16.1 6,21.7 10.5,26.2 16.1,26.2 21.7,26.2 26.2,21.7 26.2,16.1 26.3,10.6 21.7,6 16.2,6z M15.3,0L16.8,0 16.8,5.1999998C22.2,5.5,26.6,9.6999998,27.1,15L32,15 32,16.5 27.1,16.5 27.1,16.7C26.8,22.3,22.3,26.8,16.7,27.1L16.7,32 15.2,32 15.2,27.1 15.5,27.1 16,27.1C10.2,27,5.5,22.5,5.1999998,16.7L5.1999998,16.5 5.1999998,16.4 0,16.4 0,15 5.3000002,15C5.9000001,9.6999998,10.3,5.5,15.7,5.1999998L15.6,5.1999998 15.3,5.1999998z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -764,7 +764,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M5.5803752,0C7.1813383,0 8.8833761,0.6000061 10.084373,1.8009948 11.785374,3.5029907 12.285377,5.8049927 11.685397,7.9060059L24.094478,20.31601C26.096505,19.714996 28.398524,20.216003 30.099524,21.916992 31.500535,23.317993 32.101552,25.320007 31.901538,27.121002L28.998504,24.118988C27.69753,22.817993 25.496465,22.817993 24.094478,24.118988 22.693467,25.519989 22.693467,27.622009 24.094478,29.02301L26.997514,31.924988C25.195498,32.225006 23.194447,31.625 21.793437,30.123993 20.191436,28.522003 19.591456,26.119995 20.191436,24.118988L7.7823553,11.709015C5.6803512,12.309998 3.3783338,11.80899 1.6773333,10.108002 0.37629925,8.7070007 -0.224718,6.8049927 0.076309212,5.0039978L2.978307,7.9060059C4.2793407,9.2070007 6.4813823,9.2070007 7.8823928,7.9060059 9.2834034,6.605011 9.2834034,4.4030151 7.8823928,3.0020142L4.9803342,0.10000607C5.1803479,0,5.3803615,0,5.5803752,0z" />
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M5.5803752,0C7.1813383,0 8.8833761,0.6000061 10.084373,1.8009948 11.785374,3.5029907 12.285377,5.8049927 11.685397,7.9060059L24.094478,20.31601C26.096505,19.714996 28.398524,20.216003 30.099524,21.916992 31.500535,23.317993 32.101552,25.320007 31.901538,27.121002L28.998504,24.118988C27.69753,22.817993 25.496465,22.817993 24.094478,24.118988 22.693467,25.519989 22.693467,27.622009 24.094478,29.02301L26.997514,31.924988C25.195498,32.225006 23.194447,31.625 21.793437,30.123993 20.191436,28.522003 19.591456,26.119995 20.191436,24.118988L7.7823553,11.709015C5.6803512,12.309998 3.3783338,11.80899 1.6773333,10.108002 0.37629925,8.7070007 -0.224718,6.8049927 0.076309212,5.0039978L2.978307,7.9060059C4.2793407,9.2070007 6.4813823,9.2070007 7.8823928,7.9060059 9.2834034,6.605011 9.2834034,4.4030151 7.8823928,3.0020142L4.9803342,0.10000607C5.1803479,0,5.3803615,0,5.5803752,0z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -774,7 +774,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M25.700012,16.000016L28.800019,16.000016 28.800019,17.099989 25.700012,17.099989z M23.200012,8.599998L17.200012,16.300004C17.200012,16.500016,17.100006,16.800002,17,17.000014L20.100006,22.50001 15.700012,17.699965C15,17.599989 14.5,17.000014 14.5,16.300004 14.5,15.599991 15,15.000017 15.700012,14.89998L15.800019,14.89998z M15.700012,2.9999971C8.7000124,3.2000091,3.0000002,9.0000224,3,16.000016L6.1000063,16.000016 6.1000063,17.099989 3.1000061,17.099989 3.1000061,17.300002C3.7000124,23.699959,9.1000063,28.79999,15.700012,29.000002L15.800019,29.000002 15.800019,26.000006 16.900025,26.000006 16.900025,29.000002 17.100006,29.000002C23.800019,28.500004 29.100006,22.899971 29.100006,16.099991 29.100006,9.3000092 23.800019,3.7000086 17.100006,3.2000089L16.900025,3.2000089 16.900025,6.2000065 15.800019,6.2000065 15.800019,2.9999971z M16,0C24.800019,0 32,7.2000055 32,16.000016 32,24.799994 24.800019,32 16,32 7.2000124,32 2.3106986E-07,24.799994 0,16.000016 2.3106986E-07,7.2000055 7.2000124,0 16,0z"/>
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M25.700012,16.000016L28.800019,16.000016 28.800019,17.099989 25.700012,17.099989z M23.200012,8.599998L17.200012,16.300004C17.200012,16.500016,17.100006,16.800002,17,17.000014L20.100006,22.50001 15.700012,17.699965C15,17.599989 14.5,17.000014 14.5,16.300004 14.5,15.599991 15,15.000017 15.700012,14.89998L15.800019,14.89998z M15.700012,2.9999971C8.7000124,3.2000091,3.0000002,9.0000224,3,16.000016L6.1000063,16.000016 6.1000063,17.099989 3.1000061,17.099989 3.1000061,17.300002C3.7000124,23.699959,9.1000063,28.79999,15.700012,29.000002L15.800019,29.000002 15.800019,26.000006 16.900025,26.000006 16.900025,29.000002 17.100006,29.000002C23.800019,28.500004 29.100006,22.899971 29.100006,16.099991 29.100006,9.3000092 23.800019,3.7000086 17.100006,3.2000089L16.900025,3.2000089 16.900025,6.2000065 15.800019,6.2000065 15.800019,2.9999971z M16,0C24.800019,0 32,7.2000055 32,16.000016 32,24.799994 24.800019,32 16,32 7.2000124,32 2.3106986E-07,24.799994 0,16.000016 2.3106986E-07,7.2000055 7.2000124,0 16,0z"/>
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -784,7 +784,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M7,26L19,26 19,28 7,28z M12.732999,14.533003L13.867999,14.533003 13.867999,15.486002C14.643999,15.519002,15.164999,15.671002,15.546999,15.844003L15.210999,17.068001C14.909999,16.949001 14.376999,16.700003 13.543999,16.700003 12.790999,16.700003 12.547999,17.003002 12.547999,17.307001 12.547999,17.664001 12.952999,17.892002 13.936999,18.238001 15.315999,18.693001 15.870998,19.289001 15.870998,20.264 15.870998,21.228001 15.141998,22.052 13.809999,22.268999L13.809999,23.372999 12.674999,23.372999 12.674999,22.344C11.898999,22.310999,11.146,22.116999,10.705999,21.878L11.052999,20.610001C11.539999,20.860001 12.223,21.087999 12.975999,21.087999 13.635999,21.087999 14.087999,20.85 14.087999,20.416 14.087999,20.004 13.716999,19.744001 12.859999,19.474001 11.620999,19.083 10.775999,18.542002 10.775999,17.490002 10.775999,16.537003 11.492999,15.790002 12.732999,15.562002z M2,12L2,30 24,30 24,12z M2,7L2,10 24,10 24,7z M2,2L2,5 24,5 24,2z M0,0L26,0 26,32 0,32z"/>
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M7,26L19,26 19,28 7,28z M12.732999,14.533003L13.867999,14.533003 13.867999,15.486002C14.643999,15.519002,15.164999,15.671002,15.546999,15.844003L15.210999,17.068001C14.909999,16.949001 14.376999,16.700003 13.543999,16.700003 12.790999,16.700003 12.547999,17.003002 12.547999,17.307001 12.547999,17.664001 12.952999,17.892002 13.936999,18.238001 15.315999,18.693001 15.870998,19.289001 15.870998,20.264 15.870998,21.228001 15.141998,22.052 13.809999,22.268999L13.809999,23.372999 12.674999,23.372999 12.674999,22.344C11.898999,22.310999,11.146,22.116999,10.705999,21.878L11.052999,20.610001C11.539999,20.860001 12.223,21.087999 12.975999,21.087999 13.635999,21.087999 14.087999,20.85 14.087999,20.416 14.087999,20.004 13.716999,19.744001 12.859999,19.474001 11.620999,19.083 10.775999,18.542002 10.775999,17.490002 10.775999,16.537003 11.492999,15.790002 12.732999,15.562002z M2,12L2,30 24,30 24,12z M2,7L2,10 24,10 24,7z M2,2L2,5 24,5 24,2z M0,0L26,0 26,32 0,32z"/>
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -794,7 +794,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M12.099998,0L19.799995,0 19.799995,12.1 32,12.1 32,19.799996 19.900002,19.799996 19.900002,31.999999 12.199997,31.999999 12.199997,19.900003 0,19.900003 0,12.199999 12.099998,12.199999z"/>
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M12.099998,0L19.799995,0 19.799995,12.1 32,12.1 32,19.799996 19.900002,19.799996 19.900002,31.999999 12.199997,31.999999 12.199997,19.900003 0,19.900003 0,12.199999 12.099998,12.199999z"/>
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -806,7 +806,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Transparent" Geometry="M14.100037,6L14.100037,14.099998 6,14.099998 6,18 14.100037,18 14.100037,26.099998 18,26.099998 18,18 26,18 26,14.099998 17.900024,14.099998 17.900024,6z M16,0C24.800049,0 32,7.1999969 32,16 32,24.800003 24.800049,32 16,32 7.2000122,32 0,24.800003 0,16 0,7.1999969 7.2000122,0 16,0z">
|
||||
<GeometryDrawing.Pen>
|
||||
<Pen Thickness="2" Brush="Black"/>
|
||||
<Pen Thickness="2" Brush="{mbts:BTSColor UI.icon_foreground}"/>
|
||||
</GeometryDrawing.Pen>
|
||||
</GeometryDrawing>
|
||||
</DrawingGroup.Children>
|
||||
@@ -818,7 +818,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M454.352,398.431L331,190.879V87.42c17.459-6.192,30-22.865,30-42.42c0-24.813-20.187-45-45-45H196
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M454.352,398.431L331,190.879V87.42c17.459-6.192,30-22.865,30-42.42c0-24.813-20.187-45-45-45H196
|
||||
c-24.813,0-45,20.187-45,45c0,19.555,12.541,36.228,30,42.42v103.459L57.659,398.413c-14.085,23.476-14.442,51.715-0.953,75.539
|
||||
C70.196,497.776,94.594,512,121.972,512h268.055c27.378,0,51.776-14.224,65.266-38.048
|
||||
C468.779,450.134,468.427,421.903,454.352,398.431z M196,30h120c8.271,0,15,6.729,15,15s-6.729,15-15,15H196
|
||||
@@ -841,7 +841,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Transparent" Geometry="M16.378574,2.0941912E-05C17.053625,-0.0029775997,17.669592,0.31702943,17.669592,0.31702964L27.747614,10.181254C30.078613,11.977292,28.301632,12.163302,28.301632,12.163302L14.005584,15.500376C11.924586,18.496447,15.130586,19.519465,15.130586,19.519465L30.870606,16.081391C32.66065,16.035383,31.786623,17.428421,31.786623,17.428421L15.130586,21.214503C12.353603,22.20553,10.869592,20.092476,10.869592,20.092476L0.76355401,8.8182232C-1.4574583,4.6071207,1.8735417,3.616101,1.8735417,3.616101L16.08762,0.023016395C16.184605,0.0080166093,16.282566,2.082104E-05,16.378574,2.0941912E-05z">
|
||||
<GeometryDrawing.Pen>
|
||||
<Pen Brush="Black" Thickness="2"/>
|
||||
<Pen Brush="{mbts:BTSColor UI.icon_foreground}" Thickness="2"/>
|
||||
</GeometryDrawing.Pen>
|
||||
</GeometryDrawing>
|
||||
</DrawingGroup.Children>
|
||||
@@ -853,7 +853,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M26.84801,26.411987L31.841998,26.411987 31.841998,31.915009 26.84801,31.915009z M10.497003,26.411987L18.709003,26.411987 18.709003,31.915009 10.497003,31.915009z M20.052005,18.708984L25.386005,18.708984 25.386005,31.915009 20.052005,31.915009z M10.497003,14.221985L18.709003,14.221985 18.709003,25.057983 10.497003,25.057983z M20.052005,9.5660095L25.386005,9.5660095 25.386005,17.18399 20.052005,17.18399z M26.84801,7.07901L31.841998,7.07901 31.841998,25.057983 26.84801,25.057983z M10.497003,1.9949951L18.709003,1.9949951 18.709003,12.686005 10.497003,12.686005z M0,0L9.2280055,0 9.2280055,32 0,32z"/>
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M26.84801,26.411987L31.841998,26.411987 31.841998,31.915009 26.84801,31.915009z M10.497003,26.411987L18.709003,26.411987 18.709003,31.915009 10.497003,31.915009z M20.052005,18.708984L25.386005,18.708984 25.386005,31.915009 20.052005,31.915009z M10.497003,14.221985L18.709003,14.221985 18.709003,25.057983 10.497003,25.057983z M20.052005,9.5660095L25.386005,9.5660095 25.386005,17.18399 20.052005,17.18399z M26.84801,7.07901L31.841998,7.07901 31.841998,25.057983 26.84801,25.057983z M10.497003,1.9949951L18.709003,1.9949951 18.709003,12.686005 10.497003,12.686005z M0,0L9.2280055,0 9.2280055,32 0,32z"/>
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -865,7 +865,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Geometry="M38.642,39.289c-3.895-3.373-2.645-7.564-0.338-13.896c1.898-5.21,4.051-11.118,1.445-16.945 c-1.789-4.001-6.2-8.319-13.215-8.442L25.963,0c-2.518,0-6.289,0.283-9.953,2.734c-0.286,0.191-0.462,0.51-0.472,0.855 c-0.01,0.345,0.148,0.672,0.424,0.879c0.583,0.438,0.94,1.313,1.138,2.049c-2.711,0.486-3.37,1.934-4.01,3.34 c-0.676,1.486-1.443,3.17-5.15,4.794c-1.008,0.442-1.693,1.499-1.789,2.757c-0.092,1.221,0.412,2.334,1.315,2.905 c0.385,0.244,0.778,0.269,1.094,0.289c0.382,0.025,0.657,0.043,1.07,0.409c0.327,0.292,0.593,0.621,0.827,0.912 c0.388,0.481,0.722,0.896,1.268,1.021c0.77,0.181,1.694-0.278,2.761-0.843c0.693-0.368,1.479-0.784,2.073-0.904 c0.754-0.15,1.721-0.323,2.52-0.323c0.684,0,0.909,0.134,0.928,0.114c0.18,1.047-1.972,2.48-3.87,3.745 c-3.333,2.224-7.481,4.988-6.394,9.455c0.17,0.699,0.523,2.123,3.82,3.819C6.66,39.331,1.21,41.742,1.21,43.609 c0,1.244,1.142,2.041,7.165,2.703C12.421,46.757,17.793,47,23.5,47s11.079-0.243,15.125-0.688 c6.022-0.662,7.165-1.459,7.165-2.703C45.79,42.247,42.89,40.596,38.642,39.289z">
|
||||
<GeometryDrawing.Pen>
|
||||
<Pen Brush="Black" Thickness="3"/>
|
||||
<Pen Brush="{mbts:BTSColor UI.icon_foreground}" Thickness="3"/>
|
||||
</GeometryDrawing.Pen>
|
||||
</GeometryDrawing>
|
||||
</DrawingGroup.Children>
|
||||
@@ -877,7 +877,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M27,22.000013C25.346001,22.000013 24,23.345991 24,25.000013 24,26.654005 25.346001,28.000013 27,28.000013 28.653999,28.000013 30,26.654005 30,25.000013 30,23.345991 28.653999,22.000013 27,22.000013z M5,22C3.3460007,22 2,23.346 2,25 2,26.654 3.3460007,28 5,28 6.6540003,28 8,26.654 8,25 8,23.346 6.6540003,22 5,22z M16,2C14.346,2 13,3.3460007 13,5 13,6.6540003 14.346,8 16,8 17.654,8 19,6.6540003 19,5 19,3.3460007 17.654,2 16,2z M16,0C18.757,0 21,2.243 21,5 21,6.2061872 20.570676,7.3139925 19.856814,8.178627L19.749571,8.3023939 26.702677,20.009615 26.74309,20.006532C26.828189,20.002204 26.913844,20.000013 27,20.000013 29.757004,20.000013 32,22.242994 32,25.000013 32,27.757002 29.757004,30.000013 27,30.000013 24.242996,30.000013 22,27.757002 22,25.000013 22,23.104563 23.060166,21.452075 24.618662,20.604373L24.703606,20.560808 18.143555,9.5162544 17.944359,9.6064529C17.346375,9.8598127 16.68925,10 16,10 15.224594,10 14.489846,9.8225756 13.834221,9.5061913L13.749143,9.4625559 7.9581623,20.972196 7.9896793,20.994624C9.2092552,21.907268 10,23.363032 10,25 10,27.757 7.757,30 5,30 2.243,30 0,27.757 0,25 0,22.243 2.243,20 5,20 5.3446255,20 5.6812191,20.035047 6.0064049,20.101764L6.1420031,20.133139 12.151809,8.1885796 12.143186,8.178627C11.429324,7.3139925 11,6.2061872 11,5 11,2.243 13.243,0 16,0z"/>
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M27,22.000013C25.346001,22.000013 24,23.345991 24,25.000013 24,26.654005 25.346001,28.000013 27,28.000013 28.653999,28.000013 30,26.654005 30,25.000013 30,23.345991 28.653999,22.000013 27,22.000013z M5,22C3.3460007,22 2,23.346 2,25 2,26.654 3.3460007,28 5,28 6.6540003,28 8,26.654 8,25 8,23.346 6.6540003,22 5,22z M16,2C14.346,2 13,3.3460007 13,5 13,6.6540003 14.346,8 16,8 17.654,8 19,6.6540003 19,5 19,3.3460007 17.654,2 16,2z M16,0C18.757,0 21,2.243 21,5 21,6.2061872 20.570676,7.3139925 19.856814,8.178627L19.749571,8.3023939 26.702677,20.009615 26.74309,20.006532C26.828189,20.002204 26.913844,20.000013 27,20.000013 29.757004,20.000013 32,22.242994 32,25.000013 32,27.757002 29.757004,30.000013 27,30.000013 24.242996,30.000013 22,27.757002 22,25.000013 22,23.104563 23.060166,21.452075 24.618662,20.604373L24.703606,20.560808 18.143555,9.5162544 17.944359,9.6064529C17.346375,9.8598127 16.68925,10 16,10 15.224594,10 14.489846,9.8225756 13.834221,9.5061913L13.749143,9.4625559 7.9581623,20.972196 7.9896793,20.994624C9.2092552,21.907268 10,23.363032 10,25 10,27.757 7.757,30 5,30 2.243,30 0,27.757 0,25 0,22.243 2.243,20 5,20 5.3446255,20 5.6812191,20.035047 6.0064049,20.101764L6.1420031,20.133139 12.151809,8.1885796 12.143186,8.178627C11.429324,7.3139925 11,6.2061872 11,5 11,2.243 13.243,0 16,0z"/>
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -887,8 +887,8 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black" Geometry="M106.965,252.716H262.11c5.522,0,10-4.477,10-10v-77.572c0-5.523-4.478-10-10-10h-67.572V10c0-5.523-4.478-10-10-10 h-77.572c-5.522,0-10,4.477-10,10v232.716C96.965,248.239,101.443,252.716,106.965,252.716z M116.965,20h57.572v145.144 c0,5.523,4.478,10,10,10h67.572v57.572H116.965V20z"/>
|
||||
<GeometryDrawing Brush="Black" Geometry="M417.253,193.93h-77.571c-5.522,0-10,4.477-10,10v67.572H262.11c-5.522,0-10,4.477-10,10v67.572H29.393 c-5.522,0-10,4.477-10,10v77.572c0,5.523,4.478,10,10,10h387.86c5.522,0,10-4.477,10-10V203.93 C427.253,198.407,422.776,193.93,417.253,193.93z M39.393,369.075h290.289v57.572H39.393V369.075z M407.253,426.646h-57.571 v-67.572c0-5.523-4.478-10-10-10H272.11v-57.572h67.572c5.522,0,10-4.477,10-10V213.93h57.571V426.646z"/>
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M106.965,252.716H262.11c5.522,0,10-4.477,10-10v-77.572c0-5.523-4.478-10-10-10h-67.572V10c0-5.523-4.478-10-10-10 h-77.572c-5.522,0-10,4.477-10,10v232.716C96.965,248.239,101.443,252.716,106.965,252.716z M116.965,20h57.572v145.144 c0,5.523,4.478,10,10,10h67.572v57.572H116.965V20z"/>
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}" Geometry="M417.253,193.93h-77.571c-5.522,0-10,4.477-10,10v67.572H262.11c-5.522,0-10,4.477-10,10v67.572H29.393 c-5.522,0-10,4.477-10,10v77.572c0,5.523,4.478,10,10,10h387.86c5.522,0,10-4.477,10-10V203.93 C427.253,198.407,422.776,193.93,417.253,193.93z M39.393,369.075h290.289v57.572H39.393V369.075z M407.253,426.646h-57.571 v-67.572c0-5.523-4.478-10-10-10H272.11v-57.572h67.572c5.522,0,10-4.477,10-10V213.93h57.571V426.646z"/>
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
@@ -928,7 +928,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<GeometryDrawing>
|
||||
<GeometryDrawing.Pen>
|
||||
<Pen Brush="Black" Thickness="1" />
|
||||
<Pen Brush="{mbts:BTSColor UI.icon_foreground}" Thickness="1" />
|
||||
</GeometryDrawing.Pen>
|
||||
<GeometryDrawing.Geometry>
|
||||
<GeometryGroup>
|
||||
@@ -945,7 +945,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black"
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M18.51899,0L29.981999,0 29.981999,32 18.51899,32z M0,0L11.464992,0 11.464992,32 0,32z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -957,7 +957,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black"
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M23.679005,26.495C23.99901,26.495 24.265014,26.59 24.475017,26.78 24.685019,26.967 24.79102,27.204 24.79102,27.491 24.79102,27.783 24.68802,28.024 24.481016,28.214 24.271013,28.405 24.00301,28.5 23.679005,28.5 23.354001,28.5 23.085997,28.403 22.870994,28.208 22.655991,28.006 22.54899,27.766 22.54899,27.491 22.54899,27.207 22.655991,26.97 22.870994,26.78 23.085997,26.59 23.354001,26.495 23.679005,26.495z M23.734006,19.5C24.110011,19.5 24.460016,19.541 24.785021,19.625 25.110025,19.708 25.392029,19.839 25.632032,20.017 25.874036,20.195 26.062038,20.422 26.19904,20.7 26.333042,20.978 26.401043,21.311 26.401043,21.7 26.401043,21.947 26.373043,22.171 26.316042,22.371 26.259041,22.572 26.17704,22.762 26.067039,22.94 25.958037,23.118 25.822035,23.289 25.660033,23.453 25.498031,23.617 25.311028,23.786 25.101026,23.961 24.959023,24.078 24.835021,24.187 24.72802,24.289 24.620018,24.39 24.531017,24.49 24.460016,24.589 24.389015,24.689 24.335014,24.794 24.299014,24.905 24.262013,25.017 24.244013,25.144 24.244013,25.285 24.244013,25.383 24.257013,25.482 24.283013,25.583 24.310014,25.685 24.345015,25.77 24.390016,25.838L22.791993,25.838C22.751992,25.733 22.719992,25.615 22.697992,25.483 22.674991,25.351 22.663991,25.226 22.663991,25.109 22.663991,24.922 22.681992,24.752 22.718992,24.599 22.754992,24.445 22.809993,24.3 22.882994,24.164 22.955995,24.029 23.046997,23.898 23.155998,23.775 23.266,23.652 23.393002,23.529 23.539003,23.407 23.694005,23.278 23.828007,23.157 23.943009,23.046 24.059011,22.935 24.157012,22.823 24.238013,22.712 24.320014,22.6 24.380015,22.485 24.420015,22.365 24.460016,22.246 24.481016,22.113 24.481016,21.967 24.481016,21.841 24.459016,21.725 24.414016,21.618 24.369015,21.51 24.306014,21.419 24.222013,21.341 24.140012,21.264 24.03901,21.203 23.918009,21.159 23.799007,21.115 23.667005,21.092 23.521003,21.092 23.204998,21.092 22.876994,21.158 22.536989,21.29 22.195985,21.422 21.87398,21.621 21.569976,21.888L21.569976,20.059C21.88298,19.872 22.222985,19.733 22.59099,19.64 22.959995,19.547 23.341001,19.5 23.734006,19.5z M23.985949,18C20.670016,18 17.972007,20.69101 17.972007,24 17.972007,27.309021 20.670016,30 23.985949,30 27.302003,30 30.000989,27.309021 30.000989,24 30.000989,20.69101 27.302003,18 23.985949,18z M14,2C10.968,2 8.5,4.467 8.5,7.5 8.5,10.438219 10.81616,12.84526 13.717461,12.992831L13.973991,12.99934 13.99997,12.999012 14.027442,12.999304 14.28254,12.992831C17.18384,12.84526 19.5,10.438219 19.5,7.5 19.5,4.467 17.032,2 14,2z M14,0C18.136,0 21.5,3.3640003 21.5,7.5 21.5,9.95575 20.314059,12.13934 18.484733,13.508212L18.265061,13.664531 18.342722,13.68891C19.921902,14.202736,21.408062,14.995103,22.721599,16.037384L22.786062,16.089699 22.966662,16.064397C23.300515,16.021905 23.640717,16 23.985949,16 28.405035,16 32.000998,19.588989 32.000998,24 32.000998,28.411011 28.405035,32 23.985949,32 19.566984,32 15.971998,28.411011 15.971998,24 15.971998,20.96743 17.671191,18.323394 20.169134,16.967021L20.4065,16.845489 20.189965,16.712549C18.448412,15.669154,16.455822,15.076083,14.409823,15.006025L14.033219,14.999578 14,15 13.960834,14.999503 13.690718,15.00291C7.2160797,15.166433,1.9999962,20.449734,1.9999962,26.921989L0,26.928989 0,26.921989C0,20.80439,3.9878531,15.595488,9.51441,13.731782L9.7309766,13.661711 9.5152669,13.508212C7.6859417,12.13934 6.5,9.95575 6.5,7.5 6.5,3.3640003 9.8640003,0 14,0z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -970,7 +970,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M23,14C24.10498,14 25,14.89502 25,16 25,17.10498 24.10498,18 23,18 21.89502,18 21,17.10498 21,16 21,14.89502 21.89502,14 23,14z M16,14C17.105,14 18,14.895 18,16 18,17.105 17.105,18 16,18 14.895,18 14,17.105 14,16 14,14.895 14.895,14 16,14z M9,14C10.105,14 11,14.895 11,16 11,17.105 10.105,18 9,18 7.8950005,18 7,17.105 7,16 7,14.895 7.8950005,14 9,14z M16,2C8.2799997,2 2,8.2800002 2,16 2,23.72 8.2799997,30 16,30 23.72,30 30,23.72 30,16 30,8.2800002 23.72,2 16,2z M16,0C24.822,0 32,7.178 32,16 32,24.822 24.822,32 16,32 7.1780005,32 0,24.822 0,16 0,7.178 7.1780005,0 16,0z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -983,7 +983,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M299.152955025434,0L496.426178902388,0 268.890046089888,280.247772216797 198.190201729536,367.407897949219 199.87503144145,369.495361328125 271.502137154341,457.706451416016 498.999970406294,738 301.717621773481,738 101.234124153852,491.008697509766 99.5304498374462,488.936553955078 98.6409082114697,490.003173828125 0,368.488952636719 98.6409082114697,246.945526123047z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -1020,7 +1020,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M 5.3507926 32.045363 H 17.81645 v 2.401501 H 5.3507926 Z m 0 -4.937233 H 24.132995 v 2.401501 H 5.3507926 Z M 18.799228 22.222041 v 2.32929 h -1.567173 v -2.264886 q -2.179014 -0.01073 -4.057475 -0.987533 v -2.973336 q 0.622575 0.504501 1.856993 0.933864 1.234417 0.429362 2.200482 0.493766 v -3.907198 q -2.511771 -0.933863 -3.4349 -2.018003 -0.912395 -1.094874 -0.912395 -2.662047 0 -1.685248 1.191482 -2.8659947 1.19148 -1.1914807 3.155813 -1.3846939 V 4.918734 h 1.567173 v 1.9535992 q 2.264887 0.1073411 3.38123 0.7299162 V 10.500446 Q 20.677689 9.5880506 18.799228 9.3841034 v 4.0682086 q 2.35076 0.847992 3.370495 1.942866 1.019736 1.08414 1.019736 2.629845 0 1.781854 -1.137811 2.876728 -1.13781 1.08414 -3.25242 1.32029 z M 17.232055 12.829737 V 9.4270397 q -1.492034 0.2683516 -1.492034 1.5564393 0 1.105608 1.492034 1.846258 z m 1.567173 3.628113 v 3.25242 q 1.53497 -0.236149 1.53497 -1.53497 0 -1.051939 -1.53497 -1.71745 z m 13.258587 13.65074 h -3.954117 l 0.0014 7.641804 -7.643169 -10e-7 0.0014 3.952751 h 7.640439 l 0.0014 7.641803 h 3.951385 l 0.0014 -7.641802 7.640437 -10e-7 0.0014 -3.952751 -7.643169 10e-7 z M 5.3507926 36.982596 h 5.5381524 v 2.401501 H 5.3507926 Z M 1.3730469 0 A 1.3741374 1.3741374 0 0 0 0 1.3730469 V 45.630859 a 1.3741374 1.3741374 0 0 0 1.3730469 1.373047 H 16.853516 a 17.906029 17.906029 0 0 1 -0.05859 -1.373047 17.906029 17.906029 0 0 1 0.06836 -1.375 H 2.7480469 V 2.7480469 H 33.326172 V 27.783203 a 17.906029 17.906029 0 0 1 1.375 -0.05859 17.906029 17.906029 0 0 1 1.373047 0.06836 V 1.3730469 A 1.3741374 1.3741374 0 0 0 34.701172 0 Z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -1032,7 +1032,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="m 26.463403 27.963318 h -2.359042 l -0.683586 -2.137882 h -3.417929 l -0.676884 2.137882 h -2.345638 l 3.498351 -9.610414 h 2.566798 z M 22.92484 24.163384 21.89276 20.933106 q -0.113931 -0.361899 -0.160844 -0.864535 h -0.05361 q -0.03351 0.422214 -0.167545 0.837727 l -1.045485 3.257086 z m 2.065112 7.055953 -1.51223 1.51223 2.923087 2.922042 -2.923087 2.923086 1.51223 1.511185 2.922042 -2.922042 2.923086 2.922042 1.511185 -1.511185 -2.922041 -2.923086 2.922041 -2.922042 -1.511185 -1.51223 -2.923086 2.923087 z m -9.484387 0.416058 h 6.108175 v 1.176737 h -6.108175 z m 0 -2.419244 h 9.203284 v 1.176735 h -9.203284 z m 0 4.83849 h 2.713696 v 1.176736 H 15.505565 Z M 13.556469 15.93316 a 0.67332766 0.67332766 0 0 0 -0.672794 0.672793 v 21.686339 a 0.67332766 0.67332766 0 0 0 0.672794 0.672793 h 7.585433 a 8.7739586 8.7739586 0 0 1 -0.02871 -0.672793 8.7739586 8.7739586 0 0 1 0.0335 -0.673751 H 14.230219 V 17.279703 h 14.983289 v 12.267233 a 8.7739586 8.7739586 0 0 1 0.67375 -0.02871 8.7739586 8.7739586 0 0 1 0.672794 0.0335 V 16.605953 A 0.67332766 0.67332766 0 0 0 29.887258 15.93316 Z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -1044,7 +1044,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="m 24.706673 31.196264 -3.086181 3.086182 5.96548 5.963348 -5.96548 5.96548 3.086181 3.084049 5.963348 -5.963348 5.96548 5.963348 3.084049 -3.084049 -5.963347 -5.96548 5.963347 -5.963348 -3.084049 -3.086182 -5.96548 5.965481 z M 5.3507926 32.045363 H 17.81645 v 2.401501 H 5.3507926 Z m 0 -4.937233 H 24.132994 v 2.401501 H 5.3507926 Z M 26.434166 6.0031559 14.993666 17.443656 9.6399578 12.089946 6.0100982 15.719802 c 2.9622322 2.959826 6.0772448 6.092263 8.9969908 8.970151 L 30.064121 9.6329208 Z M 5.3507926 36.982596 h 5.5381524 v 2.401501 H 5.3507926 Z M 1.3730469 0 A 1.3741374 1.3741374 0 0 0 0 1.3730469 V 45.630859 a 1.3741374 1.3741374 0 0 0 1.3730469 1.373047 H 16.853516 a 17.906029 17.906029 0 0 1 -0.05859 -1.373047 17.906029 17.906029 0 0 1 0.06836 -1.375 H 2.7480469 V 2.7480469 H 33.326172 V 27.783203 a 17.906029 17.906029 0 0 1 1.375 -0.05859 17.906029 17.906029 0 0 1 1.373047 0.06836 V 1.3730469 A 1.3741374 1.3741374 0 0 0 34.701172 0 Z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -1055,7 +1055,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingImage.Drawing>
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Brush="Black"
|
||||
<GeometryDrawing Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="m 18.887708 18.355738 v 1.910329 h -1.285291 v -1.857509 q -1.787082 -0.0088 -3.327671 -0.809909 v -2.438532 q 0.510595 0.413758 1.522982 0.765893 1.012387 0.352134 1.804689 0.404954 V 13.12654 q -2.059987 -0.765892 -2.817076 -1.655032 -0.748286 -0.897943 -0.748286 -2.1832341 0 -1.382128 0.977174 -2.3504979 0.977173 -0.9771733 2.588188 -1.1356339 V 4.1647166 h 1.285291 v 1.6022121 q 1.85751 0.088034 2.77306 0.5986287 v 2.376908 Q 20.428297 7.9941795 18.887708 7.8269156 V 11.16339 q 1.927937 0.695466 2.764256 1.593409 0.83632 0.88914 0.83632 2.156824 0 1.461358 -0.933157 2.359301 -0.933156 0.88914 -2.667419 1.082814 z M 17.602417 10.652795 V 7.8621291 q -1.223667 0.2200841 -1.223667 1.2764876 0 0.9067463 1.223667 1.5141783 z m 1.285291 2.975537 v 2.667419 q 1.258881 -0.193674 1.258881 -1.258881 0 -0.86273 -1.258881 -1.408538 z M 7.8581956 26.412174 H 18.081699 v 1.969551 H 7.8581956 Z m 0 -4.04919 H 23.262109 v 1.969551 H 7.8581956 Z m 23.8237084 -0.610988 -12.064762 12.064763 4.39301 4.393009 12.064761 -12.064762 z m -0.0014 3.48158 0.91143 0.91143 -8.583182 8.583183 -0.91143 -0.91143 z m -12.817392 9.398532 -1.583992 5.915617 5.914283 -1.585326 z M 7.8581956 30.461364 H 12.40022 v 1.969551 H 7.8581956 Z M 4.5959132 0.13069836 A 1.1269761 1.1269761 0 0 0 3.4698314 1.2567801 V 37.554094 a 1.1269761 1.1269761 0 0 0 1.1260818 1.126082 H 15.310509 a 8.0150307 8.0150307 0 0 1 -0.01762 -0.337985 8.0150307 8.0150307 0 0 1 0.240273 -1.915781 H 5.7235967 V 2.3844637 H 30.801741 V 20.486667 a 8.0150307 8.0150307 0 0 1 0.863383 -0.04966 8.0150307 8.0150307 0 0 1 1.390383 0.12334 V 1.2567801 A 1.1269761 1.1269761 0 0 0 31.929425 0.13069836 Z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -1091,7 +1091,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M 9.9417804 -0.02293875 1.9154138 8.0034278 17.4301 23.512569 1.9154138 39.027256 9.9417804 47.048077 25.450922 31.538936 40.965607 47.048077 48.986428 39.027256 33.47729 23.512569 48.986428 8.0034278 40.965607 -0.02293875 25.450922 15.491746 Z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -1104,7 +1104,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="m 69.641861 87.129943 a 36.813842 36.813842 0 0 0 -36.813776 36.813767 36.813842 36.813842 0 0 0 31.044618 36.31355 l 1.208194 21.35839 1.804543 31.90967 a 41.092964 41.092964 0 0 0 -29.828154 39.50509 41.092964 41.092964 0 0 0 41.09258 41.0931 41.092964 41.092964 0 0 0 41.093104 -41.0931 41.092964 41.092964 0 0 0 -0.10284 -2.9068 41.092964 41.092964 0 0 0 -38.048841 -38.03902 l -2.962092 -52.36321 a 36.813842 36.813842 0 0 0 20.093347 -12.61939 l 33.150946 15.70705 v 5.3e-4 a 27.542416 27.542416 0 0 0 -0.12557 2.49907 27.542416 27.542416 0 0 0 27.54251 27.54249 27.542416 27.542416 0 0 0 27.5425 -27.5425 27.542416 27.542416 0 0 0 -27.5425 -27.5425 27.542416 27.542416 0 0 0 -22.44618 11.61479 l -31.44563 -14.89935 a 36.813842 36.813842 0 0 0 1.55701 -10.53786 36.813842 36.813842 0 0 0 -36.813769 -36.813767 z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -1116,7 +1116,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M 36.50044 86.999995 A 36.813842 36.813842 0 0 0 -0.3133356 123.81377 36.813842 36.813842 0 0 0 30.731282 160.12732 l 1.208194 21.35839 1.804543 31.90967 a 41.092964 41.092964 0 0 0 -29.8281546 39.50509 41.092964 41.092964 0 0 0 41.0925806 41.0931 41.092964 41.092964 0 0 0 41.093099 -41.0931 41.092964 41.092964 0 0 0 -0.102836 -2.9068 41.092964 41.092964 0 0 0 -38.04884 -38.03902 l -2.962092 -52.36321 a 36.813842 36.813842 0 0 0 20.093347 -12.61939 l 33.150948 15.70705 v 5.3e-4 a 27.542416 27.542416 0 0 0 -0.125574 2.49907 27.542416 27.542416 0 0 0 27.542513 27.54249 27.542416 27.542416 0 0 0 27.5425 -27.5425 27.542416 27.542416 0 0 0 -27.5425 -27.5425 27.542416 27.542416 0 0 0 -22.44618 11.61479 L 71.757201 134.35163 A 36.813842 36.813842 0 0 0 73.314213 123.81377 36.813842 36.813842 0 0 0 36.50044 86.999995 Z m 116.60981 115.628085 0.007 37.48967 h -37.49716 l 0.007 19.39257 h 37.48344 L 153.11751 297 h 19.38493 l 0.007 -37.48968 h 37.48342 L 210 240.11775 h -37.49727 l 0.007 -37.48967 z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -1128,7 +1128,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M 37.03498 86.999995 A 36.813842 36.813842 0 0 0 0.22120379 123.81377 36.813842 36.813842 0 0 0 31.265822 160.12731 l 1.208194 21.35839 1.804543 31.90967 a 41.092964 41.092964 0 0 0 -29.8281552 39.50509 41.092964 41.092964 0 0 0 41.0925812 41.0931 41.092964 41.092964 0 0 0 41.093099 -41.0931 41.092964 41.092964 0 0 0 -0.102836 -2.9068 41.092964 41.092964 0 0 0 -38.04884 -38.03902 l -2.962092 -52.36321 a 36.813842 36.813842 0 0 0 20.093346 -12.61938 l 33.150949 15.70704 v 5.3e-4 a 27.542416 27.542416 0 0 0 -0.125574 2.49907 27.542416 27.542416 0 0 0 27.542503 27.54249 27.542416 27.542416 0 0 0 27.5425 -27.5425 27.542416 27.542416 0 0 0 -27.5425 -27.54249 27.542416 27.542416 0 0 0 -22.44618 11.61479 L 72.29174 134.35163 A 36.813842 36.813842 0 0 0 73.848752 123.81377 36.813842 36.813842 0 0 0 37.03498 86.999995 Z m 94.72671 153.117755 0.008 18.80608 c 0 0 -6.42588 -1.1e-4 78.75576 1.3e-4 l 0.009 -18.80621 c 0 0 4.48208 0 -78.77178 0 z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -1141,7 +1141,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M 37.03498 86.999995 A 36.813842 36.813842 0 0 0 0.2212037 123.81377 36.813842 36.813842 0 0 0 31.265822 160.12732 l 1.208194 21.35839 1.804543 31.90967 a 41.092964 41.092964 0 0 0 -29.8281553 39.50509 41.092964 41.092964 0 0 0 41.0925813 41.0931 41.092964 41.092964 0 0 0 41.093099 -41.0931 41.092964 41.092964 0 0 0 -0.102836 -2.9068 41.092964 41.092964 0 0 0 -38.04884 -38.03902 l -2.962092 -52.36321 a 36.813842 36.813842 0 0 0 20.093347 -12.61939 l 33.150948 15.70705 v 5.3e-4 a 27.542416 27.542416 0 0 0 -0.125574 2.49907 27.542416 27.542416 0 0 0 27.542503 27.54249 27.542416 27.542416 0 0 0 27.5425 -27.5425 27.542416 27.542416 0 0 0 -27.5425 -27.5425 27.542416 27.542416 0 0 0 -22.44618 11.61479 L 72.291741 134.35163 A 36.813842 36.813842 0 0 0 73.848753 123.81377 36.813842 36.813842 0 0 0 37.03498 86.999995 Z m 145.03189 90.486735 -76.71431 76.71435 27.93311 27.93293 L 210 205.41986 Z m -0.008 22.13769 5.79522 5.79544 -54.57645 54.57644 -5.7952 -5.79522 z m -81.50016 59.76108 -10.071854 37.61451 37.606034 -10.0803 z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -1153,7 +1153,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="m 139.80129 180.78831 a 20.783495 20.783495 0 0 0 -20.78345 20.78346 20.783495 20.783495 0 0 0 17.52643 20.50105 l 0.68209 12.05803 1.01877 18.01482 a 23.1993 23.1993 0 0 0 -16.83968 22.30284 23.1993 23.1993 0 0 0 23.1991 23.19938 23.1993 23.1993 0 0 0 23.19935 -23.19938 23.1993 23.1993 0 0 0 -0.058 -1.64105 23.1993 23.1993 0 0 0 -21.4807 -21.47518 l -1.67225 -29.56198 a 20.783495 20.783495 0 0 0 11.34383 -7.12437 l 18.71558 8.86752 v 3.1e-4 a 15.549251 15.549251 0 0 0 -0.0708 1.41086 15.549251 15.549251 0 0 0 15.5493 15.54927 15.549251 15.549251 0 0 0 15.54931 -15.54927 15.549251 15.549251 0 0 0 -15.54931 -15.54932 15.549251 15.549251 0 0 0 -12.67213 6.5572 l -17.75282 -8.41152 a 20.783495 20.783495 0 0 0 0.87902 -5.94921 20.783495 20.783495 0 0 0 -20.78345 -20.78346 z M 31.983713 88.265691 A 30.676234 30.676234 0 0 0 1.3075339 118.94187 30.676234 30.676234 0 0 0 27.17639 149.20122 l 1.006764 17.79752 1.503689 26.58969 A 34.241941 34.241941 0 0 0 4.8316412 226.50722 34.241941 34.241941 0 0 0 39.073263 260.74928 34.241941 34.241941 0 0 0 73.315316 226.50722 34.241941 34.241941 0 0 0 73.229625 224.08505 34.241941 34.241941 0 0 0 41.524291 192.3879 L 39.05604 148.75469 A 30.676234 30.676234 0 0 0 55.799422 138.2392 l 27.624018 13.08837 v 4.4e-4 a 22.950541 22.950541 0 0 0 -0.104638 2.08242 22.950541 22.950541 0 0 0 22.950618 22.9506 22.950541 22.950541 0 0 0 22.95062 -22.9506 22.950541 22.950541 0 0 0 -22.95062 -22.95061 22.950541 22.950541 0 0 0 -18.703946 9.67837 L 61.362463 127.72286 A 30.676234 30.676234 0 0 0 62.65989 118.94187 30.676234 30.676234 0 0 0 31.983713 88.265691 Z" />
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
@@ -1165,7 +1165,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M22.889013,19.178117C23.365026,19.178117 23.75202,19.56508 23.75202,20.040055 23.75202,20.516007 23.365026,20.904069 22.889013,20.904069 22.413031,20.904069 22.02503,20.516007 22.02503,20.040055 22.02503,19.56508 22.413031,19.178117 22.889013,19.178117z M22.889013,15.528093C20.40003,15.528092 18.375006,17.552018 18.375006,20.040055 18.375006,22.529069 20.40003,24.554093 22.889013,24.554093 25.37702,24.554093 27.402014,22.529069 27.402014,20.040055 27.402014,17.552018 25.37702,15.528092 22.889013,15.528093z M22.167028,12.426042L23.834021,12.426042 23.834021,13.935075 23.981024,13.958024C24.912024,14.12404,25.772009,14.500016,26.509008,15.03505L26.62702,15.12404 27.757025,13.993058 28.935034,15.171037 27.806005,16.301042 27.940008,16.484025C28.422033,17.167008,28.769018,17.950089,28.943029,18.796037L28.996008,19.093034 30.500006,19.093034 30.500006,20.759049 29.02503,20.759049 28.997015,20.980119C28.848028,21.952043,28.472021,22.85109,27.924017,23.619035L27.805029,23.779069 28.935034,24.909074 27.757025,26.088029 26.62702,24.958024 26.61701,24.966081C25.866034,25.536027,24.981024,25.938004,24.019018,26.117082L23.834021,26.147111 23.834021,27.426042 22.167028,27.426042 22.167028,26.177018 21.949011,26.149064C20.942022,25.995011,20.014013,25.596086,19.228033,25.016007L19.151007,24.957047 18.019018,26.088029 16.841009,24.909074 17.972021,23.779069 17.863013,23.633073C17.294012,22.839005,16.908026,21.905046,16.767034,20.894059L16.75202,20.759049 15.500006,20.759049 15.500006,19.093034 16.783026,19.093034 16.812017,18.91005C16.991034,17.947038,17.393011,17.063004,17.963019,16.312028L17.972021,16.301042 16.841009,15.171037 18.019018,13.993058 19.15003,15.123063 19.310034,15.005021C20.078009,14.458024,20.977026,14.081071,21.949011,13.932023L22.167028,13.905046z M16.000014,6.0000114C14.346014,6.0000114 13.000014,7.3460112 13.000014,9.0000114 13.000014,10.654011 14.346014,12.000011 16.000014,12.000011 17.654014,12.000011 19.000014,10.654011 19.000014,9.0000114 19.000014,7.3460112 17.654014,6.0000114 16.000014,6.0000114z M16.000014,4.0000114C18.757014,4.0000114 21.000014,6.2430115 21.000014,9.0000114 21.000014,11.757011 18.757014,14.000011 16.000014,14.000011 13.243014,14.000011 11.000014,11.757011 11.000014,9.0000114 11.000014,6.2430115 13.243014,4.0000114 16.000014,4.0000114z M16.000123,0C24.651189,0 31.47924,8.0160384 31.765244,8.3580403 32.078245,8.7290418 32.078245,9.2720447 31.765244,9.6440461 31.700243,9.7220466 30.130231,11.580056 27.56321,13.533065L26.352201,11.941058C27.853213,10.798052 29.000222,9.6770465 29.645226,9.0010433 27.881213,7.1610341 22.366171,2.0000095 16.000123,2.0000095 9.6350741,2.0000095 4.1210318,7.1590343 2.3550186,9.0000434 4.013031,10.731052 8.9770689,15.388074 14.846114,15.946077L14.657112,17.936087C6.6410513,17.175083 0.49200439,9.9510479 0.23400211,9.6430461 -0.078000069,9.2720447 -0.078000069,8.7290418 0.23400211,8.3580403 0.52000427,8.0160384 7.3480568,0 16.000123,0z"
|
||||
/>
|
||||
</DrawingGroup.Children>
|
||||
@@ -1178,7 +1178,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M23.471008,4.2230202L32,12.800012 23.471008,20.360005 23.471008,16.322012C23.471008,16.322012 8.7430115,12.294 5.0610046,20.360005 5.0610046,18.343985 6.3990173,8.2560073 23.471008,8.2560073z M0,0L21.334015,0 21.334015,2.1340014 21.334015,4.2690102 19.200012,4.2690102 19.200012,2.1340014 2.1340027,2.1340014 2.1340027,23.466997 19.200012,23.466997 19.200012,21.331989 21.334015,21.331989 21.334015,23.466997 21.334015,25.601 19.200012,25.601 0,25.601 0,23.466997 0,2.1340014z"
|
||||
/>
|
||||
</DrawingGroup.Children>
|
||||
@@ -1191,7 +1191,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M13.594002,4.2219891L13.594002,8.255989C30.661003,8.255989 32,18.345018 32,20.360004 28.319,12.293011 13.594002,16.32399 13.594002,16.32399L13.594002,20.360004 5.0610008,12.798993z M0,0L21.333,0 21.333,2.1329974 21.333,4.2670025 19.201,4.2670025 19.201,2.1329974 2.1330032,2.1329974 2.1330032,23.467003 19.201,23.467003 19.201,21.332998 21.333,21.332998 21.333,23.467003 21.333,25.6 19.201,25.6 0,25.6 0,23.467003 0,2.1329974z"
|
||||
/>
|
||||
</DrawingGroup.Children>
|
||||
@@ -1204,7 +1204,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M25.400009,21.400005L29.800003,21.400005C28.100006,24.100017 25.400009,26.200025 22.300003,27.200025 23,26.500013 23.600006,25.600019 24.199997,24.600017 24.699997,23.600017 25.100006,22.500011 25.400009,21.400005z M19,21.400005L24,21.400005C23.699997,22.299998 23.300003,23.200023 22.900009,23.900005 21.800003,26.000013 20.400009,27.3 18.900009,27.700025z M12.300003,21.400005L17.699997,21.400005 17.600006,27.8C16,27.600019 14.5,26.200025 13.300003,23.900005 13,23.100017 12.600006,22.299998 12.300003,21.400005z M26.5,14.700019L32,14.700019C31.900009,16.600013,31.400009,18.400003,30.600006,20.100015L25.900009,20.100015C26.199997,18.400003,26.5,16.600013,26.5,14.700019z M19.100006,14.700019L25.199997,14.700019C25.100006,16.600013,24.900009,18.400003,24.400009,20.100015L19,20.100015z M16.199997,14.700019L17.699997,14.700019 17.699997,20.100015 12,20.100015C11.900009,19.799997,11.900009,19.500009,11.800003,19.200021L15.5,15.500007z M25.900009,7.7999913L30.600006,7.7999913C31.400009,9.500004,31.900009,11.399999,32,13.4L26.5,13.4C26.5,11.399999,26.300003,9.500004,25.900009,7.7999913z M19.100006,7.7999913L24.5,7.7999913C24.900009,9.500004,25.199997,11.399999,25.199997,13.4L19.100006,13.4z M12.100006,7.7999913L17.800003,7.7999913 17.800003,13.4 11.300003,13.4C11.300003,11.299993,11.600006,9.3999979,12.100006,7.7999913z M22.5,0.6000061C25.600006,1.6000066,28.199997,3.6000077,29.900009,6.3999969L25.600006,6.3999969C25.300003,5.2999904 24.900009,4.2000138 24.400009,3.2999892 23.800003,2.2999887 23.199997,1.3999944 22.5,0.6000061z M14.199997,0.6000061C13.5,1.2999882 12.900009,2.2000131 12.300003,3.2000136 10.900009,5.8999965 10,9.8999988 9.9000092,14.000007L9.9000092,14.700019 14.5,14.700019 7.1999969,22.000011 0,14.600013 4.5,14.600013 4.5,13.900001C4.5,7.7000157,8.6000061,2.2999887,14.199997,0.6000061z M19.199997,0.1000061C20.600006,0.50000006 22,1.7999884 23.100006,3.8999953 23.5,4.7000143 23.800003,5.5000026 24.100006,6.3999969L19.100006,6.3999969z M17.900009,0L17.800003,6.3999969 12.400009,6.3999969C12.699997,5.5000026 13.100006,4.6000082 13.5,3.7999892 14.699997,1.5000005 16.300003,0.20001213 17.900009,0z"
|
||||
/>
|
||||
</DrawingGroup.Children>
|
||||
@@ -1218,7 +1218,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Geometry="{Binding Source={StaticResource {x:Static mbts:Icons.ArrowGeometryKey}}}">
|
||||
<GeometryDrawing.Pen>
|
||||
<Pen Thickness="3" Brush="Black"/>
|
||||
<Pen Thickness="3" Brush="{mbts:BTSColor UI.icon_foreground}"/>
|
||||
</GeometryDrawing.Pen>
|
||||
</GeometryDrawing>
|
||||
</DrawingGroup.Children>
|
||||
@@ -1232,7 +1232,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing Geometry="{Binding Source={StaticResource {x:Static mbts:Icons.ArrowGeometryKey}}}">
|
||||
<GeometryDrawing.Pen>
|
||||
<Pen Thickness="3" Brush="Black"/>
|
||||
<Pen Thickness="3" Brush="{mbts:BTSColor UI.icon_foreground}"/>
|
||||
</GeometryDrawing.Pen>
|
||||
</GeometryDrawing>
|
||||
</DrawingGroup.Children>
|
||||
@@ -1248,7 +1248,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M21.832001,24.424L21.832001,27.912998 26.218018,27.912998 26.218018,24.424z M13.757019,24.424L13.757019,27.912998 18.143005,27.912998 18.143005,24.424z M5.7820129,24.424L5.7820129,27.912998 10.167999,27.912998 10.167999,24.424z M1.8950195,6.3799964L3.8880005,6.3799964 4.1870117,17.745001 8.1750183,17.745001 8.1750183,13.956 16.050018,17.745001 16.149994,17.745001 16.149994,13.956 24.024994,17.745001 24.125,17.745001 24.125,13.956 32,17.745001 31.901001,17.745001 31.901001,31.103001 0,31.103001 0,17.745001 1.5950012,17.745001z M8.5740051,1.3959956C8.5740051,1.3959958 9.1719971,3.2899927 6.6800232,3.5889963 6.6800232,3.5889963 5.085022,3.6879953 4.2870178,4.4859993 4.2870178,4.4859993 3.9880066,4.7849952 3.8880005,4.4859993 3.8880005,4.4859993 3.9880066,3.0899958 6.480011,2.6919931 6.5800171,2.7909998 8.3740234,2.6919931 8.5740051,1.3959956z M5.5830078,0C5.5830078,-1.4470834E-07 6.8789978,1.4949948 4.5859985,2.6919931 4.5859985,2.6919931 3.1900024,3.2899927 2.6920166,4.3859931 2.6920166,4.3859931 2.5920105,4.7849952 2.2929993,4.4859993 2.2929993,4.4859993 1.8950195,3.1899942 4.0880127,1.8939967 4.1870117,1.9939953 5.882019,1.2959973 5.5830078,0z"
|
||||
/>
|
||||
</DrawingGroup.Children>
|
||||
@@ -1261,7 +1261,7 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z"
|
||||
/>
|
||||
</DrawingGroup.Children>
|
||||
@@ -1275,15 +1275,30 @@ M0,0L63.999001,0 63.999001,48.792999 0,48.792999z">
|
||||
<DrawingGroup>
|
||||
<DrawingGroup.Children>
|
||||
<GeometryDrawing
|
||||
Brush="Black"
|
||||
Brush="{mbts:BTSColor UI.icon_foreground}"
|
||||
Geometry="M 0.814453 2e-6 C 0.365092 -7.56e-4 3.21e-4 0.36314 0 0.812502 v 23.945313 c 0.788895 1.126154 1.626953 -0.02112 1.626953 -0.02112 V 1.625002 h 16.241843 c 0 0 0.80538 -0.934678 -0.124651 -1.625002 z M 3.750875 3.43624 C 3.301514 3.435482 2.936743 3.799378 2.936422 4.24874 v 23.945313 c -7.6e-4 0.450124 0.364329 0.815213 0.814453 0.814453 h 7.439453 C 11.042745 28.716852 10.90913 28.418337 10.789937 28.113975 10.699431 27.872971 10.617994 27.628659 10.545796 27.381553 H 4.563375 V 5.06124 h 15.304687 v 7.039063 c 0.173002 -0.01023 0.346234 -0.01609 0.519531 -0.01758 0.343731 -2.6e-4 0.68726 0.01669 1.029297 0.05078 0.02606 0.0038 0.0521 0.0077 0.07813 0.01172 V 4.248738 C 21.494699 3.799376 21.129928 3.43548 20.680567 3.436238 Z m 13.332031 6.884766 c -1.226661 0 -2.230469 1.002456 -2.230469 2.228516 v 9.572265 l -0.824219 -0.8125 v 0.002 c -0.991917 -0.9815 -2.60964 -0.982302 -3.603515 0 -0.48293 0.477155 -0.751953 1.119962 -0.751953 1.796875 0 0.67607 0.269215 1.317958 0.751953 1.794922 l 4.841797 4.78711 0.0078 0.0078 c 2.115591 1.851014 4.144077 2.322266 5.615234 2.322266 0.547268 0 1.017683 -0.06414 1.388672 -0.142578 1.701281 -0.360558 3.108561 -1.372782 3.751954 -2.75586 0.419048 -0.9011 0.978455 -2.062137 0.923828 -3.261718 4.09e-4 -0.01025 0.0011 -0.0075 0.002 -0.02344 0.0015 -0.02655 0.0039 -0.01047 0.0039 -0.07813 v -5.113281 c 0 -1.161114 -0.955476 -2.109375 -2.121094 -2.109375 -0.04803 0 -0.09044 0.0088 -0.136719 0.01172 -0.207784 -1.015547 -1.021531 -1.826172 -2.095703 -1.826172 -0.343265 0 -0.63914 0.145124 -0.93164 0.285156 -0.397916 -0.616533 -1.045784 -1.0625 -1.830078 -1.0625 -0.189487 0 -0.354735 0.07615 -0.53125 0.121094 v -3.515625 c 0 -1.22606 -1.003809 -2.228516 -2.230469 -2.228516 z m 0 1.699219 c 0.148476 0 0.278642 0.05997 0.375 0.15625 0.09685 0.09678 0.15625 0.225142 0.15625 0.373047 v 5.625 1.740234 c 0 0.464846 0.384763 0.849609 0.849609 0.849609 0.464527 0 0.84961 -0.383921 0.84961 -0.849609 v -1.740234 c 0 -0.148598 0.05896 -0.275762 0.15625 -0.373047 0.09729 -0.09729 0.228277 -0.158203 0.375 -0.158203 0.146722 0 0.277709 0.06091 0.375 0.158203 0.09729 0.09729 0.15625 0.224449 0.15625 0.373047 v 0.77539 0.4375 c 0 0.465373 0.384236 0.84961 0.849609 0.84961 0.465373 0 0.849609 -0.384239 0.849609 -0.84961 v -0.425781 l 0.0059 -0.06836 c 0.0286 -0.265146 0.249414 -0.472657 0.52539 -0.472657 0.148238 0 0.278481 0.05996 0.375 0.15625 0.09649 0.09627 0.15625 0.225145 0.15625 0.373047 v 1.935547 c 0 0.465371 0.384237 0.84961 0.84961 0.84961 0.465372 0 0.849609 -0.384237 0.849609 -0.84961 v -0.65039 c 0.0016 -9e-6 2.95e-4 0 0.002 0 0.238806 0 0.421875 0.185008 0.421875 0.410156 l 0.002 5.0625 c -4.64e-4 0.0084 -0.0023 0.0401 -0.0039 0.07227 -0.0015 0.03041 -0.0059 0.02687 -0.002 0.101563 0.03253 0.757506 -0.372777 1.677807 -0.765625 2.521484 h -0.002 c -0.194342 0.418116 -0.532821 0.810028 -0.976563 1.126953 -0.443595 0.316821 -0.990203 0.55925 -1.585937 0.685547 -0.515602 0.10823 -1.298166 0.179402 -2.248047 -0.03125 -0.47546 -0.105441 -0.991926 -0.281044 -1.539063 -0.560547 -0.547306 -0.279588 -1.127683 -0.66381 -1.724609 -1.185547 L 11.620061 23.69601 c -0.162198 -0.160763 -0.248047 -0.365899 -0.248047 -0.587891 0 -0.223284 0.08648 -0.426518 0.248047 -0.585937 0.168295 -0.166151 0.386826 -0.249911 0.607422 -0.25 0.220595 -9e-5 0.437432 0.08144 0.605469 0.248047 l 2.240234 2.207031 0.01367 0.02148 0.04687 0.03516 0.03711 0.0332 0.02539 0.01758 0.01563 0.01367 0.01563 0.0098 c 0.114637 0.07747 0.248043 0.126397 0.388672 0.140625 l -0.04883 -0.0078 0.04102 0.0098 0.08594 0.0039 h 0.0078 c 0.06844 0 0.126002 -0.0085 0.169922 -0.01758 l 0.0059 -0.002 0.01953 -0.0039 h 0.02539 l 0.06641 -0.02734 0.02734 -0.0098 0.0098 -0.0039 c 0.102105 -0.04223 0.198238 -0.105586 0.28125 -0.189454 h 0.002 c 0.163006 -0.165519 0.243191 -0.385955 0.242188 -0.599609 v -0.002 -0.01953 -11.580078 c 0 -0.147904 0.0594 -0.276271 0.15625 -0.373047 0.09636 -0.09628 0.226522 -0.15625 0.375 -0.15625 z"
|
||||
/>
|
||||
</DrawingGroup.Children>
|
||||
</DrawingGroup>
|
||||
</DrawingImage.Drawing>
|
||||
</DrawingImage>
|
||||
|
||||
|
||||
<!-- Credits: https://freeicons.io/icon/download?_token=zMXvmlGgqOxtOIVOq4byxkcsakzIoDKVPValPURT&icon_id=line-chart-icon-6411&type=svg -->
|
||||
<x:Array x:Key="{x:Static mbts:Icons.MarketGeometryKey}" Type="sys:String">
|
||||
<sys:String>M33,362.371v78.9c0,4.8,3.9,8.8,8.8,8.8h61c4.8,0,8.8-3.9,8.8-8.8v-138.8l-44.3,44.3C57.9,356.071,45.9,361.471,33,362.371z</sys:String>
|
||||
<sys:String>M142,301.471v139.8c0,4.8,3.9,8.8,8.8,8.8h61c4.8,0,8.8-3.9,8.8-8.8v-82.3c-13.9-0.3-26.9-5.8-36.7-15.6L142,301.471z</sys:String>
|
||||
<sys:String>M251,350.271v91c0,4.8,3.9,8.8,8.8,8.8h61c4.8,0,8.8-3.9,8.8-8.8v-167.9l-69.9,69.9C257,345.971,254.1,348.271,251,350.271z</sys:String>
|
||||
<sys:String>M432.7,170.171l-72.7,72.7v198.4c0,4.8,3.9,8.8,8.8,8.8h61c4.8,0,8.8-3.9,8.8-8.8v-265.6c-2-1.7-3.5-3.2-4.6-4.2L432.7,170.171z</sys:String>
|
||||
<sys:String>M482.6,41.371c-2.9-3.1-7.3-4.7-12.9-4.7c-0.5,0-1.1,0-1.6,0c-28.4,1.3-56.7,2.7-85.1,4c-3.8,0.2-9,0.4-13.1,4.5c-1.3,1.3-2.3,2.8-3.1,4.6c-4.2,9.1,1.7,15,4.5,17.8l7.1,7.2c4.9,5,9.9,10,14.9,14.9l-171.6,171.7l-77.1-77.1c-4.6-4.6-10.8-7.2-17.4-7.2c-6.6,0-12.7,2.6-17.3,7.2L7.2,286.871c-9.6,9.6-9.6,25.1,0,34.7l4.6,4.6c4.6,4.6,10.8,7.2,17.4,7.2s12.7-2.6,17.3-7.2l80.7-80.7l77.1,77.1c4.6,4.6,10.8,7.2,17.4,7.2c6.6,0,12.7-2.6,17.4-7.2l193.6-193.6l21.9,21.8c2.6,2.6,6.2,6.2,11.7,6.2c2.3,0,4.6-0.6,7-1.9c1.6-0.9,3-1.9,4.2-3.1c4.3-4.3,5.1-9.8,5.3-14.1c0.8-18.4,1.7-36.8,2.6-55.3l1.3-27.7C487,49.071,485.7,44.571,482.6,41.371z</sys:String>
|
||||
</x:Array>
|
||||
<!-- Credits: -->
|
||||
<x:Array x:Key="{x:Static mbts:Icons.RefreshGeometryKey}" Type="sys:String">
|
||||
<sys:String>M45.633,17.348C46.54,19.792,47,22.367,47,25c0,12.131-9.869,22-22,22c-6.595,0-12.795-2.963-16.958-8H15v-2H5v10h2v-6.126C11.53,46.007,18.068,49,25,49c13.234,0,24-10.767,24-24c0-2.872-0.502-5.68-1.492-8.348L45.633,17.348z</sys:String>
|
||||
<sys:String>M35,13h10V3h-2v6.125C38.47,3.992,31.934,1,25,1C11.767,1,1,11.767,1,25c0,2.872,0.502,5.68,1.492,8.348l1.875-0.696C3.46,30.208,3,27.633,3,25C3,12.869,12.869,3,25,3c6.598,0,12.795,2.962,16.958,8H35V13z</sys:String>
|
||||
</x:Array>
|
||||
<!-- Credits: -->
|
||||
<x:Array x:Key="{x:Static mbts:Icons.FavoriteWindowGeometryKey}" Type="sys:String">
|
||||
<sys:String>M4 2h16a1 1 0 0 1 1 1v19.276a.5.5 0 0 1-.704.457L12 19.03l-8.296 3.702A.5.5 0 0 1 3 22.276V3a1 1 0 0 1 1-1zm15 17.965V4H5v15.965l7-3.124 7 3.124zM12 13.5l-2.939 1.545.561-3.272-2.377-2.318 3.286-.478L12 6l1.47 2.977 3.285.478-2.377 2.318.56 3.272L12 13.5z</sys:String>
|
||||
</x:Array>
|
||||
<!-- Pin
|
||||
<Path Data="F1M3,11L3,7 0,7 0,6 1,6 1,1 1,0 6,0 6,1 6,6 7,6 7,7 4,7 4,11 3,11z M2,1L2,6 4,6 4,1 2,1z" />
|
||||
Unpin
|
||||
|
||||
@@ -9,16 +9,10 @@
|
||||
xmlns:shell="clr-namespace:mbts.ui.shell"
|
||||
xmlns:trading="clr-namespace:Spark.Trading"
|
||||
x:Name="me"
|
||||
Background="Transparent"
|
||||
Background="{u:BTSColor UI.spark_menu_background}"
|
||||
MinWidth="250"
|
||||
>
|
||||
<UserControl.Resources>
|
||||
<Style x:Key="CommonList" TargetType="{x:Type ListBox}">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="LaunchButton" TargetType="Button" BasedOn="{StaticResource LargeMenuButton}">
|
||||
<Setter Property="Height" Value="32" />
|
||||
<Setter Property="MinWidth" Value="190" />
|
||||
@@ -26,12 +20,25 @@
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
|
||||
<Setter Property="Padding" Value="16,6,6,6" />
|
||||
</Style>
|
||||
<Style x:Key="CommonList" TargetType="{x:Type ListBox}">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="MenuButton" TargetType="Button" BasedOn="{StaticResource LargeMenuButton}">
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="MenuToggleButton" TargetType="ToggleButton" BasedOn="{StaticResource LargeMenuToggleButton}">
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
</Style>
|
||||
|
||||
<DataTemplate x:Key="LaunchItemTemplate">
|
||||
<Button
|
||||
Command="{Binding DataContext.launch_cmd, RelativeSource={RelativeSource AncestorType=ItemsControl}}"
|
||||
CommandParameter="{Binding key}"
|
||||
Style="{StaticResource LaunchButton}">
|
||||
Style="{StaticResource MenuButton}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Label"/>
|
||||
@@ -70,8 +77,8 @@
|
||||
Padding="16,6,6,6"
|
||||
IsDefault="True"
|
||||
Command="{Binding create_cmd}"
|
||||
Style="{StaticResource LargeMenuButton}"
|
||||
>
|
||||
Background="Transparent"
|
||||
Style="{StaticResource MenuButton}">
|
||||
<TextBlock FontWeight="Bold" Text="{Binding type_name, StringFormat='New {0}'}" />
|
||||
</Button>
|
||||
</Grid>
|
||||
@@ -103,7 +110,7 @@
|
||||
<Button
|
||||
Content="Analytics Expiration Parameters"
|
||||
Command="{Binding launch_exp_params_view_cmd}"
|
||||
Style="{StaticResource LargeMenuButton}"
|
||||
Style="{StaticResource MenuButton}"
|
||||
/>
|
||||
|
||||
<ToggleButton
|
||||
@@ -113,7 +120,7 @@
|
||||
Margin="0,6,0,0"
|
||||
Content="Vol Surface"
|
||||
IsChecked="{Binding Path='(u:ExpandCollapseAnimator.IsExpanded)', ElementName=VolSurfacesContent, Mode=TwoWay}"
|
||||
Style="{StaticResource LargeMenuToggleButton}"
|
||||
Style="{StaticResource MenuToggleButton}"
|
||||
/>
|
||||
|
||||
<ContentControl Grid.Row="2" Height="0">
|
||||
@@ -131,7 +138,7 @@
|
||||
Margin="0,6,0,0"
|
||||
Content="Slide"
|
||||
IsChecked="{Binding Path='(u:ExpandCollapseAnimator.IsExpanded)', ElementName=SlideReportContent, Mode=TwoWay}"
|
||||
Style="{StaticResource LargeMenuToggleButton}"
|
||||
Style="{StaticResource MenuToggleButton}"
|
||||
/>
|
||||
|
||||
<ContentControl Grid.Row="4" Height="0">
|
||||
@@ -149,7 +156,7 @@
|
||||
Margin="0,6,0,0"
|
||||
Content="Combo"
|
||||
IsChecked="{Binding Path='(u:ExpandCollapseAnimator.IsExpanded)', ElementName=ComboReportContent, Mode=TwoWay}"
|
||||
Style="{StaticResource LargeMenuToggleButton}"
|
||||
Style="{StaticResource MenuToggleButton}"
|
||||
/>
|
||||
|
||||
<ContentControl Grid.Row="6" Height="0">
|
||||
@@ -168,7 +175,7 @@
|
||||
Content="P&L"
|
||||
IsChecked="{Binding Path='(u:ExpandCollapseAnimator.IsExpanded)', ElementName=PNLContent, Mode=TwoWay}"
|
||||
Style="{StaticResource LargeMenuToggleButton}" />
|
||||
|
||||
|
||||
<ContentControl Grid.Row="8" Height="0">
|
||||
<Grid x:Name="PNLContent">
|
||||
<Grid.RowDefinitions>
|
||||
|
||||
+4
-8
@@ -58,10 +58,9 @@
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<c:ComboCheckBox
|
||||
Margin="4"
|
||||
ItemsSource="{Binding driver.symbols}"
|
||||
SelectedItems="{Binding masters}"
|
||||
TextBlock.Foreground="Black">
|
||||
Margin="4"
|
||||
ItemsSource="{Binding driver.symbols}"
|
||||
SelectedItems="{Binding masters}">
|
||||
<c:ComboCheckBox.HeaderContent>
|
||||
<MultiBinding>
|
||||
<MultiBinding.Converter>
|
||||
@@ -80,10 +79,7 @@
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<c:ComboCheckBox
|
||||
Margin="4"
|
||||
ItemsSource="{Binding driver.symbols}"
|
||||
SelectedItems="{Binding fits}"
|
||||
TextBlock.Foreground="Black">
|
||||
Margin="4" ItemsSource="{Binding driver.symbols}" SelectedItems="{Binding fits}">
|
||||
<c:ComboCheckBox.HeaderContent>
|
||||
<MultiBinding>
|
||||
<MultiBinding.Converter>
|
||||
|
||||
+35
-8
@@ -30,7 +30,8 @@
|
||||
Grid.IsSharedSizeScope="True"
|
||||
ItemsSource="{Binding columns}"
|
||||
SelectionMode="Extended"
|
||||
SelectedItem="{Binding selected_column}">
|
||||
SelectedItem="{Binding selected_column}"
|
||||
Style="{StaticResource ListBox.Dark}">
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}">
|
||||
<Setter Property="IsSelected" Value="{Binding is_selected}" />
|
||||
@@ -91,7 +92,12 @@
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
|
||||
<GroupBox Grid.Column="1" Header="Data Formatting" Margin="0,8,12,12" Padding="6">
|
||||
<GroupBox
|
||||
Grid.Column="1"
|
||||
Header="Data Formatting"
|
||||
Margin="0,8,12,12"
|
||||
Padding="6"
|
||||
Foreground="{u:BTSColor UI.default_text}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
@@ -103,13 +109,34 @@
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="label"/>
|
||||
<ColumnDefinition Width="80"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock VerticalAlignment="Center">Tick Base</TextBlock>
|
||||
<c:TickUpDownDouble Grid.Column="1" Margin="8,0,0,0" Value="{Binding tick_base}" />
|
||||
<TextBlock Grid.Row="1" Margin="0,5,0,0" VerticalAlignment="Center">Tick Unit</TextBlock>
|
||||
<c:TickUpDownDouble Grid.Row="1" Grid.Column="1" Margin="8,5,0,0" Value="{Binding tick_unit}" />
|
||||
<TextBlock Grid.Row="2" Margin="0,5,0,0" VerticalAlignment="Center">Tick Move</TextBlock>
|
||||
|
||||
<TextBlock VerticalAlignment="Center" Style="{StaticResource TextBlock.Dark}">
|
||||
Tick Base
|
||||
</TextBlock>
|
||||
<c:TickUpDownDouble Grid.Column="1" Margin="8,0,0,0" Value="{Binding tick_base}"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="1"
|
||||
Margin="0,5,0,0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Tick Unit"
|
||||
Style="{StaticResource TextBlock.Dark}" />
|
||||
<c:TickUpDownDouble Grid.Row="1" Grid.Column="1" Margin="8,5,0,0" Value="{Binding tick_unit}"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="2"
|
||||
Margin="0,5,0,0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Tick Move"
|
||||
Style="{StaticResource TextBlock.Dark}" />
|
||||
<c:TickUpDownInt Grid.Row="2" Grid.Column="1" Margin="8,5,0,0" Value="{Binding tick_move}" />
|
||||
<TextBlock Grid.Row="3" Margin="0,5,0,0" VerticalAlignment="Center">Multiplier</TextBlock>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="3"
|
||||
Margin="0,5,0,0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Multiplier"
|
||||
Style="{StaticResource TextBlock.Dark}" />
|
||||
<c:TickUpDownDouble Grid.Row="3" Grid.Column="1" AllowNaN="True" NaNText="" Margin="8,5,0,0" Value="{Binding display_multiplier}" />
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
+136
-113
@@ -6,124 +6,147 @@
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
xmlns:controls="clr-namespace:mbts.ui.controls"
|
||||
xmlns:c="clr-namespace:mbts.ui.controls"
|
||||
xmlns:converters="clr-namespace:mbts.ui.converters">
|
||||
<UserControl.Resources>
|
||||
<sys:Double x:Key="PanelItem.VerticalSeparation">5</sys:Double>
|
||||
<sys:Double x:Key="PanelItem.HorizontalSeparation">5</sys:Double>
|
||||
<Thickness
|
||||
x:Key="PanelItem.MarginT" Left="0" Top="{StaticResource PanelItem.VerticalSeparation}" />
|
||||
|
||||
<Style x:Key="PanelItem" TargetType="Control">
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch" />
|
||||
<Setter Property="Margin" Value="{StaticResource PanelItem.MarginT}" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="PanelItem.TextBlock" TargetType="TextBlock">
|
||||
<Setter Property="HorizontalAlignment" Value="Left" />
|
||||
<Setter Property="Margin" Value="{StaticResource PanelItem.MarginT}" />
|
||||
<Setter Property="Foreground" Value="{u:BTSBrush UI.default_text}" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="PanelItem.Button" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch" />
|
||||
<Setter Property="Margin" Value="{StaticResource PanelItem.MarginT}" />
|
||||
</Style>
|
||||
|
||||
<Style
|
||||
x:Key="PanelItem.CheckBox" TargetType="CheckBox" BasedOn="{StaticResource {x:Type CheckBox}}">
|
||||
<Setter Property="HorizontalAlignment" Value="Left" />
|
||||
<Setter Property="Margin" Value="{StaticResource PanelItem.MarginT}" />
|
||||
</Style>
|
||||
|
||||
<Style
|
||||
x:Key="PanelItem.ComboBox" TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}">
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch" />
|
||||
<Setter Property="Margin" Value="{StaticResource PanelItem.MarginT}" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="PanelItem.TickUpDown.Parameterless" TargetType="c:TickUpDown" BasedOn="{StaticResource {x:Type c:TickUpDown}}">
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch" />
|
||||
<Setter Property="Margin" Value="{StaticResource PanelItem.MarginT}" />
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="Foreground" Value="{u:BTSBrush UI.default_text}" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="TickUpCommandParameter" Value="{u:True}" />
|
||||
<Setter Property="TickDownCommandParameter" Value="{u:False}" />
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
||||
<StackPanel>
|
||||
<StackPanel.Resources>
|
||||
<Style
|
||||
TargetType="Button"
|
||||
BasedOn="{StaticResource ResourceKey={x:Type Button}}">
|
||||
<Setter
|
||||
Property="Margin"
|
||||
Value="5" />
|
||||
<Setter
|
||||
Property="HorizontalAlignment"
|
||||
Value="Stretch" />
|
||||
</Style>
|
||||
<Style
|
||||
TargetType="controls:TickUpDown"
|
||||
BasedOn="{StaticResource {x:Type controls:TickUpDown}}">
|
||||
<Setter
|
||||
Property="Margin"
|
||||
Value="5" />
|
||||
<Setter
|
||||
Property="VerticalAlignment"
|
||||
Value="Center" />
|
||||
</Style>
|
||||
</StackPanel.Resources>
|
||||
<GroupBox
|
||||
Header="Cascade"
|
||||
Padding="4">
|
||||
<Grid HorizontalAlignment="Stretch">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<CheckBox
|
||||
IsChecked="{Binding cascade_up}"
|
||||
IsEnabled="{Binding can_cascade}">Up</CheckBox>
|
||||
<CheckBox
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Left"
|
||||
Margin="8,0,0,0"
|
||||
IsChecked="{Binding cascade_down}"
|
||||
IsEnabled="{Binding can_cascade}">Down</CheckBox>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<CheckBox
|
||||
Margin="0"
|
||||
IsChecked="{Binding cascade_up}"
|
||||
IsEnabled="{Binding can_cascade}"
|
||||
Content="Up"
|
||||
ToolTip="Cascade Up"
|
||||
Style="{StaticResource PanelItem.CheckBox}" />
|
||||
<CheckBox
|
||||
IsChecked="{Binding cascade_down}"
|
||||
IsEnabled="{Binding can_cascade}"
|
||||
Content="Down"
|
||||
ToolTip="Cascade Down"
|
||||
Style="{StaticResource PanelItem.CheckBox}">
|
||||
<CheckBox.Margin>
|
||||
<Thickness Left="{StaticResource PanelItem.HorizontalSeparation}" />
|
||||
</CheckBox.Margin>
|
||||
</CheckBox>
|
||||
</StackPanel>
|
||||
|
||||
<Button
|
||||
Content="Rebuild"
|
||||
Command="{Binding rebuild}" />
|
||||
<controls:TickUpDown
|
||||
Content="Put Rotation"
|
||||
TickCommand="{Binding put_rotation}"
|
||||
TickUpCommandParameter="true"
|
||||
TickDownCommandParameter="false" />
|
||||
<controls:TickUpDown
|
||||
Content="Call Rotation"
|
||||
TickCommand="{Binding call_rotation}"
|
||||
TickUpCommandParameter="true"
|
||||
TickDownCommandParameter="false" />
|
||||
<controls:TickUpDown
|
||||
Content="Risk Reversal"
|
||||
TickCommand="{Binding full_rotation}"
|
||||
TickUpCommandParameter="true"
|
||||
TickDownCommandParameter="false" />
|
||||
<controls:TickUpDown
|
||||
Content="Strangle"
|
||||
TickCommand="{Binding strangle}"
|
||||
TickUpCommandParameter="true"
|
||||
TickDownCommandParameter="false" />
|
||||
<controls:TickUpDown
|
||||
Grid.Row="1"
|
||||
Content="ATM Move"
|
||||
TickCommand="{Binding atm_shift}"
|
||||
TickUpCommandParameter="true"
|
||||
TickDownCommandParameter="false" />
|
||||
<GroupBox Header="Fit To Market">
|
||||
<StackPanel>
|
||||
<ComboBox
|
||||
Margin="5"
|
||||
SelectedIndex="0"
|
||||
IsEnabled="False"
|
||||
x:Name="_a">
|
||||
<ComboBoxItem>Live</ComboBoxItem>
|
||||
<ComboBoxItem>Settlement</ComboBoxItem>
|
||||
</ComboBox>
|
||||
<ComboBox
|
||||
Margin="5"
|
||||
SelectedIndex="0"
|
||||
IsEnabled="{Binding can_execute_commands}"
|
||||
x:Name="_b">
|
||||
<ComboBoxItem>ATM Only</ComboBoxItem>
|
||||
<ComboBoxItem>All</ComboBoxItem>
|
||||
</ComboBox>
|
||||
<CheckBox
|
||||
Content="Weight Reg. Fit"
|
||||
Margin="5"
|
||||
IsChecked="{Binding use_weighted_regression_fit}" />
|
||||
<Button
|
||||
Content="Fit"
|
||||
Command="{Binding fit_to_market}">
|
||||
<Button.CommandParameter>
|
||||
<MultiBinding Converter="{StaticResource TupleConverter}">
|
||||
<Binding
|
||||
ElementName="_a"
|
||||
Path="SelectedIndex" />
|
||||
<Binding
|
||||
ElementName="_b"
|
||||
Path="SelectedIndex" />
|
||||
</MultiBinding>
|
||||
</Button.CommandParameter>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</GroupBox>
|
||||
<controls:TickUpDown
|
||||
Content="Global Vol Shift"
|
||||
TickCommand="{Binding vol_shift}"
|
||||
TickUpCommandParameter="true"
|
||||
TickDownCommandParameter="false"
|
||||
Visibility="Collapsed" />
|
||||
Command="{Binding rebuild}" Content="Rebuild" Style="{StaticResource PanelItem.Button}" />
|
||||
|
||||
<c:TickUpDown
|
||||
TickCommand="{Binding put_rotation}"
|
||||
Content="Put Rotation"
|
||||
Style="{StaticResource PanelItem.TickUpDown.Parameterless}" />
|
||||
|
||||
<c:TickUpDown
|
||||
TickCommand="{Binding call_rotation}"
|
||||
Content="Call Rotation"
|
||||
Style="{StaticResource PanelItem.TickUpDown.Parameterless}" />
|
||||
|
||||
<c:TickUpDown
|
||||
TickCommand="{Binding full_rotation}"
|
||||
Content="Risk Reversal"
|
||||
Style="{StaticResource PanelItem.TickUpDown.Parameterless}" />
|
||||
|
||||
<c:TickUpDown
|
||||
TickCommand="{Binding strangle}"
|
||||
Content="Strangle"
|
||||
Style="{StaticResource PanelItem.TickUpDown.Parameterless}" />
|
||||
|
||||
<c:TickUpDown
|
||||
Grid.Row="1"
|
||||
TickCommand="{Binding atm_shift}"
|
||||
Content="ATM Move"
|
||||
Style="{StaticResource PanelItem.TickUpDown.Parameterless}" />
|
||||
|
||||
<TextBlock
|
||||
Text="Fit to Market"
|
||||
Style="{StaticResource PanelItem.TextBlock}" />
|
||||
<StackPanel VerticalAlignment="Top" Margin="0,5,0,0">
|
||||
<ComboBox
|
||||
x:Name="_a"
|
||||
SelectedIndex="0"
|
||||
IsEnabled="False"
|
||||
Style="{StaticResource PanelItem.ComboBox}">
|
||||
<ComboBoxItem Style="{StaticResource ComboBoxItem.Dark}">Live</ComboBoxItem>
|
||||
<ComboBoxItem Style="{StaticResource ComboBoxItem.Dark}">Settlement</ComboBoxItem>
|
||||
</ComboBox>
|
||||
<ComboBox
|
||||
x:Name="_b"
|
||||
SelectedIndex="0"
|
||||
IsEnabled="{Binding can_execute_commands}"
|
||||
Style="{StaticResource PanelItem.ComboBox}">
|
||||
<ComboBoxItem>ATM Only</ComboBoxItem>
|
||||
<ComboBoxItem>All</ComboBoxItem>
|
||||
</ComboBox>
|
||||
<CheckBox
|
||||
IsChecked="{Binding use_weighted_regression_fit}"
|
||||
Content="Weight Reg. Fit"
|
||||
Style="{StaticResource PanelItem.CheckBox}" />
|
||||
<Button
|
||||
Command="{Binding fit_to_market}"
|
||||
Content="Fit"
|
||||
Style="{StaticResource PanelItem.Button}">
|
||||
<Button.CommandParameter>
|
||||
<MultiBinding Converter="{StaticResource TupleConverter}">
|
||||
<Binding ElementName="_a" Path="SelectedIndex" />
|
||||
<Binding ElementName="_b" Path="SelectedIndex" />
|
||||
</MultiBinding>
|
||||
</Button.CommandParameter>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
|
||||
<c:TickUpDown
|
||||
TickCommand="{Binding vol_shift}"
|
||||
Visibility="Collapsed"
|
||||
Content="Global Vol Shift"
|
||||
Style="{StaticResource PanelItem.TickUpDown.Parameterless}" />
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</UserControl>
|
||||
@@ -10,6 +10,7 @@
|
||||
xmlns:shell="clr-namespace:mbts.ui.shell"
|
||||
u:WindowStyle.SizeToContent="WidthAndHeight"
|
||||
u:WindowStyle.AllowResize="True"
|
||||
TextBlock.Foreground="{u:BTSColor UI.default_text}"
|
||||
Title="Vol Surface Settings"
|
||||
Style="{StaticResource BTSDialog}">
|
||||
<Window.Resources>
|
||||
@@ -22,7 +23,18 @@
|
||||
<Setter Property="Margin" Value="16,8" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="{x:Type TabItem}">
|
||||
<Style TargetType="GroupBox">
|
||||
<Setter Property="BorderBrush" Value="{u:BTSColor UI.default_text}" />
|
||||
<Setter Property="HeaderTemplate">
|
||||
<Setter.Value>
|
||||
<DataTemplate>
|
||||
<TextBlock Foreground="{u:BTSColor UI.default_text}" Text="{Binding}" />
|
||||
</DataTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="{x:Type TabItem}" BasedOn="{StaticResource TabItem.Dark}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type TabItem}">
|
||||
@@ -30,12 +42,15 @@
|
||||
<Grid>
|
||||
<Border
|
||||
x:Name="border"
|
||||
Background="Transparent"
|
||||
Background="{TemplateBinding Background}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
BorderThickness="{TemplateBinding BorderThickness}"
|
||||
Padding="{TemplateBinding Padding}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock x:Name="label" Text="{TemplateBinding Header}" />
|
||||
<TextBlock
|
||||
x:Name="label"
|
||||
Foreground="{TemplateBinding Foreground}"
|
||||
Text="{TemplateBinding Header}" />
|
||||
<TextBlock
|
||||
x:Name="check"
|
||||
Text="✓"
|
||||
@@ -47,12 +62,10 @@
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter TargetName="label" Property="Foreground" Value="Black" />
|
||||
<Setter TargetName="check" Property="Visibility" Value="Visible" />
|
||||
<Setter TargetName="label" Property="FontWeight" Value="Bold" />
|
||||
</Trigger>
|
||||
<Trigger Property="IsSelected" Value="False">
|
||||
<Setter TargetName="label" Property="Foreground" Value="Gray" />
|
||||
<Setter TargetName="check" Property="Visibility" Value="Hidden" />
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
@@ -145,7 +158,7 @@
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBlock Text="Number of Put Points" />
|
||||
<TextBlock Text="Number of Put Points" Style="{StaticResource TextBlock.Dark}" />
|
||||
<c:TextBoxUInt
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Right"
|
||||
@@ -153,7 +166,7 @@
|
||||
Margin="12,0,0,0"
|
||||
Value="{Binding num_put_points}" />
|
||||
|
||||
<TextBlock Grid.Row="1" Text="Number of Call Points" Margin="0,5,0,0" />
|
||||
<TextBlock Grid.Row="1" Text="Number of Call Points" Margin="0,5,0,0" Style="{StaticResource TextBlock.Dark}" />
|
||||
<c:TextBoxUInt
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
@@ -205,7 +218,7 @@
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="c0" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="Number of Put Points" />
|
||||
<TextBlock Text="Number of Put Points" Style="{StaticResource TextBlock.Dark}" />
|
||||
<c:TextBoxUInt
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Right"
|
||||
@@ -216,7 +229,8 @@
|
||||
<TextBlock
|
||||
Grid.Row="1"
|
||||
Margin="0,5,0,0"
|
||||
Text="Number of Call Points" />
|
||||
Text="Number of Call Points"
|
||||
Style="{StaticResource TextBlock.Dark}" />
|
||||
<c:TextBoxUInt
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
|
||||
<Grid Grid.Row="2" Background="{u:BTSBrush dialog_skirt}">
|
||||
<Grid Grid.Row="2" Background="{u:BTSBrush UI.dialog_skirt}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<!--ADD ITEM BUTTON-->
|
||||
<ColumnDefinition Width="Auto" />
|
||||
|
||||
@@ -15,7 +15,9 @@
|
||||
xmlns:oxy="clr-namespace:OxyPlot.Wpf;assembly=OxyPlot.Wpf"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:diag="clr-namespace:System.Diagnostics;assembly=WindowsBase"
|
||||
Background="{StaticResource CommonBackground}"
|
||||
Background="{u:BTSBrush UI.common_background}"
|
||||
BorderBrush="{u:BTSBrush Core.amazon}"
|
||||
BorderThickness="0,1,0,0"
|
||||
TextElement.FontSize="10">
|
||||
<UserControl.Resources>
|
||||
|
||||
@@ -40,8 +42,7 @@
|
||||
<Style x:Key="commit_style" TargetType="Button" BasedOn="{StaticResource ResourceKey={x:Type Button}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding is_dirty}" Value="true">
|
||||
<Setter Property="Foreground" Value="{u:BTSColor Name=UI.alternate_text}" />
|
||||
<Setter Property="Background" Value="{u:BTSColor Name=UI.warning}" />
|
||||
<Setter Property="Background" Value="{u:BTSColor UI.warning}" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
@@ -143,8 +144,10 @@
|
||||
</Style>
|
||||
|
||||
<Style TargetType="c:VolSurfaceCellView">
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="BorderBrush" Value="Transparent" />
|
||||
<Setter Property="BorderThickness" Value="1" />
|
||||
<Setter Property="Foreground" Value="{u:BTSColor Grid.input_cell_foreground}" />
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding is_dirty}" Value="{u:True}">
|
||||
<Setter Property="BorderBrush" Value="{u:BTSColor UI.input_dirty_border}" />
|
||||
@@ -211,13 +214,16 @@
|
||||
<Setter Property="HeaderContentTemplate">
|
||||
<Setter.Value>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding}" VerticalAlignment="Center" />
|
||||
<TextBlock
|
||||
VerticalAlignment="Center"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="{Binding}" />
|
||||
</DataTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Setter Property="ItemContainerStyle">
|
||||
<Setter.Value>
|
||||
<Style TargetType="c:ComboCheckBoxItem">
|
||||
<Style TargetType="c:ComboCheckBoxItem" BasedOn="{StaticResource {x:Type c:ComboCheckBoxItem}}">
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Left"/>
|
||||
</Style>
|
||||
@@ -412,6 +418,22 @@
|
||||
<c:DIYGrid.RowStyle>
|
||||
<Style TargetType="ListBoxItem" BasedOn="{StaticResource DIYGridRowStyle}">
|
||||
<Setter Property="IsSelected" Value="{Binding is_selected}" />
|
||||
<Style.Triggers>
|
||||
<Trigger Property="ItemsControl.AlternationIndex" Value="0">
|
||||
<Setter
|
||||
Property="Background"
|
||||
Value="{u:BTSColor
|
||||
Name='Grid.default_row_background,Grid.default_column_background',
|
||||
MixtureMode=Layered}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
|
||||
<Setter
|
||||
Property="Background"
|
||||
Value="{u:BTSColor
|
||||
Name='Grid.alternate_row_background,Grid.default_column_background',
|
||||
MixtureMode=Layered}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</c:DIYGrid.RowStyle>
|
||||
<c:DIYGrid.RowTemplate>
|
||||
@@ -428,21 +450,17 @@
|
||||
HorizontalAlignment="Stretch"
|
||||
ResizeDirection="Rows" />
|
||||
|
||||
<StackPanel Grid.Row="2" Width="112">
|
||||
<StackPanel Grid.Row="2" Margin="5,5,5,0">
|
||||
<Button
|
||||
Content="Commit"
|
||||
HorizontalAlignment="Center"
|
||||
Command="{Binding commit_cmd}"
|
||||
Grid.Column="6"
|
||||
Width="60"
|
||||
Margin="5"
|
||||
Style="{StaticResource commit_style}" />
|
||||
HorizontalAlignment="Stretch"
|
||||
Command="{Binding commit_cmd}"
|
||||
Content="Commit"
|
||||
Style="{StaticResource commit_style}" />
|
||||
<c:VolSurfaceMacroControlView
|
||||
Grid.Row="2"
|
||||
Margin="3"
|
||||
DataContext="{Binding macro_actions}"
|
||||
Width="112"
|
||||
IsEnabled="{Binding DataContext.any_masters_selected, ElementName=macro_grid}" />
|
||||
Margin="0,5,0,0"
|
||||
DataContext="{Binding macro_actions}"
|
||||
Width="107"
|
||||
IsEnabled="{Binding DataContext.any_masters_selected, ElementName=macro_grid}" />
|
||||
</StackPanel>
|
||||
|
||||
<Grid x:Name="adorned_grid" Grid.Row="2" Grid.Column="1">
|
||||
@@ -517,6 +535,7 @@
|
||||
x:Name="vol_curve_plot_view"
|
||||
Grid.Row="2"
|
||||
Grid.ColumnSpan="3"
|
||||
Background="Transparent"
|
||||
Model="{Binding graph_vm.plot_model}"
|
||||
MouseDoubleClick="_on_graph_mouse_double_click">
|
||||
<oxy:PlotView.ContextMenu>
|
||||
@@ -589,7 +608,7 @@
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Border
|
||||
BorderBrush="{u:BTSColor UI.danger}"
|
||||
BorderBrush="{u:BTSBrush UI.danger}"
|
||||
DataContext="{Binding globals}"
|
||||
Margin="-2.5,5,0,5"
|
||||
Padding="0">
|
||||
|
||||
@@ -2,26 +2,21 @@
|
||||
using bts.api;
|
||||
using bts.spark;
|
||||
|
||||
using mbts;
|
||||
using mbts.ui;
|
||||
using mbts.ui.extensions;
|
||||
using mbts.ui.shell;
|
||||
|
||||
using Spark.Core.Disposables;
|
||||
|
||||
using System;
|
||||
using System.Reactive.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
||||
class VolSurfaceWindow : SparkWindow<VolSurfaceWindowSettings>, ISharedWindow, IDummyWindow {
|
||||
class VolSurfaceWindow : SparkWindow<VolSurfaceWindowSettings>, ISharedWindow {
|
||||
public const string WINDOW_TYPE = "VolSurface";
|
||||
|
||||
readonly VolSurfaceWindowSettings _startup_data;
|
||||
|
||||
VolSurfaceVM _vm;
|
||||
UIElement _dummy_view;
|
||||
Window _main_win;
|
||||
VolSurfaceView _view;
|
||||
|
||||
public VolSurfaceWindow(
|
||||
VolSurfaceWindowFactory factory, IBus bus, string vs_name, VolSurfaceWindowSettings startup_data) :
|
||||
@@ -39,35 +34,13 @@
|
||||
public string vs_name { get; }
|
||||
|
||||
public override VolSurfaceWindowSettings SaveState => _vm?.get_startup_data();
|
||||
public override UIElement Content => _dummy_view;
|
||||
public override UIElement Content => _view;
|
||||
|
||||
public void thread_init() {
|
||||
_vm = new VolSurfaceVM(new VolSurfaceDisplayModel(vs_id, _bus, true), vs_id, _bus, _startup_data);
|
||||
var hooks = new ImmutableDisposable();
|
||||
|
||||
var dummy_view = new Border {
|
||||
Background = BTSColors.UI.default_background.to_brush().frozen(),
|
||||
Padding = new(8),
|
||||
Child = new TextBlock { Text = "Loading ..." }
|
||||
_view = new VolSurfaceView {
|
||||
DataContext = _vm
|
||||
};
|
||||
_dummy_view = dummy_view;
|
||||
|
||||
_main_win = new Window {
|
||||
Content = new VolSurfaceView {
|
||||
DataContext = _vm
|
||||
}
|
||||
};
|
||||
hooks += this.observe_title().OnDispatcher().Subscribe(title => _main_win.Title = title);
|
||||
hooks += _main_win.SubscribeClosed((s, e) => {
|
||||
Disposable.dispose(ref hooks);
|
||||
_bus.post(SparkTags.hide_window, this);
|
||||
});
|
||||
hooks += dummy_view.SubscribeUnloaded((s, e) => {
|
||||
Disposable.dispose(ref hooks);
|
||||
_main_win.Close();
|
||||
});
|
||||
|
||||
_main_win.Show();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -36,7 +36,7 @@
|
||||
};
|
||||
|
||||
public string name => "Market";
|
||||
public ImageSource icon => Icons.Date;
|
||||
public ImageSource icon => Icons.Market;
|
||||
public int priority => 10;
|
||||
|
||||
public IEnumerable<SparkCommand> actions => new[] {
|
||||
|
||||
@@ -19,10 +19,10 @@ namespace mbts.spark {
|
||||
position_decrease = new(ColType.Position, CellAnimation.Type.DownArrow, Brushes.Red),
|
||||
day_change_increase = new(ColType.DayChange, CellAnimation.Type.UpArrow, Brushes.Green),
|
||||
day_change_decrease = new(ColType.DayChange, CellAnimation.Type.DownArrow, Brushes.Red),
|
||||
working_bids_active = new(ColType.WorkingBids, CellAnimation.Type.Border, BTSColors.warning.to_brush()),
|
||||
working_bids_active = new(ColType.WorkingBids, CellAnimation.Type.Border, BTSColors.UI.warning.to_brush()),
|
||||
working_bids_inside = new(ColType.WorkingBids, CellAnimation.Type.Border, BTSColors.MarketData.bid.to_brush()),
|
||||
working_bids_filled = new(ColType.WorkingBids, CellAnimation.Type.Border, Brushes.Green),
|
||||
working_asks_active = new(ColType.WorkingAsks, CellAnimation.Type.Border, BTSColors.warning.to_brush()),
|
||||
working_asks_active = new(ColType.WorkingAsks, CellAnimation.Type.Border, BTSColors.UI.warning.to_brush()),
|
||||
working_asks_inside = new(ColType.WorkingAsks, CellAnimation.Type.Border, BTSColors.MarketData.ask.to_brush()),
|
||||
working_asks_filled = new(ColType.WorkingAsks, CellAnimation.Type.Border, Brushes.Red)
|
||||
};
|
||||
|
||||
@@ -107,15 +107,15 @@ namespace bts.shell.market_view {
|
||||
Columns.Bid,
|
||||
ColHeader.Bid,
|
||||
ColWidth.MViewPrice,
|
||||
fg: BTSColors.header_text,
|
||||
bg: BTSColors.MarketData.bid);
|
||||
fg: BTSColors.MarketData.bid,
|
||||
bg: BTSColors.Grid.dark_column_background);
|
||||
|
||||
public static GridColumnSettings ask => _mk(
|
||||
Columns.Ask,
|
||||
ColHeader.Ask,
|
||||
ColWidth.MViewPrice,
|
||||
fg: BTSColors.header_text,
|
||||
bg: BTSColors.MarketData.ask);
|
||||
fg: BTSColors.MarketData.ask,
|
||||
bg: BTSColors.Grid.dark_column_background);
|
||||
|
||||
public static GridColumnSettings ask_merged_size => _mk(Columns.AskMergedQty, ColHeader.MergedQty, ColWidth.MergedQty, fg: BTSColors.MarketData.ask);
|
||||
public static GridColumnSettings ask_direct_size => _mk(Columns.AskDirectQty, ColHeader.DirectQty, ColWidth.MergedQty, fg: BTSColors.MarketData.ask);
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
xmlns:usp="clr-namespace:mbts.ui.spark"
|
||||
u:WindowStyle.UnsafeWindow="{Binding Path='(u:WindowStyle.UnsafeWindow)', RelativeSource={RelativeSource AncestorType=bv:SparkWindowView}}"
|
||||
FocusManager.IsFocusScope="True"
|
||||
Background="{StaticResource CommonBackground}"
|
||||
Background="{u:BTSBrush UI.common_background}"
|
||||
>
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
|
||||
@@ -111,9 +111,9 @@
|
||||
// columns
|
||||
add_col(ColKey.Security, fmt_sec, ColWidth.Security, security_filter, FilterType.Regex);
|
||||
add_col(ColKey.Time, fmt_time, ColWidth.Time, time_filter, FilterType.TimeFilter);
|
||||
add_col(ColKey.Price, fmt_price, ColWidth.Price, price_filter, FilterType.DoubleMinMax, h_align: HorizontalAlignment.Right);
|
||||
add_col(ColKey.Size, fmt_display_size, ColWidth.Qty, size_filter, FilterType.UIntMinMax, h_align: HorizontalAlignment.Right);
|
||||
add_col(ColKey.Aggressor, fmt_aggressor, ColWidth.Aggressor, aggressor_filter, FilterType.EnumValues);
|
||||
add_col(ColKey.Price, fmt_price, ColWidth.Price, price_filter, FilterType.DoubleMinMax, h_align: HorizontalAlignment.Right, get_fg: _get_aggressor_brush);
|
||||
add_col(ColKey.Size, fmt_display_size, ColWidth.Qty, size_filter, FilterType.UIntMinMax, h_align: HorizontalAlignment.Right, get_fg: _get_aggressor_brush);
|
||||
add_col(ColKey.Aggressor, fmt_aggressor, ColWidth.Aggressor, aggressor_filter, FilterType.EnumValues, get_fg: _get_aggressor_brush);
|
||||
add_col(ColKey.SecurityKey, fmt_sec_key, ColWidth.SecurityKey, security_key_filter, FilterType.Regex);
|
||||
add_col(ColKey.Volume, fmt_volume, ColWidth.Volume, volume_filter, FilterType.DoubleMinMax, h_align: HorizontalAlignment.Right);
|
||||
add_col(ColKey.Vol, fmt_vol, ColWidth.Greeks, vol_filter, FilterType.DoubleMinMax, h_align: HorizontalAlignment.Right);
|
||||
@@ -162,9 +162,10 @@
|
||||
IDataGridColumnFilter filter,
|
||||
string filter_template,
|
||||
string header = null,
|
||||
HorizontalAlignment h_align = HorizontalAlignment.Left) =>
|
||||
HorizontalAlignment h_align = HorizontalAlignment.Left,
|
||||
Func<TimeAndSalesRowVM, Brush> get_fg = null) =>
|
||||
columns.Add(new RenderTextColumn<TimeAndSalesRowVM, ColKey>(
|
||||
col_key, get_cell_text, filter, filter_template, _get_aggressor_brush) {
|
||||
col_key, get_cell_text, filter, filter_template, get_foreground: get_fg) {
|
||||
id = col_key.col_id(),
|
||||
Header = header ?? EnumHelper.get_display_name(col_key),
|
||||
Width = width,
|
||||
@@ -425,10 +426,9 @@
|
||||
(r.aggressor_side switch {
|
||||
AggressorSide.Buy => BTSColors.MarketData.bid,
|
||||
AggressorSide.Sell => BTSColors.MarketData.ask,
|
||||
_ => (BTSColor)Colors.Transparent,
|
||||
_ => BTSColors.UI.default_foreground
|
||||
})
|
||||
.to_brush()
|
||||
.with(opacity: 0.33)
|
||||
.frozen();
|
||||
|
||||
TimeAndSalesFilterSettings _get_filter_states() =>
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
x:ClassModifier="internal"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
xmlns:c="clr-namespace:mbts.ui.controls"
|
||||
xmlns:tas="clr-namespace:bts.shell.time_and_sales"
|
||||
FocusManager.IsFocusScope="True"
|
||||
Background="{StaticResource CommonBackground}"
|
||||
Background="{u:BTSBrush UI.Window.normal_background}"
|
||||
>
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:usp="clr-namespace:mbts.ui.spark"
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
xmlns:c="clr-namespace:mbts.ui.controls"
|
||||
Background="{StaticResource CommonBackground}"
|
||||
>
|
||||
Background="{u:BTSBrush UI.Window.normal_background}">
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
|
||||
@@ -1,346 +1,407 @@
|
||||
<UserControl
|
||||
x:Class="mbts.ui.spark.AlgoStudioView"
|
||||
x:ClassModifier="internal"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sp="clr-namespace:mbts.spark"
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
xmlns:c="clr-namespace:mbts.ui.controls"
|
||||
xmlns:cp="clr-namespace:mbts.ui.controls.color_picker"
|
||||
xmlns:cv="clr-namespace:mbts.ui.converters"
|
||||
xmlns:usp="clr-namespace:mbts.ui.spark"
|
||||
xmlns:uag="clr-namespace:mbts.ui.spark.algo"
|
||||
xmlns:uspcv="clr-namespace:mbts.ui.spark.converters"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
u:StateManager.VisualState="{Binding selected_definition.algo_root, Converter={x:Static usp:AlgoStudioView.EditPaneVisualStateConverter}}"
|
||||
Background="{StaticResource CommonBackground}"
|
||||
>
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
<!--Primitive Constants-->
|
||||
<sys:Double x:Key="HorizontalPush1">4</sys:Double>
|
||||
<sys:Double x:Key="HorizontalPush2">8</sys:Double>
|
||||
<sys:Double x:Key="HorizontalPush3">12</sys:Double>
|
||||
<sys:Double x:Key="VerticalPush1">4</sys:Double>
|
||||
<sys:Double x:Key="VerticalPush2">8</sys:Double>
|
||||
<sys:Double x:Key="VerticalPush3">12</sys:Double>
|
||||
<Thickness x:Key="Margin.LP1" Left="{StaticResource HorizontalPush1}"/>
|
||||
<Thickness x:Key="Margin.LP1_RP1" Left="{StaticResource HorizontalPush1}" Right="{StaticResource HorizontalPush1}"/>
|
||||
<Thickness x:Key="Margin.LP2" Left="{StaticResource HorizontalPush2}"/>
|
||||
<Thickness x:Key="Margin.LP3" Left="{StaticResource HorizontalPush3}"/>
|
||||
<Thickness x:Key="Margin.TP1" Top="{StaticResource VerticalPush1}"/>
|
||||
<Thickness x:Key="Margin.TP2" Top="{StaticResource VerticalPush2}"/>
|
||||
<!--Converters-->
|
||||
<sys:String x:Key="AlgoAbbreviationActiveState">AbbreviationActive</sys:String>
|
||||
<sys:String x:Key="AlgoAbbreviationInactiveState">AbbreviationInactive</sys:String>
|
||||
<cv:ValueMap x:Key="AlgoAbbreviationVisualStateConverter" Default="{StaticResource AlgoAbbreviationActiveState}">
|
||||
<cv:KeyValue Key="{x:Null}" Value="{StaticResource AlgoAbbreviationInactiveState}"/>
|
||||
<cv:KeyValue Key="{x:Static sys:String.Empty}" Value="{StaticResource AlgoAbbreviationInactiveState}"/>
|
||||
</cv:ValueMap>
|
||||
<uspcv:OrderTypeBrushConverter x:Key="OrderTypeBrushConverter" DefaultBrush="Transparent"/>
|
||||
<!--Default Styles-->
|
||||
<Style x:Key="ContentHostGroupBoxStyle" TargetType="GroupBox">
|
||||
<Setter Property="Padding" Value="8"/>
|
||||
</Style>
|
||||
<Style TargetType="TextBox">
|
||||
<Setter Property="u:TextBoxBehavior.EnterKeyBehavior" Value="CommitAndRelease"/>
|
||||
<Setter Property="u:TextBoxBehavior.ReleaseOnEscape" Value="True"/>
|
||||
</Style>
|
||||
<!--Custom Styles-->
|
||||
<Style x:Key="RectangleBadgeStyle" TargetType="Rectangle">
|
||||
<Setter Property="Width" Value="17"/>
|
||||
<Setter Property="Height" Value="12"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="RadiusX" Value="{x:Static c:Badge.DefaultCornerRadius}"/>
|
||||
<Setter Property="RadiusY" Value="{x:Static c:Badge.DefaultCornerRadius}"/>
|
||||
<Setter Property="Stroke" Value="Black"/>
|
||||
<Setter Property="StrokeThickness" Value="2"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="CustomBadgeColorPickerPopupRootStyle" TargetType="Border">
|
||||
<Setter Property="BorderBrush" Value="DarkGray"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="Background" Value="{StaticResource CommonBackground}"/>
|
||||
<Setter Property="VerticalAlignment" Value="Stretch"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||
<Setter Property="MinWidth" Value="100"/>
|
||||
<Setter Property="u:Behavior.EatMouseDown" Value="True"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="CustomBadgeColorPickerButtonStyle" TargetType="Button">
|
||||
<Setter Property="BorderBrush" Value="Black"/>
|
||||
<Setter Property="BorderThickness" Value="2"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="Width" Value="17"/>
|
||||
<Setter Property="Height" Value="12"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border
|
||||
x:Name="Border"
|
||||
Background="{TemplateBinding Background}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
BorderThickness="{TemplateBinding BorderThickness}"
|
||||
CornerRadius="2"
|
||||
Opacity="{TemplateBinding Opacity}"
|
||||
Padding="{TemplateBinding Padding}"
|
||||
>
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal"/>
|
||||
<VisualState x:Name="MouseOver">
|
||||
<Storyboard>
|
||||
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" Storyboard.TargetName="Border">
|
||||
<DiscreteColorKeyFrame KeyTime="0" Value="#FF7EB4EA"/>
|
||||
</ColorAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Pressed">
|
||||
<Storyboard>
|
||||
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="Border">
|
||||
<DiscreteColorKeyFrame KeyTime="0" Value="{StaticResource Button.MousePressed.BackgroundColor}"/>
|
||||
</ColorAnimationUsingKeyFrames>
|
||||
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" Storyboard.TargetName="Border">
|
||||
<DiscreteColorKeyFrame KeyTime="0" Value="{StaticResource Button.MousePressed.BorderColor}"/>
|
||||
</ColorAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Disabled">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Border">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{u:Double 0.5}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
<ContentPresenter
|
||||
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||
RecognizesAccessKey="True"
|
||||
/>
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="uag:AlgoPickerNodeView" BasedOn="{StaticResource {x:Type uag:AlgoPickerNodeView}}">
|
||||
<Setter Property="DropDownStyleKey" Value="{x:Static usp:AlgoContentTemplateSelector.DefinitionDropDownStyleKey}"/>
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
</UserControl.Resources>
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
<AdornerDecorator>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<ListBox
|
||||
x:Name="_tree_view"
|
||||
Grid.RowSpan="2"
|
||||
ItemsSource="{Binding definitions_view}"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
MinWidth="180"
|
||||
Background="Transparent"
|
||||
BorderThickness="0,0,1,0"
|
||||
SelectedItem="{Binding selected_definition}"
|
||||
>
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate DataType="{x:Type sp:AlgoDefinitionVM}">
|
||||
<TextBlock x:Name="text_view" Grid.Column="1" Margin="{StaticResource Margin.LP1}" Text="{Binding name}"/>
|
||||
<DataTemplate.Triggers>
|
||||
<DataTrigger Binding="{Binding is_dirty}" Value="True">
|
||||
<Setter TargetName="text_view" Property="Text" Value="{Binding name, StringFormat='{}{0}*'}"/>
|
||||
</DataTrigger>
|
||||
</DataTemplate.Triggers>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
<Grid x:Name="edit_pane" Grid.Column="1">
|
||||
<u:StateManager.VisualState>
|
||||
<Binding Path="selected_definition">
|
||||
<Binding.Converter>
|
||||
<cv:ValueMap Default="{x:Static u:VisualStates.Active}">
|
||||
<cv:KeyValue Key="{x:Null}" Value="{x:Static u:VisualStates.Inactive}"/>
|
||||
</cv:ValueMap>
|
||||
</Binding.Converter>
|
||||
</Binding>
|
||||
</u:StateManager.VisualState>
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
<VisualStateGroup>
|
||||
<VisualState Name="{x:Static u:VisualStates.Active}"/>
|
||||
<VisualState Name="{x:Static u:VisualStates.Inactive}">
|
||||
<Storyboard>
|
||||
<BooleanAnimationUsingKeyFrames Storyboard.TargetName="custom_badge_color_picker_button" Storyboard.TargetProperty="(UIElement.IsEnabled)">
|
||||
<DiscreteBooleanKeyFrame KeyTime="0" Value="False"/>
|
||||
</BooleanAnimationUsingKeyFrames>
|
||||
<BooleanAnimationUsingKeyFrames Storyboard.TargetName="name_text_box" Storyboard.TargetProperty="(UIElement.IsEnabled)">
|
||||
<DiscreteBooleanKeyFrame KeyTime="0" Value="False"/>
|
||||
</BooleanAnimationUsingKeyFrames>
|
||||
<BooleanAnimationUsingKeyFrames Storyboard.TargetName="abbreviation_text_box" Storyboard.TargetProperty="(UIElement.IsEnabled)">
|
||||
<DiscreteBooleanKeyFrame KeyTime="0" Value="False"/>
|
||||
</BooleanAnimationUsingKeyFrames>
|
||||
<BooleanAnimationUsingKeyFrames Storyboard.TargetName="algo_editor_scroll_viewer" Storyboard.TargetProperty="(UIElement.IsEnabled)">
|
||||
<DiscreteBooleanKeyFrame KeyTime="0" Value="False"/>
|
||||
</BooleanAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="edit_pane" Storyboard.TargetProperty="(FrameworkElement.ToolTip).(UIElement.Visibility)">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
<Grid.ToolTip>
|
||||
<ToolTip Visibility="Collapsed">
|
||||
<StackPanel Orientation="Vertical">
|
||||
<TextBlock FontStyle="Italic">Select an existing algo to edit from the list to the left.</TextBlock>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock FontStyle="Italic">Or click the</TextBlock>
|
||||
<Image Source="{x:Static u:Icons.AddBoxes}" Height="20" Margin="2,0"/>
|
||||
<TextBlock FontStyle="Italic"> button to create a new one.</TextBlock>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</ToolTip>
|
||||
</Grid.ToolTip>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="27"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Rectangle
|
||||
Grid.ColumnSpan="3"
|
||||
VerticalAlignment="Stretch"
|
||||
HorizontalAlignment="Stretch"
|
||||
Fill="{u:BTSBrush dialog_skirt}"
|
||||
UseLayoutRounding="True" />
|
||||
|
||||
<Button
|
||||
x:Name="custom_badge_color_picker_button"
|
||||
Background="{Binding selected_definition.badge_fill}"
|
||||
Margin="{StaticResource Margin.LP1}"
|
||||
ToolTip="Change the icon color used for this algo."
|
||||
IsEnabled="True"
|
||||
Style="{StaticResource CustomBadgeColorPickerButtonStyle}"
|
||||
/>
|
||||
<Popup x:Name="custom_badge_color_picker_popup" StaysOpen="False" PlacementTarget="{Binding ElementName=custom_badge_color_picker_button}" Placement="Right">
|
||||
<Border Style="{StaticResource CustomBadgeColorPickerPopupRootStyle}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<CheckBox
|
||||
x:Name="default_badge_color_checkbox"
|
||||
VerticalAlignment="Center"
|
||||
VerticalContentAlignment="Center"
|
||||
Margin="6,4,0,4"
|
||||
IsChecked="{Binding selected_definition.custom_badge_color.enabled, Converter={StaticResource NotConverter}}"
|
||||
>
|
||||
<CheckBox.ToolTip>
|
||||
<TextBlock>
|
||||
<Run>Use the default icon color for this algo.</Run>
|
||||
<LineBreak/>
|
||||
<Run FontStyle="Italic">Hint: the default color is that of the algo-root.</Run>
|
||||
</TextBlock>
|
||||
</CheckBox.ToolTip>
|
||||
<Grid x:Name="default_badge_content_root">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock>Use Default Icon</TextBlock>
|
||||
<Rectangle
|
||||
x:Name="default_badge"
|
||||
Grid.Column="1"
|
||||
Margin="{StaticResource Margin.LP1}"
|
||||
Fill="{Binding selected_definition.algo_root.meta.Color, Converter={StaticResource ColorToBrushConverter}}"
|
||||
Style="{StaticResource RectangleBadgeStyle}"
|
||||
/>
|
||||
</Grid>
|
||||
</CheckBox>
|
||||
<cp:ColorPickerControl
|
||||
Grid.Row="1"
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
Margin="{StaticResource Margin.TP1}"
|
||||
Background="Transparent"
|
||||
Palettes="{Binding DataContext.selected_definition.custom_badge_color_palettes, RelativeSource={RelativeSource AncestorType=Popup}}"
|
||||
SelectedColor="{Binding DataContext.selected_definition.custom_badge_color.value, RelativeSource={RelativeSource AncestorType=Popup}, Mode=TwoWay}"
|
||||
PreviewMouseDown="_on_badge_color_picker_activated"
|
||||
PreviewGotKeyboardFocus="_on_badge_color_picker_activated"
|
||||
/>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Popup>
|
||||
<TextBox
|
||||
x:Name="name_text_box"
|
||||
Grid.Column="1"
|
||||
u:TextBoxBehavior.TextPrompt="Name"
|
||||
Margin="{StaticResource Margin.LP1}"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Center"
|
||||
MinWidth="50"
|
||||
IsEnabled="True"
|
||||
Text="{Binding selected_definition.name, UpdateSourceTrigger=PropertyChanged, Delay=25}"
|
||||
ToolTip="This algo's full name."
|
||||
/>
|
||||
<TextBox
|
||||
x:Name="abbreviation_text_box"
|
||||
Grid.Column="2"
|
||||
u:TextBoxBehavior.TextPrompt="Abbrev."
|
||||
VerticalAlignment="Center"
|
||||
Margin="{StaticResource Margin.LP1_RP1}"
|
||||
MinWidth="50"
|
||||
IsEnabled="True"
|
||||
Text="{Binding selected_definition.abbreviation, UpdateSourceTrigger=PropertyChanged, Delay=25}"
|
||||
>
|
||||
<TextBox.ToolTip>
|
||||
<TextBlock>
|
||||
<TextBlock.Inlines>
|
||||
<Run>Specify an abbreviation for this algo to use in ladder algo 'favorite' buttons.</Run>
|
||||
<LineBreak/>
|
||||
<Run FontStyle="Italic">Hint: To add/remove algos from 'favorites', open the ladder settings dialog and select the 'Algo Favorites' tab.</Run>
|
||||
</TextBlock.Inlines>
|
||||
</TextBlock>
|
||||
</TextBox.ToolTip>
|
||||
</TextBox>
|
||||
<ScrollViewer x:Name="algo_editor_scroll_viewer" Grid.Row="1" Grid.ColumnSpan="3" VerticalScrollBarVisibility="Auto">
|
||||
<usp:AlgoEditorView
|
||||
DataContext="{Binding selected_definition}"
|
||||
Background="Transparent"
|
||||
BorderBrush="{Binding algo_root, Converter={StaticResource OrderTypeBrushConverter}}"
|
||||
Padding="12,8"
|
||||
/>
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
<c:DialogSkirt
|
||||
Grid.Row="2"
|
||||
Grid.Column="1"
|
||||
BorderThickness="0"
|
||||
>
|
||||
<c:DialogSkirt.RightItems>
|
||||
<x:Array Type="{x:Type Button}">
|
||||
<Button ToolTipService.ShowOnDisabled="True" Margin="{StaticResource DialogSkirtButtonMargin}" Command="{Binding save_cmd}" CommandParameter="{Binding selected_definition}" Width="90" ToolTip="{Binding save_cmd_tooltip}" IsDefault="True">
|
||||
Save Algo
|
||||
</Button>
|
||||
<Button ToolTipService.ShowOnDisabled="True" Margin="{StaticResource DialogSkirtButtonMargin}" Command="{Binding revert_cmd}" CommandParameter="{Binding selected_definition}" Width="90" ToolTip="{Binding revert_cmd_tooltip}">
|
||||
Revert Algo
|
||||
</Button>
|
||||
</x:Array>
|
||||
</c:DialogSkirt.RightItems>
|
||||
</c:DialogSkirt>
|
||||
</Grid>
|
||||
</AdornerDecorator>
|
||||
</UserControl>
|
||||
<UserControl
|
||||
x:Class="mbts.ui.spark.AlgoStudioView"
|
||||
x:ClassModifier="internal"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sp="clr-namespace:mbts.spark"
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
xmlns:c="clr-namespace:mbts.ui.controls"
|
||||
xmlns:cp="clr-namespace:mbts.ui.controls.color_picker"
|
||||
xmlns:cv="clr-namespace:mbts.ui.converters"
|
||||
xmlns:usp="clr-namespace:mbts.ui.spark"
|
||||
xmlns:uag="clr-namespace:mbts.ui.spark.algo"
|
||||
xmlns:uspcv="clr-namespace:mbts.ui.spark.converters"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
u:StateManager.VisualState="{Binding selected_definition.algo_root, Converter={x:Static usp:AlgoStudioView.EditPaneVisualStateConverter}}"
|
||||
Background="{u:BTSBrush UI.common_background}">
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
<!--Primitive Constants-->
|
||||
<sys:Double x:Key="HorizontalPush1">4</sys:Double>
|
||||
<sys:Double x:Key="HorizontalPush2">8</sys:Double>
|
||||
<sys:Double x:Key="HorizontalPush3">12</sys:Double>
|
||||
<sys:Double x:Key="VerticalPush1">4</sys:Double>
|
||||
<sys:Double x:Key="VerticalPush2">8</sys:Double>
|
||||
<sys:Double x:Key="VerticalPush3">12</sys:Double>
|
||||
<Thickness x:Key="Margin.LP1" Left="{StaticResource HorizontalPush1}"/>
|
||||
<Thickness x:Key="Margin.LP1_RP1" Left="{StaticResource HorizontalPush1}" Right="{StaticResource HorizontalPush1}"/>
|
||||
<Thickness x:Key="Margin.LP2" Left="{StaticResource HorizontalPush2}"/>
|
||||
<Thickness x:Key="Margin.LP3" Left="{StaticResource HorizontalPush3}"/>
|
||||
<Thickness x:Key="Margin.TP1" Top="{StaticResource VerticalPush1}"/>
|
||||
<Thickness x:Key="Margin.TP2" Top="{StaticResource VerticalPush2}"/>
|
||||
|
||||
<!--Converters-->
|
||||
<sys:String x:Key="AlgoAbbreviationActiveState">AbbreviationActive</sys:String>
|
||||
<sys:String x:Key="AlgoAbbreviationInactiveState">AbbreviationInactive</sys:String>
|
||||
<cv:ValueMap x:Key="AlgoAbbreviationVisualStateConverter" Default="{StaticResource AlgoAbbreviationActiveState}">
|
||||
<cv:KeyValue Key="{x:Null}" Value="{StaticResource AlgoAbbreviationInactiveState}"/>
|
||||
<cv:KeyValue Key="{x:Static sys:String.Empty}" Value="{StaticResource AlgoAbbreviationInactiveState}"/>
|
||||
</cv:ValueMap>
|
||||
<uspcv:OrderTypeBrushConverter x:Key="OrderTypeBrushConverter" DefaultBrush="Transparent"/>
|
||||
|
||||
<!--Default Styles-->
|
||||
<Style x:Key="ContentHostGroupBoxStyle" TargetType="GroupBox">
|
||||
<Setter Property="Padding" Value="8"/>
|
||||
</Style>
|
||||
<Style TargetType="TextBox">
|
||||
<Setter Property="u:TextBoxBehavior.EnterKeyBehavior" Value="CommitAndRelease"/>
|
||||
<Setter Property="u:TextBoxBehavior.ReleaseOnEscape" Value="True"/>
|
||||
</Style>
|
||||
|
||||
<!--Custom Styles-->
|
||||
<Style x:Key="RectangleBadgeStyle" TargetType="Rectangle">
|
||||
<Setter Property="Width" Value="17"/>
|
||||
<Setter Property="Height" Value="12"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="RadiusX" Value="{x:Static c:Badge.DefaultCornerRadius}"/>
|
||||
<Setter Property="RadiusY" Value="{x:Static c:Badge.DefaultCornerRadius}"/>
|
||||
<Setter Property="Stroke" Value="Black"/>
|
||||
<Setter Property="StrokeThickness" Value="2"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="CustomBadgeColorPickerPopupRootStyle" TargetType="Border">
|
||||
<Setter Property="BorderBrush" Value="DarkGray"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="Background" Value="{u:BTSBrush UI.common_background}"/>
|
||||
<Setter Property="VerticalAlignment" Value="Stretch"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||
<Setter Property="MinWidth" Value="100"/>
|
||||
<Setter Property="u:Behavior.EatMouseDown" Value="True"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="CustomBadgeColorPickerButtonStyle" TargetType="Button">
|
||||
<Setter Property="BorderBrush" Value="Black"/>
|
||||
<Setter Property="BorderThickness" Value="2"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="Width" Value="17"/>
|
||||
<Setter Property="Height" Value="12"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border
|
||||
x:Name="Border"
|
||||
Background="{TemplateBinding Background}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
BorderThickness="{TemplateBinding BorderThickness}"
|
||||
CornerRadius="2"
|
||||
Opacity="{TemplateBinding Opacity}"
|
||||
Padding="{TemplateBinding Padding}">
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal"/>
|
||||
|
||||
<VisualState x:Name="MouseOver">
|
||||
<Storyboard>
|
||||
<ColorAnimationUsingKeyFrames
|
||||
Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)"
|
||||
Storyboard.TargetName="Border">
|
||||
<DiscreteColorKeyFrame KeyTime="0" Value="#FF7EB4EA"/>
|
||||
</ColorAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
|
||||
<VisualState x:Name="Pressed">
|
||||
<Storyboard>
|
||||
<ColorAnimationUsingKeyFrames
|
||||
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
|
||||
Storyboard.TargetName="Border">
|
||||
<DiscreteColorKeyFrame
|
||||
KeyTime="0" Value="{StaticResource Button.MousePressed.BackgroundColor}" />
|
||||
</ColorAnimationUsingKeyFrames>
|
||||
<ColorAnimationUsingKeyFrames
|
||||
Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)"
|
||||
Storyboard.TargetName="Border">
|
||||
<DiscreteColorKeyFrame
|
||||
KeyTime="0" Value="{StaticResource Button.MousePressed.BorderColor}" />
|
||||
</ColorAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
|
||||
<VisualState x:Name="Disabled">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetProperty="(UIElement.Opacity)"
|
||||
Storyboard.TargetName="Border">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{u:Double 0.5}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
|
||||
<ContentPresenter
|
||||
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||
RecognizesAccessKey="True"
|
||||
/>
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="uag:AlgoPickerNodeView" BasedOn="{StaticResource {x:Type uag:AlgoPickerNodeView}}">
|
||||
<Setter
|
||||
Property="DropDownStyleKey"
|
||||
Value="{x:Static usp:AlgoContentTemplateSelector.DefinitionDropDownStyleKey}" />
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
</UserControl.Resources>
|
||||
|
||||
<AdornerDecorator>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<ListBox
|
||||
x:Name="_tree_view"
|
||||
Grid.RowSpan="2"
|
||||
ItemsSource="{Binding definitions_view}"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
MinWidth="180"
|
||||
Background="Transparent"
|
||||
BorderThickness="0,0,1,0"
|
||||
SelectedItem="{Binding selected_definition}">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate DataType="{x:Type sp:AlgoDefinitionVM}">
|
||||
<TextBlock
|
||||
x:Name="text_view"
|
||||
Grid.Column="1"
|
||||
Margin="{StaticResource Margin.LP1}"
|
||||
Text="{Binding name}" />
|
||||
<DataTemplate.Triggers>
|
||||
<DataTrigger Binding="{Binding is_dirty}" Value="True">
|
||||
<Setter TargetName="text_view" Property="Text" Value="{Binding name, StringFormat='{}{0}*'}"/>
|
||||
</DataTrigger>
|
||||
</DataTemplate.Triggers>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
|
||||
<Grid x:Name="edit_pane" Grid.Column="1">
|
||||
<u:StateManager.VisualState>
|
||||
<Binding Path="selected_definition">
|
||||
<Binding.Converter>
|
||||
<cv:ValueMap Default="{x:Static u:VisualStates.Active}">
|
||||
<cv:KeyValue Key="{x:Null}" Value="{x:Static u:VisualStates.Inactive}"/>
|
||||
</cv:ValueMap>
|
||||
</Binding.Converter>
|
||||
</Binding>
|
||||
</u:StateManager.VisualState>
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
<VisualStateGroup>
|
||||
<VisualState Name="{x:Static u:VisualStates.Active}"/>
|
||||
|
||||
<VisualState Name="{x:Static u:VisualStates.Inactive}">
|
||||
<Storyboard>
|
||||
<BooleanAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="custom_badge_color_picker_button"
|
||||
Storyboard.TargetProperty="(UIElement.IsEnabled)">
|
||||
<DiscreteBooleanKeyFrame KeyTime="0" Value="False"/>
|
||||
</BooleanAnimationUsingKeyFrames>
|
||||
<BooleanAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="name_text_box"
|
||||
Storyboard.TargetProperty="(UIElement.IsEnabled)">
|
||||
<DiscreteBooleanKeyFrame KeyTime="0" Value="False"/>
|
||||
</BooleanAnimationUsingKeyFrames>
|
||||
<BooleanAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="abbreviation_text_box"
|
||||
Storyboard.TargetProperty="(UIElement.IsEnabled)">
|
||||
<DiscreteBooleanKeyFrame KeyTime="0" Value="False"/>
|
||||
</BooleanAnimationUsingKeyFrames>
|
||||
<BooleanAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="algo_editor_scroll_viewer"
|
||||
Storyboard.TargetProperty="(UIElement.IsEnabled)">
|
||||
<DiscreteBooleanKeyFrame KeyTime="0" Value="False"/>
|
||||
</BooleanAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="edit_pane"
|
||||
Storyboard.TargetProperty="(FrameworkElement.ToolTip).(UIElement.Visibility)">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
|
||||
<Grid.ToolTip>
|
||||
<ToolTip Visibility="Collapsed">
|
||||
<StackPanel Orientation="Vertical">
|
||||
<TextBlock FontStyle="Italic">Select an existing algo to edit from the list to the left.</TextBlock>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock FontStyle="Italic">Or click the</TextBlock>
|
||||
<Image Source="{x:Static u:Icons.AddBoxes}" Height="20" Margin="2,0"/>
|
||||
<TextBlock FontStyle="Italic"> button to create a new one.</TextBlock>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</ToolTip>
|
||||
</Grid.ToolTip>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="27"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Rectangle
|
||||
Grid.ColumnSpan="3"
|
||||
VerticalAlignment="Stretch"
|
||||
HorizontalAlignment="Stretch"
|
||||
Fill="{u:BTSBrush UI.dialog_skirt}"
|
||||
UseLayoutRounding="True" />
|
||||
|
||||
<Button
|
||||
x:Name="custom_badge_color_picker_button"
|
||||
Background="{Binding selected_definition.badge_fill}"
|
||||
Margin="{StaticResource Margin.LP1}"
|
||||
ToolTip="Change the icon color used for this algo."
|
||||
IsEnabled="True"
|
||||
Style="{StaticResource CustomBadgeColorPickerButtonStyle}" />
|
||||
|
||||
<Popup
|
||||
x:Name="custom_badge_color_picker_popup"
|
||||
StaysOpen="False"
|
||||
PlacementTarget="{Binding ElementName=custom_badge_color_picker_button}"
|
||||
Placement="Right">
|
||||
<Border Style="{StaticResource CustomBadgeColorPickerPopupRootStyle}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<CheckBox
|
||||
x:Name="default_badge_color_checkbox"
|
||||
VerticalAlignment="Center"
|
||||
VerticalContentAlignment="Center"
|
||||
Margin="6,4,0,4"
|
||||
IsChecked="{Binding
|
||||
selected_definition.custom_badge_color.enabled,
|
||||
Converter={StaticResource NotConverter}}">
|
||||
<CheckBox.ToolTip>
|
||||
<TextBlock>
|
||||
<Run>Use the default icon color for this algo.</Run>
|
||||
<LineBreak/>
|
||||
<Run FontStyle="Italic">Hint: the default color is that of the algo-root.</Run>
|
||||
</TextBlock>
|
||||
</CheckBox.ToolTip>
|
||||
<Grid x:Name="default_badge_content_root">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock>Use Default Icon</TextBlock>
|
||||
<Rectangle
|
||||
x:Name="default_badge"
|
||||
Grid.Column="1"
|
||||
Margin="{StaticResource Margin.LP1}"
|
||||
Fill="{Binding
|
||||
selected_definition.algo_root.meta.Color,
|
||||
Converter={StaticResource ColorToBrushConverter}}"
|
||||
Style="{StaticResource RectangleBadgeStyle}" />
|
||||
</Grid>
|
||||
</CheckBox>
|
||||
<cp:ColorPickerControl
|
||||
Grid.Row="1"
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
Margin="{StaticResource Margin.TP1}"
|
||||
Background="Transparent"
|
||||
Palettes="{Binding
|
||||
DataContext.selected_definition.custom_badge_color_palettes,
|
||||
RelativeSource={RelativeSource AncestorType=Popup}}"
|
||||
SelectedColor="{Binding
|
||||
DataContext.selected_definition.custom_badge_color.value,
|
||||
RelativeSource={RelativeSource AncestorType=Popup}, Mode=TwoWay}"
|
||||
PreviewMouseDown="_on_badge_color_picker_activated"
|
||||
PreviewGotKeyboardFocus="_on_badge_color_picker_activated"
|
||||
/>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Popup>
|
||||
|
||||
<TextBox
|
||||
x:Name="name_text_box"
|
||||
Grid.Column="1"
|
||||
u:TextBoxBehavior.TextPrompt="Name"
|
||||
Margin="{StaticResource Margin.LP1}"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Center"
|
||||
MinWidth="50"
|
||||
IsEnabled="True"
|
||||
Text="{Binding selected_definition.name, UpdateSourceTrigger=PropertyChanged, Delay=25}"
|
||||
ToolTip="This algo's full name."
|
||||
Style="{StaticResource TextBox.Dark}" />
|
||||
|
||||
<TextBox
|
||||
x:Name="abbreviation_text_box"
|
||||
Grid.Column="2"
|
||||
u:TextBoxBehavior.TextPrompt="Abbrev."
|
||||
VerticalAlignment="Center"
|
||||
Margin="{StaticResource Margin.LP1_RP1}"
|
||||
MinWidth="50"
|
||||
IsEnabled="True"
|
||||
Text="{Binding selected_definition.abbreviation, UpdateSourceTrigger=PropertyChanged, Delay=25}"
|
||||
Style="{StaticResource TextBox.Dark}">
|
||||
<TextBox.ToolTip>
|
||||
<TextBlock>
|
||||
<TextBlock.Inlines>
|
||||
<Run>Specify an abbreviation for this algo to use in ladder algo 'favorite' buttons.</Run>
|
||||
<LineBreak/>
|
||||
<Run FontStyle="Italic">
|
||||
Hint: To add/remove algos from 'favorites', open the ladder settings dialog and select the 'Algo Favorites' tab.
|
||||
</Run>
|
||||
</TextBlock.Inlines>
|
||||
</TextBlock>
|
||||
</TextBox.ToolTip>
|
||||
</TextBox>
|
||||
|
||||
<ScrollViewer
|
||||
x:Name="algo_editor_scroll_viewer"
|
||||
Grid.Row="1"
|
||||
Grid.ColumnSpan="3"
|
||||
VerticalScrollBarVisibility="Auto">
|
||||
<usp:AlgoEditorView
|
||||
DataContext="{Binding selected_definition}"
|
||||
Background="Transparent"
|
||||
BorderBrush="{Binding algo_root, Converter={StaticResource OrderTypeBrushConverter}}"
|
||||
Padding="12,8" />
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
|
||||
<c:DialogSkirt
|
||||
Grid.Row="2"
|
||||
Grid.Column="1"
|
||||
BorderThickness="0">
|
||||
<c:DialogSkirt.RightItems>
|
||||
<x:Array Type="{x:Type Button}">
|
||||
<Button
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
Margin="{StaticResource DialogSkirtButtonMargin}"
|
||||
Command="{Binding save_cmd}"
|
||||
CommandParameter="{Binding selected_definition}"
|
||||
Width="90"
|
||||
ToolTip="{Binding save_cmd_tooltip}"
|
||||
IsDefault="True"
|
||||
Content="Save Algo" />
|
||||
<Button
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
Margin="{StaticResource DialogSkirtButtonMargin}"
|
||||
Command="{Binding revert_cmd}"
|
||||
CommandParameter="{Binding selected_definition}"
|
||||
Width="90"
|
||||
ToolTip="{Binding revert_cmd_tooltip}"
|
||||
Content="Revert Algo" />
|
||||
</x:Array>
|
||||
</c:DialogSkirt.RightItems>
|
||||
</c:DialogSkirt>
|
||||
</Grid>
|
||||
</AdornerDecorator>
|
||||
</UserControl>
|
||||
@@ -1,120 +1,141 @@
|
||||
<UserControl
|
||||
x:Class="mbts.ui.spark.AlgoEditorView"
|
||||
x:ClassModifier="internal"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sp="clr-namespace:mbts.spark"
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
xmlns:cv="clr-namespace:mbts.ui.converters"
|
||||
xmlns:usp="clr-namespace:mbts.ui.spark"
|
||||
xmlns:uag="clr-namespace:mbts.ui.spark.algo"
|
||||
xmlns:uspcv="clr-namespace:mbts.ui.spark.converters"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
>
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="/view/Controls/Order/AlgoPickerNodeView.xaml"/>
|
||||
<ResourceDictionary Source="/view/Controls/Order/AlgoContentTemplateSelector.xaml"/>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
<!--Primitive Constants-->
|
||||
<sys:Double x:Key="HorizontalPush1">4</sys:Double>
|
||||
<sys:Double x:Key="HorizontalPush2">8</sys:Double>
|
||||
<sys:Double x:Key="HorizontalPush3">12</sys:Double>
|
||||
<sys:Double x:Key="VerticalPush1">4</sys:Double>
|
||||
<sys:Double x:Key="VerticalPush2">8</sys:Double>
|
||||
<sys:Double x:Key="VerticalPush3">12</sys:Double>
|
||||
<Thickness x:Key="Margin.LP1" Left="{StaticResource HorizontalPush1}"/>
|
||||
<Thickness x:Key="Margin.LP2" Left="{StaticResource HorizontalPush2}"/>
|
||||
<Thickness x:Key="Margin.LP3" Left="{StaticResource HorizontalPush3}"/>
|
||||
<Thickness x:Key="Margin.TP1" Top="{StaticResource VerticalPush1}"/>
|
||||
<Thickness x:Key="Margin.TP2" Top="{StaticResource VerticalPush2}"/>
|
||||
<!--Converters-->
|
||||
<uspcv:OrderTypeBrushConverter x:Key="OrderTypeBrushConverter" DefaultBrush="Transparent"/>
|
||||
<!--Default Styles-->
|
||||
<Style x:Key="ContentHostGroupBoxStyle" TargetType="GroupBox">
|
||||
<Setter Property="Padding" Value="8"/>
|
||||
</Style>
|
||||
<Style TargetType="TextBox">
|
||||
<Setter Property="u:TextBoxBehavior.EnterKeyBehavior" Value="CommitAndRelease"/>
|
||||
<Setter Property="u:TextBoxBehavior.ReleaseOnEscape" Value="True"/>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="uag:AlgoPickerNodeView" BasedOn="{StaticResource {x:Type uag:AlgoPickerNodeView}}">
|
||||
<Setter Property="DropDownStyleKey" Value="{Binding DataContext, RelativeSource={RelativeSource AncestorType=usp:AlgoEditorView}, Converter={x:Static usp:AlgoContentTemplateSelector.AlgoDropDownStyleKeyConverter}}"/>
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
</UserControl.Resources>
|
||||
<GroupBox
|
||||
x:Name="content_host"
|
||||
Grid.Row="2"
|
||||
Background="Transparent"
|
||||
BorderBrush="{Binding algo_root, Converter={StaticResource OrderTypeBrushConverter}}"
|
||||
Margin="0,6,0,0"
|
||||
Padding="12,8"
|
||||
>
|
||||
<GroupBox.Style>
|
||||
<Style TargetType="GroupBox" BasedOn="{StaticResource ContentHostGroupBoxStyle}">
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="BorderBrush" Value="Transparent"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="BorderBrush" Value="Transparent">
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="usp:AlgoEditorView.IsMouseOverNodeContent" Value="True">
|
||||
<Setter Property="BorderThickness" Value="2"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</GroupBox.Style>
|
||||
<GroupBox.Header>
|
||||
<ComboBox
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
Width="140"
|
||||
Margin="{StaticResource Margin.LP1}"
|
||||
ItemsSource="{Binding algos_view}"
|
||||
SelectedItem="{Binding algo_root}"
|
||||
>
|
||||
<ComboBox.Style>
|
||||
<Style TargetType="ComboBox">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding templates.Count, Converter={StaticResource IntIsZeroConverter}, FallbackValue={u:False}}" Value="{u:True}">
|
||||
<Setter Property="IsEnabled" Value="True"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding templates.Count, Converter={StaticResource IntIsZeroConverter}, FallbackValue={u:False}}" Value="{u:False}">
|
||||
<Setter Property="IsEnabled" Value="False"/>
|
||||
<Setter Property="ToolTip" Value="Cannot change structure while templates are present."/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</ComboBox.Style>
|
||||
<ComboBox.IsEnabled>
|
||||
<Binding Path="editing_permissions">
|
||||
<Binding.Converter>
|
||||
<cv:EnumHasFlagsConverter>
|
||||
<sp:AlgoEditingPermissions>AllowEditStructure</sp:AlgoEditingPermissions>
|
||||
</cv:EnumHasFlagsConverter>
|
||||
</Binding.Converter>
|
||||
</Binding>
|
||||
</ComboBox.IsEnabled>
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<usp:OrderTypeItem DisplayName="{Binding display_name}" BadgeFill="{Binding meta.Color, Converter={StaticResource ColorToBrushConverter}}"/>
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
</GroupBox.Header>
|
||||
<ContentControl
|
||||
Grid.IsSharedSizeScope="True"
|
||||
Content="{Binding algo_root}"
|
||||
ContentTemplateSelector="{StaticResource AlgoTemplateSelector}"
|
||||
Margin="{StaticResource Margin.TP1}"
|
||||
Visibility="{Binding algo_root.can_expand, Converter={StaticResource BooleanToVisibilityConverter}}"
|
||||
IsTabStop="False"
|
||||
>
|
||||
<ContentControl.Resources>
|
||||
<Style TargetType="GroupBox" BasedOn="{StaticResource ContentHostGroupBoxStyle}"/>
|
||||
</ContentControl.Resources>
|
||||
</ContentControl>
|
||||
</GroupBox>
|
||||
</UserControl>
|
||||
<UserControl
|
||||
x:Class="mbts.ui.spark.AlgoEditorView"
|
||||
x:ClassModifier="internal"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sp="clr-namespace:mbts.spark"
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
xmlns:cv="clr-namespace:mbts.ui.converters"
|
||||
xmlns:usp="clr-namespace:mbts.ui.spark"
|
||||
xmlns:uag="clr-namespace:mbts.ui.spark.algo"
|
||||
xmlns:uspcv="clr-namespace:mbts.ui.spark.converters"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib">
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="/view/Controls/Order/AlgoPickerNodeView.xaml"/>
|
||||
<ResourceDictionary Source="/view/Controls/Order/AlgoContentTemplateSelector.xaml"/>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<!--Primitive Constants-->
|
||||
<sys:Double x:Key="HorizontalPush1">4</sys:Double>
|
||||
<sys:Double x:Key="HorizontalPush2">8</sys:Double>
|
||||
<sys:Double x:Key="HorizontalPush3">12</sys:Double>
|
||||
<sys:Double x:Key="VerticalPush1">4</sys:Double>
|
||||
<sys:Double x:Key="VerticalPush2">8</sys:Double>
|
||||
<sys:Double x:Key="VerticalPush3">12</sys:Double>
|
||||
<Thickness x:Key="Margin.LP1" Left="{StaticResource HorizontalPush1}"/>
|
||||
<Thickness x:Key="Margin.LP2" Left="{StaticResource HorizontalPush2}"/>
|
||||
<Thickness x:Key="Margin.LP3" Left="{StaticResource HorizontalPush3}"/>
|
||||
<Thickness x:Key="Margin.TP1" Top="{StaticResource VerticalPush1}"/>
|
||||
<Thickness x:Key="Margin.TP2" Top="{StaticResource VerticalPush2}"/>
|
||||
|
||||
<!--Converters-->
|
||||
<uspcv:OrderTypeBrushConverter x:Key="OrderTypeBrushConverter" DefaultBrush="Transparent"/>
|
||||
|
||||
<!--Default Styles-->
|
||||
<Style x:Key="ContentHostGroupBoxStyle" TargetType="GroupBox">
|
||||
<Setter Property="Padding" Value="8"/>
|
||||
</Style>
|
||||
<Style TargetType="TextBox">
|
||||
<Setter Property="u:TextBoxBehavior.EnterKeyBehavior" Value="CommitAndRelease"/>
|
||||
<Setter Property="u:TextBoxBehavior.ReleaseOnEscape" Value="True"/>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="uag:AlgoPickerNodeView" BasedOn="{StaticResource {x:Type uag:AlgoPickerNodeView}}">
|
||||
<Setter
|
||||
Property="DropDownStyleKey"
|
||||
Value="{Binding
|
||||
DataContext,
|
||||
RelativeSource={RelativeSource AncestorType=usp:AlgoEditorView},
|
||||
Converter={x:Static usp:AlgoContentTemplateSelector.AlgoDropDownStyleKeyConverter}}" />
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
</UserControl.Resources>
|
||||
|
||||
<GroupBox
|
||||
x:Name="content_host"
|
||||
Grid.Row="2"
|
||||
Background="Transparent"
|
||||
BorderBrush="{Binding algo_root, Converter={StaticResource OrderTypeBrushConverter}}"
|
||||
Margin="0,6,0,0"
|
||||
Padding="12,8">
|
||||
<GroupBox.Style>
|
||||
<Style TargetType="GroupBox" BasedOn="{StaticResource ContentHostGroupBoxStyle}">
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="BorderBrush" Value="Transparent"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="BorderBrush" Value="Transparent">
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="usp:AlgoEditorView.IsMouseOverNodeContent" Value="True">
|
||||
<Setter Property="BorderThickness" Value="2"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</GroupBox.Style>
|
||||
|
||||
<GroupBox.Header>
|
||||
<ComboBox
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
Width="140"
|
||||
Margin="{StaticResource Margin.LP1}"
|
||||
ItemsSource="{Binding algos_view}"
|
||||
SelectedItem="{Binding algo_root}">
|
||||
<ComboBox.Style>
|
||||
<Style TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger
|
||||
Binding="{Binding
|
||||
templates.Count,
|
||||
Converter={StaticResource IntIsZeroConverter},
|
||||
FallbackValue={u:False}}"
|
||||
Value="{u:True}">
|
||||
<Setter Property="IsEnabled" Value="True"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger
|
||||
Binding="{Binding
|
||||
templates.Count,
|
||||
Converter={StaticResource IntIsZeroConverter},
|
||||
FallbackValue={u:False}}"
|
||||
Value="{u:False}">
|
||||
<Setter Property="IsEnabled" Value="False"/>
|
||||
<Setter Property="ToolTip" Value="Cannot change structure while templates are present."/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</ComboBox.Style>
|
||||
|
||||
<ComboBox.IsEnabled>
|
||||
<Binding Path="editing_permissions">
|
||||
<Binding.Converter>
|
||||
<cv:EnumHasFlagsConverter>
|
||||
<sp:AlgoEditingPermissions>AllowEditStructure</sp:AlgoEditingPermissions>
|
||||
</cv:EnumHasFlagsConverter>
|
||||
</Binding.Converter>
|
||||
</Binding>
|
||||
</ComboBox.IsEnabled>
|
||||
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<usp:OrderTypeItem
|
||||
DisplayName="{Binding display_name}"
|
||||
BadgeFill="{Binding meta.Color, Converter={StaticResource ColorToBrushConverter}}" />
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
</GroupBox.Header>
|
||||
|
||||
<ContentControl
|
||||
Grid.IsSharedSizeScope="True"
|
||||
Content="{Binding algo_root}"
|
||||
ContentTemplateSelector="{StaticResource AlgoTemplateSelector}"
|
||||
Margin="{StaticResource Margin.TP1}"
|
||||
Visibility="{Binding algo_root.can_expand, Converter={StaticResource BooleanToVisibilityConverter}}"
|
||||
IsTabStop="False">
|
||||
<ContentControl.Resources>
|
||||
<Style TargetType="GroupBox" BasedOn="{StaticResource ContentHostGroupBoxStyle}"/>
|
||||
</ContentControl.Resources>
|
||||
</ContentControl>
|
||||
</GroupBox>
|
||||
</UserControl>
|
||||
@@ -11,7 +11,7 @@
|
||||
xmlns:trading="clr-namespace:Spark.Trading"
|
||||
u:WindowStyle.UnsafeWindow="{Binding Path='(u:WindowStyle.UnsafeWindow)', RelativeSource={RelativeSource AncestorType=bv:SparkWindowView}}"
|
||||
FocusManager.IsFocusScope="True"
|
||||
Background="{StaticResource CommonBackground}">
|
||||
Background="{u:BTSColor DayFills.background}">
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
|
||||
@@ -7,6 +7,7 @@ namespace mbts.spark {
|
||||
using mbts.ui.controls;
|
||||
|
||||
using System;
|
||||
using System.Windows.Media;
|
||||
|
||||
using ColKey = ui.spark.FillsView.Columns;
|
||||
|
||||
@@ -42,8 +43,16 @@ namespace mbts.spark {
|
||||
IDataGridColumnPersistentFilter<FillTuple, TColFilter> filter_model,
|
||||
Func<FillsFilterStates, TColFilter> get_col_filter,
|
||||
Action<FillsFilterStates, TColFilter> set_col_filter,
|
||||
string? filter_template = null)
|
||||
: base(key, get_text, filter_model, filter_template) {
|
||||
string? filter_template = null,
|
||||
Func<FillsRowVM, Brush>? get_background = null,
|
||||
Func<FillsRowVM, Brush>? get_foreground = null)
|
||||
: base(
|
||||
key,
|
||||
get_text,
|
||||
filter_model,
|
||||
filter_template,
|
||||
get_background: get_background,
|
||||
get_foreground: get_foreground) {
|
||||
id = key.ToString();
|
||||
_get_col_filter = get_col_filter;
|
||||
_set_col_filter = set_col_filter;
|
||||
|
||||
@@ -233,7 +233,8 @@ namespace mbts.spark {
|
||||
DataGridFilterKnownTemplates.UIntMinMax,
|
||||
fs => fs.size,
|
||||
(fs, cf) => fs.size = cf,
|
||||
DefaultColumnWidths.Qty);
|
||||
DefaultColumnWidths.Qty,
|
||||
get_fg: r => r.side == Side.Buy ? BTSColors.MarketData.bid : BTSColors.MarketData.ask);
|
||||
|
||||
add_col(
|
||||
Columns.Price,
|
||||
@@ -243,7 +244,8 @@ namespace mbts.spark {
|
||||
DataGridFilterKnownTemplates.DoubleMinMax,
|
||||
fs => fs.price,
|
||||
(fs, cf) => fs.price = cf,
|
||||
DefaultColumnWidths.Price);
|
||||
DefaultColumnWidths.Price,
|
||||
get_fg: r => r.side == Side.Buy ? BTSColors.MarketData.bid : BTSColors.MarketData.ask);
|
||||
|
||||
add_col(
|
||||
Columns.FillKind,
|
||||
@@ -394,14 +396,18 @@ namespace mbts.spark {
|
||||
string filter_template,
|
||||
Func<FillsFilterStates, TFilter> get_col_filter,
|
||||
Action<FillsFilterStates, TFilter> set_col_filter,
|
||||
double width) =>
|
||||
double width,
|
||||
Func<FillsRowVM, Brush>? get_fg = null,
|
||||
Func<FillsRowVM, Brush>? get_bg = null) =>
|
||||
_columns.Add(new FillsColumn<TFilter>(
|
||||
col_key,
|
||||
r => get_text(r.fill_tuple),
|
||||
filter_model,
|
||||
get_col_filter,
|
||||
set_col_filter,
|
||||
filter_template) {
|
||||
filter_template,
|
||||
get_background: get_bg,
|
||||
get_foreground: get_fg) {
|
||||
Header = header,
|
||||
Width = width
|
||||
});
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
xmlns:api="clr-namespace:bts.api;assembly=spark_api"
|
||||
FocusManager.IsFocusScope="True"
|
||||
Background="{StaticResource CommonBackground}"
|
||||
Background="{u:BTSBrush UI.common_background}"
|
||||
>
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
@@ -54,7 +54,7 @@
|
||||
</c:DIYGrid.RowStyle>
|
||||
<c:DIYGrid.RowTemplate>
|
||||
<DataTemplate>
|
||||
<usp:FillsRowView Background="{Binding side, Converter={StaticResource SideToBrushConverter}}"/>
|
||||
<usp:FillsRowView />
|
||||
</DataTemplate>
|
||||
</c:DIYGrid.RowTemplate>
|
||||
</c:DIYGrid>
|
||||
|
||||
@@ -40,24 +40,43 @@ namespace mbts.spark {
|
||||
width = 50,
|
||||
font_family = "Segoe UI",
|
||||
font_size = 10,
|
||||
font_weight = FontWeights.SemiBold.ToOpenTypeWeight()
|
||||
font_weight = FontWeights.SemiBold.ToOpenTypeWeight(),
|
||||
background = BTSColors.Ladder.default_column_background,
|
||||
};
|
||||
|
||||
public static LadderColumnSettings DefaultOrderColumnSettings => new LadderColumnSettings {
|
||||
show = true,
|
||||
width = 70,
|
||||
font_family = "Segoe UI",
|
||||
font_size = 10,
|
||||
font_weight = FontWeights.SemiBold.ToOpenTypeWeight()
|
||||
};
|
||||
public static LadderColumnSettings default_bid =>
|
||||
Default.with(
|
||||
foreground: BTSColors.Ladder.bid_column_foreground,
|
||||
background: BTSColors.Ladder.bid_column_background);
|
||||
|
||||
public static LadderColumnSettings DefaultPiqColumnSettings => new LadderColumnSettings {
|
||||
show = false,
|
||||
width = 50,
|
||||
font_family = "Segoe UI",
|
||||
font_size = 10,
|
||||
font_weight = FontWeights.SemiBold.ToOpenTypeWeight()
|
||||
};
|
||||
public static LadderColumnSettings default_orders =>
|
||||
Default.with(
|
||||
width: 70,
|
||||
foreground: BTSColors.Ladder.orders_column_foreground,
|
||||
background: BTSColors.Ladder.orders_column_background);
|
||||
|
||||
public static LadderColumnSettings default_last =>
|
||||
Default.with(
|
||||
foreground: BTSColors.Ladder.last_column_foreground,
|
||||
background: BTSColors.Ladder.last_column_background);
|
||||
|
||||
public static LadderColumnSettings default_volume =>
|
||||
Default.with(
|
||||
foreground: BTSColors.Ladder.volume_column_foreground,
|
||||
background: BTSColors.Ladder.volume_column_background);
|
||||
|
||||
public static LadderColumnSettings default_ask =>
|
||||
Default.with(
|
||||
foreground: BTSColors.Ladder.ask_column_foreground,
|
||||
background: BTSColors.Ladder.ask_column_background);
|
||||
|
||||
public static LadderColumnSettings default_price =>
|
||||
Default.with(
|
||||
foreground: BTSColors.Ladder.price_column_foreground,
|
||||
background: BTSColors.Ladder.price_column_background);
|
||||
|
||||
public static LadderColumnSettings default_piq =>
|
||||
Default.with(show: false);
|
||||
|
||||
[ProtoMember(1)]
|
||||
public bool show { get; set; }
|
||||
@@ -75,6 +94,24 @@ namespace mbts.spark {
|
||||
[ProtoMember(7)]
|
||||
public int font_weight { get; set; }
|
||||
|
||||
public LadderColumnSettings with(
|
||||
bool? show = null,
|
||||
uint? width = null,
|
||||
uint? background = null,
|
||||
uint? foreground = null,
|
||||
string font_family = null,
|
||||
double? font_size = null,
|
||||
int? font_weight = null) =>
|
||||
new() {
|
||||
show = show ?? this.show,
|
||||
width = width ?? this.width,
|
||||
background = background ?? this.background,
|
||||
foreground = foreground ?? this.foreground,
|
||||
font_family = font_family ?? this.font_family,
|
||||
font_size = font_size ?? this.font_size,
|
||||
font_weight = font_weight ?? this.font_weight
|
||||
};
|
||||
|
||||
public bool Equals(LadderColumnSettings other) =>
|
||||
other != null &&
|
||||
other.width == width &&
|
||||
@@ -131,13 +168,13 @@ namespace mbts.spark {
|
||||
get {
|
||||
var gen = LadderColumnSettings.Default;
|
||||
gen.show = false;
|
||||
gen.background = BTSColors.LadderSpecial.default_column_background;
|
||||
gen.background = BTSColors.Ladder.volume_column_background;
|
||||
return new VolumeColumnSettings {
|
||||
general = gen,
|
||||
buy = new HistogramBarAnimation { bars = new ColorShowProto((uint)BTSColors.MarketData.bid, false) },
|
||||
sell = new HistogramBarAnimation { bars = new ColorShowProto((uint)BTSColors.MarketData.ask, false) },
|
||||
passive = new HistogramBarAnimation { bars = new ColorShowProto((uint)BTSColors.LadderSpecial.passive_volume_bar, false) },
|
||||
total = new HistogramBarAnimation { bars = new ColorShowProto((uint)BTSColors.LadderSpecial.total_volume_bar), show_numbers = true },
|
||||
passive = new HistogramBarAnimation { bars = new ColorShowProto((uint)BTSColors.Ladder.passive_volume_bar, false) },
|
||||
total = new HistogramBarAnimation { bars = new ColorShowProto((uint)BTSColors.Ladder.total_volume_bar), show_numbers = true },
|
||||
show_ltq = false
|
||||
};
|
||||
}
|
||||
@@ -439,7 +476,7 @@ namespace mbts.spark {
|
||||
|
||||
static FontParamsProto _default_font =>
|
||||
new FontParamsProto {
|
||||
font_color = Colors.Black.rgb_color(),
|
||||
font_color = BTSColors.UI.default_text,
|
||||
font_size = FontSizes.Regular,
|
||||
typeface = new TypefaceProto(TextUtils.StandardFontFamilyName, FontWeights.Bold.ToOpenTypeWeight())
|
||||
};
|
||||
@@ -575,20 +612,12 @@ namespace mbts.spark {
|
||||
public static LadderSettings historic_default {
|
||||
get {
|
||||
LadderColumnSettings
|
||||
orders_column = LadderColumnSettings.DefaultOrderColumnSettings,
|
||||
bid_column = LadderColumnSettings.Default,
|
||||
ask_column = LadderColumnSettings.Default,
|
||||
price_column = LadderColumnSettings.Default,
|
||||
last_column = LadderColumnSettings.Default,
|
||||
piq_column = LadderColumnSettings.DefaultPiqColumnSettings;
|
||||
orders_column.background = BTSColors.LadderSpecial.default_column_background;
|
||||
bid_column.foreground = 0xFFFFFFFF;
|
||||
bid_column.background = BTSColors.MarketData.bid;
|
||||
ask_column.foreground = 0xFFFFFFFF;
|
||||
ask_column.background = BTSColors.MarketData.ask;
|
||||
price_column.background = BTSColors.LadderSpecial.default_column_background;
|
||||
last_column.background = 0xFFFFFFFF;
|
||||
piq_column.background = BTSColors.LadderSpecial.default_column_background;
|
||||
orders_column = LadderColumnSettings.default_orders,
|
||||
bid_column = LadderColumnSettings.default_bid,
|
||||
ask_column = LadderColumnSettings.default_ask,
|
||||
price_column = LadderColumnSettings.default_price,
|
||||
last_column = LadderColumnSettings.default_last,
|
||||
piq_column = LadderColumnSettings.default_piq;
|
||||
var rv = new LadderSettings {
|
||||
row_height = 22,
|
||||
grid_line_color = 0x535353,
|
||||
@@ -605,9 +634,9 @@ namespace mbts.spark {
|
||||
default_algo = new AlgoID(CustomOrderDefinition.CustomOneofCase.Limit),
|
||||
animate_recenter = true,
|
||||
badge_style = BadgeStyle.Normal,
|
||||
bid_break_line = new LadderMarketBreakLine { color = 0, show = true },
|
||||
ask_break_line = new LadderMarketBreakLine { color = 0, show = false },
|
||||
mid_break_line = new LadderMarketBreakLine { color = 0, show = false },
|
||||
bid_break_line = new LadderMarketBreakLine { color = BTSColors.Ladder.bid_line, show = true },
|
||||
ask_break_line = new LadderMarketBreakLine { color = BTSColors.Ladder.ask_line, show = false },
|
||||
mid_break_line = new LadderMarketBreakLine { color = BTSColors.Ladder.mid_line, show = false },
|
||||
session_low_line = new LadderMarketBreakLine { color = BTSColors.MarketData.session_low, show = true },
|
||||
session_high_line = new LadderMarketBreakLine { color = BTSColors.MarketData.session_high, show = true },
|
||||
session_range_fill = new LadderMarketBreakLine { color = BTSColors.MarketData.session_range_fill, show = true },
|
||||
@@ -645,24 +674,7 @@ namespace mbts.spark {
|
||||
}
|
||||
}
|
||||
|
||||
public static LadderSettings tt_default {
|
||||
get {
|
||||
var rv = historic_default;
|
||||
rv.orders_column.background = Color.FromRgb(223, 223, 223).rgb_color();
|
||||
// Since the price column sits atop the session range fill in tt
|
||||
// mode (normally it is the other way around), the former is made
|
||||
// partially translucent while the latter is fully opaque (obv the
|
||||
// top layer cannot be opaque, since it would completely hide the
|
||||
// layer beneath it).
|
||||
rv.session_range_fill.color = rv.session_range_fill.color.rgb_color().with(255).rgb_color();
|
||||
rv.price_column.background = Color.FromArgb(226, 166, 166, 166).rgb_color();
|
||||
rv.price_column.foreground = Colors.White.rgb_color();
|
||||
rv.bid_column.background = Color.FromRgb(0, 30, 160).rgb_color();
|
||||
rv.ask_column.background = Color.FromRgb(160, 0, 0).rgb_color();
|
||||
rv.ask_column.foreground = Colors.Black.rgb_color();
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
public static LadderSettings tt_default => historic_default;
|
||||
|
||||
public static LadderSettings Default => mimic_tt ?
|
||||
tt_default : historic_default;
|
||||
|
||||
@@ -19,10 +19,12 @@ namespace mbts.spark {
|
||||
|
||||
using Spark.Api.Position;
|
||||
using Spark.Core;
|
||||
using Spark.Core.Disposables;
|
||||
using Spark.Core.Collections;
|
||||
using Spark.Core.Data;
|
||||
using Spark.Core.Disposables;
|
||||
using Spark.Trading;
|
||||
using Spark.ViewModel.Commands;
|
||||
using Spark.ViewModel.Trading;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -35,7 +37,6 @@ namespace mbts.spark {
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using Spark.Trading;
|
||||
|
||||
class LadderVM : DisposableViewModelBase, IWillLetYouKnowWhenIDispose, IKeyListener {
|
||||
static readonly Brush _transparent_status_brush = BTSColors.UI.transparent;
|
||||
@@ -233,7 +234,8 @@ namespace mbts.spark {
|
||||
size_calculator.value = pos.abs();
|
||||
});
|
||||
send_order_cmd = new AsyncCommand<(double price, Side? side, MouseButton button)>(send_order_async);
|
||||
send_rfq_cmd = new Command(_send_rfq);
|
||||
rfq_vm = new(security.Id);
|
||||
rfq_vm.request_commit += _send_rfq;
|
||||
cancel_cmd = new AsyncCommand<LadderModel.CancelType>(_model.cancel_orders, true);
|
||||
show_book_cmd = new Command(_show_book);
|
||||
show_ticket_cmd = new Command(_show_ticket);
|
||||
@@ -567,9 +569,10 @@ namespace mbts.spark {
|
||||
public double actual_alternate_order_size =>
|
||||
(current_settings?.alternate_order_size ?? 0) * Math.Max(1, display_quantity_divisor);
|
||||
|
||||
public RFQCreationVM rfq_vm { get; }
|
||||
|
||||
public IAsyncCommand cancel_cmd { get; }
|
||||
public ICommand send_order_cmd { get; }
|
||||
public ICommand send_rfq_cmd { get; }
|
||||
public ICommand show_book_cmd { get; }
|
||||
public ICommand show_ticket_cmd { get; }
|
||||
public ICommand settings_cmd { get; }
|
||||
@@ -862,12 +865,8 @@ namespace mbts.spark {
|
||||
_misc_time = _model.md.misc_timestamp;
|
||||
}
|
||||
|
||||
void _send_rfq() =>
|
||||
_bus.post(SparkTags.RFQSend, new(new() {
|
||||
Security = new() {
|
||||
SecurityId = security.Id
|
||||
}
|
||||
}));
|
||||
void _send_rfq(RFQRequestImmutable req) =>
|
||||
_bus.post(SparkTags.RFQSend, req);
|
||||
|
||||
void _show_book() {
|
||||
var ob_settings = bts.shell.orderbook.OrderBookStartupData.Default;
|
||||
|
||||
@@ -110,9 +110,9 @@ namespace mbts.spark {
|
||||
// range of colors can still be expressed, as zero is merely one of
|
||||
// 2^24 possible representations of 'transparent.'
|
||||
if (knobs.bid_market_cell_background != 0)
|
||||
_bid_market_cell_background = knobs.bid_market_cell_background.argb_color();
|
||||
_bid_market_cell_background = BTSColors.Ladder.bid_column_background;
|
||||
if (knobs.ask_market_cell_background != 0)
|
||||
_ask_market_cell_background = knobs.ask_market_cell_background.argb_color();
|
||||
_ask_market_cell_background = BTSColors.Ladder.ask_column_background;
|
||||
}
|
||||
|
||||
public LadderGridHost() {
|
||||
@@ -124,6 +124,7 @@ namespace mbts.spark {
|
||||
scrollViewerFactory.SetValue(FocusableProperty, false);
|
||||
if (!_show_scrollbar)
|
||||
scrollViewerFactory.SetValue(ScrollViewer.VerticalScrollBarVisibilityProperty, ScrollBarVisibility.Hidden);
|
||||
scrollViewerFactory.SetValue(ScrollViewer.BackgroundProperty, BTSColors.UI.ScrollViewer.background.to_brush());
|
||||
Template = new ControlTemplate() {
|
||||
VisualTree = scrollViewerFactory
|
||||
};
|
||||
@@ -655,7 +656,7 @@ namespace mbts.spark {
|
||||
grid.Children.Add(dialog_skirt);
|
||||
// root
|
||||
var root = new Border {
|
||||
Background = BTSColors.common_background.to_brush(),
|
||||
Background = BTSColors.UI.common_background.to_brush(),
|
||||
BorderBrush = Brushes.DarkGray,
|
||||
BorderThickness = new Thickness(1),
|
||||
Child = grid
|
||||
@@ -1503,10 +1504,10 @@ namespace mbts.spark {
|
||||
_visual_host.AddVisualChild(_session_range_vis);
|
||||
_render_grid_background();
|
||||
_init_tactile_adorner();
|
||||
// this effectively sets the background of the "Last" column
|
||||
if (_scroll_viewer != null) {
|
||||
_scroll_viewer.Background = s.last_column.background.rgb_brush();
|
||||
}
|
||||
// this effectively sets the background of the "Last" column //deleted to fix color
|
||||
// if (_scroll_viewer != null) {
|
||||
// _scroll_viewer.Background = s.last_column.background.rgb_brush();
|
||||
// }
|
||||
scroll_to_pending_target();
|
||||
visible_columns_changed?.Invoke();
|
||||
}
|
||||
|
||||
@@ -225,10 +225,13 @@ namespace mbts.spark {
|
||||
if (market_cell_background.HasValue) {
|
||||
market_cell_background_brush = new SolidColorBrush(market_cell_background.Value);
|
||||
} else if (lighten_market_cells) {
|
||||
market_cell_background_brush = settings.background.rgb_color().blend_with(Colors.White).to_brush();
|
||||
market_cell_background_brush = settings.background.rgb_color()
|
||||
.blend((BTSColor)0x2AFFFFFF)
|
||||
.to_brush();
|
||||
} else {
|
||||
market_cell_background_brush = null;
|
||||
}
|
||||
// market_cell_background_brush = settings.background.rgb_color().blend((BTSColor)0xFF000000).to_brush();
|
||||
using (var dc = dv.RenderOpen())
|
||||
using (_draw_with_clip(dc, settings, row_height, prices.Count)) {
|
||||
//dc.DrawRectangle(background, null, new Rect(0, 0, settings.width, prices.Count * row_height));
|
||||
@@ -318,7 +321,7 @@ namespace mbts.spark {
|
||||
// if we have to change the brush to indicate this is the last, save brush, draw, then restore brush
|
||||
var temp = total_brush;
|
||||
if (settings.show_ltq && last_trade_here) {
|
||||
total_brush = BTSColors.yellow.to_brush();
|
||||
total_brush = BTSCoreColors.urobilin.to_brush();
|
||||
}
|
||||
render_bar(dc, 0, y, vap.Volume, total_brush, out double _);
|
||||
total_brush = temp;
|
||||
@@ -329,7 +332,7 @@ namespace mbts.spark {
|
||||
uint v = get_volume(vap);
|
||||
double width;
|
||||
if (settings.show_ltq && last_trade_here) {
|
||||
render_bar(dc, x_bar, y, v, BTSColors.yellow.to_brush(), out width);
|
||||
render_bar(dc, x_bar, y, v, BTSCoreColors.urobilin.to_brush(), out width);
|
||||
} else {
|
||||
render_bar(dc, x_bar, y, v, bars, out width);
|
||||
}
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
|
||||
<LinearGradientBrush.GradientStops>
|
||||
<GradientStop Color="Transparent"/>
|
||||
<GradientStop Color="{x:Static u:BTSColors.dialog_skirt}" Offset="1"/>
|
||||
<GradientStop Color="{u:BTSColor UI.dialog_skirt, Type={x:Type Color}}" Offset="1" />
|
||||
</LinearGradientBrush.GradientStops>
|
||||
</LinearGradientBrush>
|
||||
</c:DialogSkirt.Background>
|
||||
|
||||
@@ -38,12 +38,10 @@
|
||||
<Thickness x:Key="MarginIndentChild" Left="{StaticResource IndentChild}"/>
|
||||
<Thickness x:Key="Margin.UP1" Left="{StaticResource HorizontalPush}" Top="{StaticResource VerticalPush}" Right="{StaticResource HorizontalPush}" Bottom="{StaticResource VerticalPush}"/>
|
||||
<!--Colors-->
|
||||
<Color x:Key="LadderColumnDetailsBackgroundColor">LightGray</Color>
|
||||
<Color x:Key="LadderColumnDetailsForegroundColor">Black</Color>
|
||||
<Color x:Key="LadderColumnDetailsBorderColor">Navy</Color>
|
||||
<SolidColorBrush x:Key="LadderColumnDetailsBackgroundBrush" ice:Freeze="True" Color="{StaticResource LadderColumnDetailsBackgroundColor}"/>
|
||||
<SolidColorBrush x:Key="LadderColumnDetailsForegroundBrush" ice:Freeze="True" Color="{StaticResource LadderColumnDetailsForegroundColor}"/>
|
||||
<SolidColorBrush x:Key="LadderColumnDetailsBorderBrush" ice:Freeze="True" Color="{StaticResource LadderColumnDetailsBorderColor}"/>
|
||||
|
||||
<SolidColorBrush x:Key="LadderColumnDetailsBackgroundBrush" ice:Freeze="True" Color="{u:BTSColor Ladder.column_details_background}"/>
|
||||
<SolidColorBrush x:Key="LadderColumnDetailsForegroundBrush" ice:Freeze="True" Color="{u:BTSColor Ladder.column_details_foreground}"/>
|
||||
<SolidColorBrush x:Key="LadderColumnDetailsBorderBrush" ice:Freeze="True" Color="{u:BTSColor Ladder.column_details_border}"/>
|
||||
<!--Converters-->
|
||||
<cv:BooleanToVisibilityConverter x:Key="NetChangeGroupBoxIsVisibleVisibilityConverter" VisibilityForTrue="Hidden" VisibilityForFalse="Visible"/>
|
||||
<cv:ValueMap x:Key="ColumnSpanToVisibilityConverter" Default="{u:Visibility Visible}">
|
||||
@@ -719,9 +717,9 @@
|
||||
</u:TemplateSelectorKeyValue>
|
||||
</u:KeyedTemplateSelector>
|
||||
</UserControl.Resources>
|
||||
<TabControl>
|
||||
<TabControl Style="{StaticResource TabControl.Dark}">
|
||||
<TabControl.ItemContainerStyle>
|
||||
<Style TargetType="TabItem" BasedOn="{StaticResource {x:Type TabItem}}">
|
||||
<Style TargetType="TabItem" BasedOn="{StaticResource TabItem.Dark}">
|
||||
<Setter Property="VerticalAlignment" Value="Stretch"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Top"/>
|
||||
</Style>
|
||||
|
||||
@@ -10,10 +10,11 @@
|
||||
xmlns:uag="clr-namespace:mbts.ui.spark.algo"
|
||||
xmlns:cv="clr-namespace:mbts.ui.converters"
|
||||
xmlns:txt="clr-namespace:mbts.ui.utility.text"
|
||||
xmlns:trading_view="clr-namespace:Spark.View.Trading"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
Height="600"
|
||||
Width="420"
|
||||
Background="{u:BTSBrush common_background}"
|
||||
Background="{u:BTSBrush UI.common_background}"
|
||||
TextElement.FontSize="{x:Static u:FontSizes.Small}">
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
@@ -21,6 +22,7 @@
|
||||
<ResourceDictionary Source="/view/Controls/Order/OrderDetailsPopupControl.xaml"/>
|
||||
<ResourceDictionary Source="/view/Controls/Order/AlgoParamsView.xaml"/>
|
||||
<ResourceDictionary Source="/view/Controls/Order/AlgoTemplateFavoriteButtonsView.xaml"/>
|
||||
<ResourceDictionary Source="/view/Controls/ExpandedContentSelector.xaml"/>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<!-- Converters -->
|
||||
@@ -169,7 +171,7 @@
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="LadderMenuButton" TargetType="Button">
|
||||
<Style x:Key="LadderMenuButton" TargetType="Button" BasedOn="{StaticResource Button.Dark}">
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||
<Setter Property="Margin" Value="2,0,2,5"/>
|
||||
@@ -355,6 +357,7 @@
|
||||
<Style x:Key="LeftPanelPricePointLabel" TargetType="TextBlock">
|
||||
<Setter Property="Margin" Value="0,1,0,4"/>
|
||||
<Setter Property="VerticalAlignment" Value="Top"/>
|
||||
<Setter Property="Foreground" Value="{mbts:BTSColor UI.default_text}" />
|
||||
</Style>
|
||||
<Style x:Key="LeftPanelPricePointBorder" TargetType="Border">
|
||||
<Setter Property="Grid.Column" Value="2"/>
|
||||
@@ -897,7 +900,8 @@
|
||||
DataContext.size_calculator.click,
|
||||
RelativeSource={RelativeSource AncestorType=ItemsControl}}"
|
||||
Content="{Binding}"
|
||||
Focusable="False">
|
||||
Focusable="False"
|
||||
Foreground="{u:BTSColor UI.Button.normal_foreground}">
|
||||
<Button.CommandParameter>
|
||||
<MultiBinding
|
||||
Converter="{x:Static cv:DynamicDoubleMultiplierConverter.Instance}">
|
||||
@@ -918,7 +922,8 @@
|
||||
HorizontalAlignment="Stretch"
|
||||
Command="{Binding size_calculator.clear}"
|
||||
Visibility="{Binding
|
||||
show_clear, Converter={StaticResource BooleanToVisibilityConverter}}">
|
||||
show_clear, Converter={StaticResource BooleanToVisibilityConverter}}"
|
||||
Style="{StaticResource CommonButton}">
|
||||
Clear
|
||||
</Button>
|
||||
|
||||
@@ -947,7 +952,16 @@
|
||||
</uag:AlgoTemplateFavoriteButtonsView>
|
||||
|
||||
<!-- Send RFQ Button -->
|
||||
<Button Margin="2" Command="{Binding send_rfq_cmd}" Content="Send RFQ" />
|
||||
<c:ExpandedContentSelector>
|
||||
<c:ExpandedContentSelector.ItemHeaderStyle>
|
||||
<Style TargetType="ToggleButton" BasedOn="{StaticResource ExpandedContentSelector.ItemHeaderStyle}">
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
</Style>
|
||||
</c:ExpandedContentSelector.ItemHeaderStyle>
|
||||
<c:ExpandedContentSelectorItem Header="RFQ">
|
||||
<trading_view:RFQCreationView Margin="2" DataContext="{Binding rfq_vm}" />
|
||||
</c:ExpandedContentSelectorItem>
|
||||
</c:ExpandedContentSelector>
|
||||
|
||||
<!-- Cancel Buttons -->
|
||||
<Grid Margin="0,17,0,0" VerticalAlignment="Top">
|
||||
@@ -1069,7 +1083,7 @@
|
||||
Since the GridSplitter will share a cell with other elements, we add it in toward the end,
|
||||
but we still want the ladder status message to have the topmost Z order
|
||||
-->
|
||||
<GridSplitter Grid.Column="0" Grid.RowSpan="2" Width="5" />
|
||||
<GridSplitter Grid.Column="0" Grid.RowSpan="2" Width="5" Background="{u:BTSBrush UI.spark_menu_background}"/>
|
||||
|
||||
<!-- Ladder Status message -->
|
||||
<Button
|
||||
@@ -1086,6 +1100,7 @@
|
||||
<TextBlock
|
||||
Text="{Binding status_message}"
|
||||
Background="{Binding status_background}"
|
||||
Foreground="Black"
|
||||
Padding="5,0" />
|
||||
</ControlTemplate>
|
||||
</Button.Template>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
xmlns:c="clr-namespace:mbts.ui.controls"
|
||||
xmlns:usp="clr-namespace:mbts.ui.spark"
|
||||
Background="{u:BTSBrush common_background}"
|
||||
Background="{u:BTSBrush UI.common_background}"
|
||||
TextElement.FontSize="{x:Static u:FontSizes.Small}"
|
||||
>
|
||||
<UserControl.Resources>
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
VerticalAlignment="Stretch"
|
||||
CloseOnCancel="True"
|
||||
CloseOnOK="True"
|
||||
Header="{Binding security}"
|
||||
Header="{Binding security, Converter={StaticResource SelectedSecurityTextConverter}}"
|
||||
IsEditMode="False"
|
||||
IsLazy="True"
|
||||
SecurityMap="{DynamicResource ResourceKey={x:Static u:ResourceKeys.Securities}}"
|
||||
@@ -71,7 +71,13 @@
|
||||
ShowDialogSkirt="True"
|
||||
ToolTip="{Binding SelectedCriteria, RelativeSource={RelativeSource Self}, Converter={x:Static c:ContractPickerPopup.SecurityCriteriaTextConverter}, Mode=OneWay}"
|
||||
OKClick="{x:Static c:ContractPickerPopup.FlushSelectedSecurityHandler}"
|
||||
/>
|
||||
>
|
||||
<c:ContractPickerPopup.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding}" Style="{StaticResource TextBlock.Dark}" />
|
||||
</DataTemplate>
|
||||
</c:ContractPickerPopup.HeaderTemplate>
|
||||
</c:ContractPickerPopup>
|
||||
<ComboBox Grid.Row="2" Grid.Column="2" ItemsSource="{DynamicResource ResourceKey={x:Static u:ResourceKeys.Accounts}}" SelectedItem="{Binding account}"/>
|
||||
<ComboBox Grid.Row="2" Grid.Column="4" ItemsSource="{DynamicResource ResourceKey={x:Static u:ResourceKeys.Users}}" SelectedItem="{Binding user}"/>
|
||||
<ComboBox Grid.Row="2" Grid.Column="6" ItemsSource="{DynamicResource ResourceKey={x:Static u:ResourceKeys.Sides}}" SelectedItem="{Binding side}" Width="48"/>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<UserControl
|
||||
<UserControl
|
||||
x:Class="mbts.ui.spark.ManualFillsView"
|
||||
x:ClassModifier="internal"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
@@ -9,10 +9,12 @@
|
||||
xmlns:usp="clr-namespace:mbts.ui.spark"
|
||||
xmlns:api="clr-namespace:bts.api;assembly=spark_api">
|
||||
<UserControl.Resources>
|
||||
<cv:ValueMap x:Key="SideToForegroundConverter" Default="{x:Static Brushes.Transparent}">
|
||||
<cv:KeyValue Key="{x:Static api:Side.Buy}" Value="{u:BTSBrush MarketData.bid}" />
|
||||
<cv:KeyValue Key="{x:Static api:Side.Sell}" Value="{u:BTSBrush MarketData.ask}" />
|
||||
</cv:ValueMap>
|
||||
<ResourceDictionary>
|
||||
<cv:ValueMap x:Key="SideToForegroundConverter" Default="{x:Static Brushes.Transparent}">
|
||||
<cv:KeyValue Key="{x:Static api:Side.Buy}" Value="{u:BTSBrush MarketData.bid}" />
|
||||
<cv:KeyValue Key="{x:Static api:Side.Sell}" Value="{u:BTSBrush MarketData.ask}" />
|
||||
</cv:ValueMap>
|
||||
</ResourceDictionary>
|
||||
</UserControl.Resources>
|
||||
|
||||
<AdornerDecorator>
|
||||
|
||||
@@ -64,9 +64,9 @@ namespace mbts.ui.spark {
|
||||
data_grid, data_grid,
|
||||
new Border {
|
||||
Child = row_editor,
|
||||
Background = BTSColors.common_background.to_brush(),
|
||||
Background = BTSColors.UI.spark_menu_background.to_brush(),
|
||||
BorderBrush = Brushes.Black,
|
||||
BorderThickness = new Thickness(1),
|
||||
BorderThickness = new Thickness(0),
|
||||
Padding = new Thickness(0, 6, 0, 0),
|
||||
HorizontalAlignment = HorizontalAlignment.Left,
|
||||
VerticalAlignment = VerticalAlignment.Top
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
Path='(u:WindowStyle.UnsafeWindow)',
|
||||
RelativeSource={RelativeSource AncestorType=bv:SparkWindowView}}"
|
||||
FocusManager.IsFocusScope="True"
|
||||
Background="{StaticResource CommonBackground}">
|
||||
Background="{u:BTSColor Orders.default_background}">
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
MaxHeight="240"
|
||||
d:DesignHeight="600" d:DesignWidth="1080"
|
||||
FocusManager.IsFocusScope="True"
|
||||
Background="{StaticResource CommonBackground}">
|
||||
Background="{u:BTSBrush UI.common_background}">
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
|
||||
@@ -590,8 +590,18 @@ namespace mbts.spark {
|
||||
: base(key, header, get_text, width, filter, filter_template, comparer) { }
|
||||
|
||||
public void draw(OrderBookRowVM row, DrawingContext dc, ColumnGeometry position, double row_height) =>
|
||||
CellRender.draw_text(dc, _get_glyph_context(row), font_size, _get_text(row), position, row_height,
|
||||
RenderUtils.get_foreground(row, font_brush), null, horizontal_alignment, VerticalAlignment.Center, DefaultCellPadding);
|
||||
CellRender.draw_text(
|
||||
dc,
|
||||
_get_glyph_context(row),
|
||||
font_size,
|
||||
_get_text(row),
|
||||
position,
|
||||
row_height,
|
||||
RenderUtils.get_foreground(row, font_brush),
|
||||
background_brush,
|
||||
horizontal_alignment,
|
||||
VerticalAlignment.Center,
|
||||
DefaultCellPadding);
|
||||
}
|
||||
|
||||
#region Explicit Column Defs
|
||||
@@ -600,8 +610,18 @@ namespace mbts.spark {
|
||||
: base(Columns.Side, "B/S", r => r.side.ToString(), DefaultColumnWidths.Side, filter, DataGridFilterKnownTemplates.EnumValues, _wrap_comparer(r => r.side)) { }
|
||||
|
||||
public void draw(OrderBookRowVM row, DrawingContext dc, ColumnGeometry position, double row_height) =>
|
||||
CellRender.draw_text(dc, _get_glyph_context(row), font_size, row.side.ToString(), position, row_height,
|
||||
RenderUtils.get_side_brush(row), null, horizontal_alignment, VerticalAlignment.Center, DefaultCellPadding);
|
||||
CellRender.draw_text(
|
||||
dc,
|
||||
_get_glyph_context(row),
|
||||
font_size,
|
||||
row.side.ToString(),
|
||||
position,
|
||||
row_height,
|
||||
RenderUtils.get_side_brush(row),
|
||||
background_brush,
|
||||
horizontal_alignment,
|
||||
VerticalAlignment.Center,
|
||||
DefaultCellPadding);
|
||||
}
|
||||
|
||||
public class SizeColumn : OrderbookColumnBase<DoubleMinMaxState>, IRenderColumn<OrderBookRowVM> {
|
||||
@@ -609,8 +629,18 @@ namespace mbts.spark {
|
||||
: base(Columns.Size, "Qty", r => r.display_quantity_text, DefaultColumnWidths.Qty, filter, DataGridFilterKnownTemplates.UIntMinMax, _wrap_comparer(r => r.quantity)) { }
|
||||
|
||||
public void draw(OrderBookRowVM row, DrawingContext dc, ColumnGeometry position, double row_height) =>
|
||||
CellRender.draw_text(dc, _get_glyph_context(row), font_size, row.display_quantity_text, position, row_height,
|
||||
RenderUtils.get_side_brush(row), null, horizontal_alignment, VerticalAlignment.Center, DefaultCellPadding);
|
||||
CellRender.draw_text(
|
||||
dc,
|
||||
_get_glyph_context(row),
|
||||
font_size,
|
||||
row.display_quantity_text,
|
||||
position,
|
||||
row_height,
|
||||
RenderUtils.get_side_brush(row),
|
||||
background_brush,
|
||||
horizontal_alignment,
|
||||
VerticalAlignment.Center,
|
||||
DefaultCellPadding);
|
||||
}
|
||||
|
||||
public class FilledColumn : OrderbookColumnBase<DoubleMinMaxState>, IRenderColumn<OrderBookRowVM> {
|
||||
@@ -618,8 +648,18 @@ namespace mbts.spark {
|
||||
: base(Columns.Filled, "Filled Qty", r => r.display_filled_quantity.ToString(), DefaultColumnWidths.Qty, filter, DataGridFilterKnownTemplates.DoubleMinMax, _wrap_comparer(r => r.filled_quantity)) { }
|
||||
|
||||
public void draw(OrderBookRowVM row, DrawingContext dc, ColumnGeometry position, double row_height) =>
|
||||
CellRender.draw_text(dc, _get_glyph_context(row), font_size, row.display_filled_quantity_text, position, row_height,
|
||||
RenderUtils.get_side_brush(row), null, horizontal_alignment, VerticalAlignment.Center, DefaultCellPadding);
|
||||
CellRender.draw_text(
|
||||
dc,
|
||||
_get_glyph_context(row),
|
||||
font_size,
|
||||
row.display_filled_quantity_text,
|
||||
position,
|
||||
row_height,
|
||||
RenderUtils.get_side_brush(row),
|
||||
background_brush,
|
||||
horizontal_alignment,
|
||||
VerticalAlignment.Center,
|
||||
DefaultCellPadding);
|
||||
}
|
||||
|
||||
public class OrderBookOrderTypeColumn : OrderTypeColumn<Columns>, ICVOrderBookColumn {
|
||||
@@ -685,8 +725,18 @@ namespace mbts.spark {
|
||||
: base(Columns.Piq, "PIQ", r => r.piq_text, DefaultColumnWidths.Qty, filter, DataGridFilterKnownTemplates.UIntMinMax, _wrap_comparer(r => r.piq)) { }
|
||||
|
||||
public void draw(OrderBookRowVM row, DrawingContext dc, ColumnGeometry position, double row_height) =>
|
||||
CellRender.draw_text(dc, _get_glyph_context(row), font_size, row.piq_text, position, row_height,
|
||||
RenderUtils.get_foreground(row, font_brush), null, HorizontalAlignment.Right, VerticalAlignment.Center, DefaultCellPadding);
|
||||
CellRender.draw_text(
|
||||
dc,
|
||||
_get_glyph_context(row),
|
||||
font_size,
|
||||
row.piq_text,
|
||||
position,
|
||||
row_height,
|
||||
RenderUtils.get_foreground(row, font_brush),
|
||||
background_brush,
|
||||
HorizontalAlignment.Right,
|
||||
VerticalAlignment.Center,
|
||||
DefaultCellPadding);
|
||||
}
|
||||
|
||||
public class SecurityColumn : FrameworkElementColumnBase<Columns>, ICVOrderBookColumn, IFilterableColumn {
|
||||
@@ -740,7 +790,10 @@ namespace mbts.spark {
|
||||
grid.Children.Add(toggle_button);
|
||||
grid.Children.Add(security_view);
|
||||
//
|
||||
return new Border { Child = grid, Margin = new Thickness(10, 0, 0, 0) };
|
||||
var root_bd = new Border { Child = grid, Padding = new Thickness(10, 0, 0, 0) };
|
||||
root_bd.SetBinding(
|
||||
Border.BackgroundProperty, new Binding(nameof(background_brush)) { Source = this });
|
||||
return root_bd;
|
||||
}
|
||||
|
||||
protected override void OnSortDirectionChanged(ListSortDirection? new_value) {
|
||||
@@ -767,16 +820,21 @@ namespace mbts.spark {
|
||||
}
|
||||
|
||||
public override FrameworkElement view_factory() {
|
||||
var grid = new Grid() {
|
||||
var cb = new CheckBox {
|
||||
HorizontalAlignment = HorizontalAlignment.Center,
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
VerticalAlignment = VerticalAlignment.Center
|
||||
};
|
||||
var cb = new CheckBox();
|
||||
cb.Name = "check_col";
|
||||
cb.SetBinding(CheckBox.IsCheckedProperty, _checked_binding);
|
||||
|
||||
grid.Children.Add(cb);
|
||||
return grid;
|
||||
var root_bd = new Border {
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch,
|
||||
VerticalAlignment = VerticalAlignment.Stretch,
|
||||
Child = cb
|
||||
};
|
||||
root_bd.SetBinding(
|
||||
Border.BackgroundProperty, new Binding(nameof(background_brush)) { Source = this });
|
||||
return root_bd;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -825,6 +883,14 @@ namespace mbts.spark {
|
||||
};
|
||||
|
||||
button.SetBinding(Button.CommandProperty, _command_binding);
|
||||
|
||||
var root_bd = new Border {
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch,
|
||||
VerticalAlignment = VerticalAlignment.Stretch,
|
||||
Child = button
|
||||
};
|
||||
root_bd.SetBinding(
|
||||
Border.BackgroundProperty, new Binding(nameof(background_brush)) { Source = this });
|
||||
return button;
|
||||
}
|
||||
}
|
||||
@@ -927,12 +993,19 @@ namespace mbts.spark {
|
||||
|
||||
#endregion
|
||||
|
||||
var the_whole_thing = new Grid();
|
||||
the_whole_thing.Children.Add(attach_grid);
|
||||
the_whole_thing.Children.Add(detach_grid);
|
||||
the_whole_thing.Children.Add(popup);
|
||||
var grid = new Grid();
|
||||
grid.Children.Add(attach_grid);
|
||||
grid.Children.Add(detach_grid);
|
||||
grid.Children.Add(popup);
|
||||
|
||||
return the_whole_thing;
|
||||
var root_bd = new Border {
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch,
|
||||
VerticalAlignment = VerticalAlignment.Stretch,
|
||||
Child = grid
|
||||
};
|
||||
root_bd.SetBinding(
|
||||
Border.BackgroundProperty, new Binding(nameof(background_brush)) { Source = this });
|
||||
return root_bd;
|
||||
|
||||
UIElement create_popup_child() {
|
||||
#region OrderParamsPanel
|
||||
@@ -1003,7 +1076,7 @@ namespace mbts.spark {
|
||||
grid.Children.Add(dialog_skirt);
|
||||
|
||||
var border = new Border() {
|
||||
Background = BTSColors.common_background.to_brush(),
|
||||
Background = BTSColors.UI.common_background.to_brush(),
|
||||
BorderThickness = new Thickness(1),
|
||||
Name = "attach_border",
|
||||
Child = grid,
|
||||
@@ -1155,7 +1228,7 @@ namespace mbts.spark {
|
||||
grid.Children.Add(dialog_skirt);
|
||||
|
||||
var border = new Border() {
|
||||
Background = BTSColors.common_background.to_brush(),
|
||||
Background = BTSColors.UI.common_background.to_brush(),
|
||||
BorderThickness = new Thickness(1),
|
||||
Name = "update_border",
|
||||
Child = grid,
|
||||
|
||||
@@ -10,47 +10,13 @@
|
||||
xmlns:cv="clr-namespace:mbts.ui.converters"
|
||||
>
|
||||
<!--Control colors.-->
|
||||
<Color x:Key="WindowColor">#FFE8EDF9</Color>
|
||||
|
||||
<Color x:Key="DisabledControlLightColor">#FFE8EDF9</Color>
|
||||
<Color x:Key="DisabledControlDarkColor">#FFC5CBF9</Color>
|
||||
<Color x:Key="DisabledForegroundColor">#FF888888</Color>
|
||||
|
||||
<Color x:Key="SelectedBackgroundColor">#FFC5CBF9</Color>
|
||||
<Color x:Key="SelectedUnfocusedColor">#FFDDDDDD</Color>
|
||||
|
||||
<Color x:Key="ControlLightColor">White</Color>
|
||||
<Color x:Key="ControlMediumColor">#FFCCCCCC</Color>
|
||||
<Color x:Key="ControlDarkColor">#FFAAAAAA</Color>
|
||||
<Color x:Key="ControlMouseOverColor">#200080FF</Color>
|
||||
<Color x:Key="ControlPressedColor">#800080FF</Color>
|
||||
<Color x:Key="TabLightColor">#FFE5E5E5</Color>
|
||||
<Color x:Key="TabMediumColor">#FFF0F0F0</Color>
|
||||
|
||||
<!-- defined inbts colors in orderbook -->
|
||||
<!--Border colors-->
|
||||
<Color x:Key="BorderMediumColor">#FF888888</Color>
|
||||
<Color x:Key="PressedBorderLightColor">#FF888888</Color>
|
||||
<Color x:Key="MouseOverBorderMediumColor">#90006CD9</Color>
|
||||
<Color x:Key="DisabledBorderLightColor">#FFAAAAAA</Color>
|
||||
<Color x:Key="DefaultBorderBrushDarkColor">Black</Color>
|
||||
<Color x:Key="TabBorderColor">#FFACACAC</Color>
|
||||
<Color x:Key="TabMouseOverBorderMediumColor">#FF7EB4EA</Color>
|
||||
<!-- defined inbts colors in orderbook -->
|
||||
|
||||
<!--Control-specific resources.-->
|
||||
<Color x:Key="HeaderTopColor">#FFC5CBF9</Color>
|
||||
<Color x:Key="DatagridCurrentCellBorderColor">Black</Color>
|
||||
<Color x:Key="SliderTrackDarkColor">#FFC5CBF9</Color>
|
||||
|
||||
<Color x:Key="NavButtonFrameColor">#FF3843C4</Color>
|
||||
|
||||
<Color x:Key="TabMouseOverBackgroundLightColor">#FFECF4FC</Color>
|
||||
<Color x:Key="TabMouseOverBackgroundMediumColor">#FFDCECFC</Color>
|
||||
|
||||
<LinearGradientBrush x:Key="MenuPopupBrush" EndPoint="0.5,1" StartPoint="0.5,0">
|
||||
<GradientStop Color="{DynamicResource ControlLightColor}" Offset="0"/>
|
||||
<GradientStop Color="{DynamicResource ControlMediumColor}" Offset="0.5"/>
|
||||
<GradientStop Color="{DynamicResource ControlLightColor}" Offset="1"/>
|
||||
</LinearGradientBrush>
|
||||
<SolidColorBrush x:Key="MenuPopupBrush" Color="{u:BTSColor OrderBook.toolbar_control_medium}" />
|
||||
|
||||
<!--Converters-->
|
||||
<cv:CastConverter x:Key="CastConverter"/>
|
||||
@@ -75,22 +41,43 @@
|
||||
<VisualState x:Name="Normal"/>
|
||||
<VisualState x:Name="Pressed">
|
||||
<Storyboard>
|
||||
<ColorAnimationUsingKeyFrames Storyboard.TargetName="Border" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
||||
<EasingColorKeyFrame KeyTime="0" Value="{StaticResource ControlPressedColor}"/>
|
||||
<ColorAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
||||
<EasingColorKeyFrame
|
||||
KeyTime="0"
|
||||
Value="{u:BTSColor UI.ToolBarItem.pressed_background, Type={x:Type Color}}" />
|
||||
<!-- <EasingColorKeyFrame
|
||||
KeyTime="0"
|
||||
Value="{u:BTSColor UI.Control.pressed_background, Type={x:Type Color}}" /> -->
|
||||
</ColorAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="MouseOver">
|
||||
<Storyboard>
|
||||
<ColorAnimationUsingKeyFrames Storyboard.TargetName="Border" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
||||
<EasingColorKeyFrame KeyTime="0" Value="{StaticResource ControlMouseOverColor}"/>
|
||||
<ColorAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
||||
<EasingColorKeyFrame
|
||||
KeyTime="0"
|
||||
Value="{u:BTSColor UI.ToolBarItem.mouseover_background, Type={x:Type Color}}" />
|
||||
<!-- <EasingColorKeyFrame
|
||||
KeyTime="0"
|
||||
Value="{u:BTSColor UI.Control.mouseover_background, Type={x:Type Color}}" /> -->
|
||||
</ColorAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Disabled">
|
||||
<Storyboard>
|
||||
<ColorAnimationUsingKeyFrames Storyboard.TargetName="Border" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
||||
<EasingColorKeyFrame KeyTime="0" Value="{StaticResource DisabledControlDarkColor}"/>
|
||||
<ColorAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
||||
<EasingColorKeyFrame
|
||||
KeyTime="0"
|
||||
Value="{u:BTSColor UI.ToolBarItem.disabled_background, Type={x:Type Color}}" />
|
||||
<!-- <EasingColorKeyFrame
|
||||
KeyTime="0"
|
||||
Value="{u:BTSColor UI.Control.disabled, Type={x:Type Color}}" /> -->
|
||||
</ColorAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
@@ -98,8 +85,15 @@
|
||||
<VisualStateGroup x:Name="CheckStates">
|
||||
<VisualState x:Name="Checked">
|
||||
<Storyboard>
|
||||
<ColorAnimationUsingKeyFrames Storyboard.TargetName="Border" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
||||
<EasingColorKeyFrame KeyTime="0" Value="{StaticResource ControlPressedColor}"/>
|
||||
<ColorAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
|
||||
<EasingColorKeyFrame
|
||||
KeyTime="0"
|
||||
Value="{u:BTSColor UI.ToolBarItem.pressed_background, Type={x:Type Color}}" />
|
||||
<!-- <EasingColorKeyFrame
|
||||
KeyTime="0"
|
||||
Value="{u:BTSColor UI.Control.pressed, Type={x:Type Color}}" /> -->
|
||||
</ColorAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
@@ -175,7 +169,18 @@
|
||||
<VisualStateGroup Name="CommonStates">
|
||||
<VisualState x:Name="Disabled">
|
||||
<Storyboard>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" BeginTime="0" Duration="0" To="{StaticResource DisabledBorderLightColor}"/>
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.ToolBarItem.disabled_border, Type={x:Type Color}}" />
|
||||
<!-- <ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.Control.disabled_border_light, Type={x:Type Color}}" /> -->
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
@@ -184,23 +189,83 @@
|
||||
<VisualState Name="StackNormal"/>
|
||||
<VisualState Name="StackMouseOver">
|
||||
<Storyboard>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" BeginTime="0" Duration="0" To="{StaticResource ControlMouseOverColor}"/>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" BeginTime="0" Duration="0" To="{StaticResource MouseOverBorderMediumColor}"/>
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.Button.mouseover_background, Type={x:Type Color}}" />
|
||||
<!-- <ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.Control.mouseover, Type={x:Type Color}}" /> -->
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.Button.mouseover_border, Type={x:Type Color}}" />
|
||||
<!-- <ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.Control.mouseover_border_medium, Type={x:Type Color}}" /> -->
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
|
||||
<VisualState Name="StackPressed">
|
||||
<Storyboard>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
<DoubleAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Opacity)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="1" />
|
||||
<DoubleAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Opacity)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="1" />
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<!--Tab-->
|
||||
<VisualState Name="TabNormal"/>
|
||||
<VisualState Name="TabMouseOver">
|
||||
<Storyboard>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" BeginTime="0" Duration="0" To="{StaticResource ControlMouseOverColor}"/>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" BeginTime="0" Duration="0" To="{StaticResource MouseOverBorderMediumColor}"/>
|
||||
<ThicknessAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Border.BorderThickness)" BeginTime="0" Duration="0" To="1"/>
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.ToolBarItem.mouseover_background, Type={x:Type Color}}" />
|
||||
<!-- <ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.Control.mouseover, Type={x:Type Color}}" /> -->
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.ToolBarItem.mouseover_border, Type={x:Type Color}}" />
|
||||
<!-- <ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.Control.mouseover_border_medium, Type={x:Type Color}}" /> -->
|
||||
<ThicknessAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Border.BorderThickness)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="1" />
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
@@ -220,7 +285,7 @@
|
||||
<Setter TargetName="Border" Property="BorderThickness" Value="0,0,0,1"/>
|
||||
<Setter TargetName="Border" Property="BorderBrush">
|
||||
<Setter.Value>
|
||||
<SolidColorBrush Color="{StaticResource TabBorderColor}"/>
|
||||
<SolidColorBrush Color="{u:BTSColor OrderBook.toolbar_tab_border}"/>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</DataTrigger>
|
||||
@@ -235,30 +300,62 @@
|
||||
<!--CheckMark Opacity-->
|
||||
<DoubleAnimation Storyboard.TargetName="CheckMark" Storyboard.TargetProperty="(UIElement.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
<!--Background Opacity-->
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.Opacity)" BeginTime="0" Duration="0" To="0"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Opacity)" BeginTime="0" Duration="0" To="0"/>
|
||||
<!--Border Thickness/Opacity/Color-->
|
||||
<ThicknessAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Border.BorderThickness)" BeginTime="0" Duration="0" To="1,1,1,0"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Color)" BeginTime="0" Duration="0" To="{StaticResource TabBorderColor}"/>
|
||||
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.TabItem.normal_border, Type={x:Type Color}}" />
|
||||
<!-- <ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="#FFACACAC" /> -->
|
||||
|
||||
<!--Padding-->
|
||||
<ThicknessAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Border.Padding)" BeginTime="0" Duration="0" To="6,4,6,5"/>
|
||||
</Storyboard>
|
||||
<Storyboard x:Key="TabMouseOverStoryboard">
|
||||
<!--Background Opacity/Color-->
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" BeginTime="0" Duration="0" To="{StaticResource TabMouseOverBackgroundLightColor}"/>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" BeginTime="0" Duration="0" To="{StaticResource TabMouseOverBackgroundMediumColor}"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.TabItem.mouseover_background, Type={x:Type Color}}" />
|
||||
|
||||
<!--Border Thickness/Opacity/Color-->
|
||||
<ThicknessAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Border.BorderThickness)" BeginTime="0" Duration="0" To="1"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Opacity)" BeginTime="0" Duration="0" To="0.5625"/>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Color)" BeginTime="0" Duration="0" To="{StaticResource TabMouseOverBorderMediumColor}"/>
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.TabItem.mouseover_border, Type={x:Type Color}}" />
|
||||
<!-- <ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.Control.mouseover_border_medium, Type={x:Type Color}}" /> -->
|
||||
<!--Padding-->
|
||||
<ThicknessAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Border.Padding)" BeginTime="0" Duration="0" To="6,2"/>
|
||||
</Storyboard>
|
||||
|
||||
<Style x:Key="RightPanel.MenuItem" TargetType="MenuItem">
|
||||
<Setter Property="c:MenuItemEx.ClickMode" Value="Press"/>
|
||||
<Setter Property="BorderThickness" Value="1,0"/>
|
||||
<Setter Property="Background" Value="{u:BTSBrush UI.TabItem.normal_background}" />
|
||||
<Setter Property="Foreground" Value="{u:BTSBrush UI.TabItem.normal_foreground}" />
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="IsCheckable" Value="True"/>
|
||||
<Setter Property="Focusable" Value="False"/>
|
||||
<Setter Property="Template">
|
||||
@@ -297,10 +394,7 @@
|
||||
<SolidColorBrush Color="#006CD9" Opacity="0"/>
|
||||
</Border.BorderBrush>
|
||||
<Border.Background>
|
||||
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1" Opacity="0">
|
||||
<GradientStop Color="#400080FF" Offset="0.0"/>
|
||||
<GradientStop Color="#400080FF" Offset="1.0"/>
|
||||
</LinearGradientBrush>
|
||||
<SolidColorBrush Color="#400080FF" />
|
||||
</Border.Background>
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
<VisualStateGroup>
|
||||
@@ -309,50 +403,61 @@
|
||||
<VisualState Name="StackUncheckedMouseOver">
|
||||
<Storyboard>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Opacity)" BeginTime="0" Duration="0" To="0.5625"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.Opacity)" BeginTime="0" Duration="0" To="0.5"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Opacity)" BeginTime="0" Duration="0" To="0.5"/>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState Name="StackUncheckedPressed">
|
||||
<Storyboard>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState Name="StackCheckedNormal">
|
||||
<Storyboard>
|
||||
<DoubleAnimation Storyboard.TargetName="CheckMark" Storyboard.TargetProperty="(UIElement.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" BeginTime="0" Duration="0" To="#800080FF"/>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" BeginTime="0" Duration="0" To="#800080FF"/>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Color)" BeginTime="0" Duration="0" To="#800080FF"/>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState Name="StackCheckedMouseOver">
|
||||
<Storyboard>
|
||||
<DoubleAnimation Storyboard.TargetName="CheckMark" Storyboard.TargetProperty="(UIElement.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" BeginTime="0" Duration="0" To="#800080FF"/>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" BeginTime="0" Duration="0" To="#800080FF"/>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Color)" BeginTime="0" Duration="0" To="#800080FF"/>
|
||||
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Opacity)" BeginTime="0" Duration="0" To="0.5625"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.Opacity)" BeginTime="0" Duration="0" To="0.5"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Opacity)" BeginTime="0" Duration="0" To="0.5"/>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState Name="StackCheckedPressed">
|
||||
<Storyboard>
|
||||
<DoubleAnimation Storyboard.TargetName="CheckMark" Storyboard.TargetProperty="(UIElement.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<!--Tab-->
|
||||
<VisualState Name="TabUncheckedNormal">
|
||||
<Storyboard>
|
||||
<!--Background Opacity/Color-->
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" BeginTime="0" Duration="0" To="{StaticResource TabMediumColor}"/>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" BeginTime="0" Duration="0" To="{StaticResource TabLightColor}"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.TabItem.normal_background, Type={x:Type Color}}" />
|
||||
|
||||
<!--Border Thickness/Opacity/Color-->
|
||||
<ThicknessAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Border.BorderThickness)" BeginTime="0" Duration="0" To="1"/>
|
||||
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Opacity)" BeginTime="0" Duration="0" To="1"/>
|
||||
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Color)" BeginTime="0" Duration="0" To="{StaticResource TabBorderColor}"/>
|
||||
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="Border"
|
||||
Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Color)"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="{u:BTSColor UI.TabItem.normal_border, Type={x:Type Color}}" />
|
||||
|
||||
<ThicknessAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Border.Padding)" BeginTime="0" Duration="0" To="6,2"/>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
@@ -373,7 +478,10 @@
|
||||
<Image.Source>
|
||||
<DrawingImage>
|
||||
<DrawingImage.Drawing>
|
||||
<GeometryDrawing Brush="Black" Geometry="{Binding Source={StaticResource {x:Static u:Icons.CheckMarkGeometryKey}}}"/>
|
||||
<GeometryDrawing
|
||||
Brush="{u:BTSBrush UI.default_foreground}"
|
||||
Geometry="{Binding Source={
|
||||
StaticResource {x:Static u:Icons.CheckMarkGeometryKey}}}" />
|
||||
</DrawingImage.Drawing>
|
||||
</DrawingImage>
|
||||
</Image.Source>
|
||||
@@ -430,8 +538,7 @@
|
||||
x:Name="DropDownBorder"
|
||||
BorderThickness="1"
|
||||
BorderBrush="{u:BTSColor UI.Button.normal_border}"
|
||||
Background="{StaticResource ControlBackground}"
|
||||
>
|
||||
Background="{u:BTSColor UI.Window.normal_background}">
|
||||
<!-- <i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="MouseLeave">
|
||||
<ie:ChangePropertyAction TargetName="OverflowPopup" PropertyName="IsOpen" Value="False"/>
|
||||
@@ -482,7 +589,7 @@
|
||||
<LinearGradientBrush.GradientStops>
|
||||
<GradientStopCollection>
|
||||
<GradientStop Color="#FFF" Offset="0.0"/>
|
||||
<GradientStop Color="{DynamicResource WindowColor}" Offset="1.0"/>
|
||||
<GradientStop Color="{u:BTSColor OrderBook.toolbar_window}" Offset="1.0"/>
|
||||
</GradientStopCollection>
|
||||
</LinearGradientBrush.GradientStops>
|
||||
</LinearGradientBrush>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
xmlns:ob="clr-namespace:bts.shell.orderbook"
|
||||
Grid.Row="0"
|
||||
FocusManager.IsFocusScope="True"
|
||||
Background="{StaticResource CommonBackground}"
|
||||
Background="{u:BTSBrush UI.common_background}"
|
||||
>
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
@@ -46,8 +46,8 @@
|
||||
<Setter Property="IsTabStop" Value="False"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{StaticResource Control.MediumGrayBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource Control.MediumGrayBrush}"/>
|
||||
<Setter Property="Background" Value="{u:BTSBrush UI.Button.mouseover_background}" />
|
||||
<Setter Property="BorderBrush" Value="{u:BTSBrush UI.Button.mouseover_border}" />
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
@@ -97,7 +97,7 @@
|
||||
<Setter Property="CommandParameter" Value="{Binding}"/>
|
||||
</Style>
|
||||
<DataTemplate x:Key="OrderDescriptionTemplate">
|
||||
<TextBlock>
|
||||
<TextBlock Foreground="{u:BTSBrush UI.default_text}">
|
||||
<TextBlock.Inlines>
|
||||
<Run Text="{Binding security, Mode=OneWay}" FontWeight="Bold"/>
|
||||
<Run Text="{Binding side, Mode=OneWay}" Foreground="{Binding side, Converter={StaticResource SideToBrushConverter}}"/>
|
||||
@@ -191,7 +191,7 @@
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Stretch"
|
||||
Width="{StaticResource GridSplitterWidth}"
|
||||
BorderThickness="1,0,0,0"
|
||||
BorderThickness="0"
|
||||
BorderBrush="{u:BTSColor UI.form_content_border}"
|
||||
Visibility="Collapsed"
|
||||
>
|
||||
@@ -209,7 +209,7 @@
|
||||
Panel.ZIndex="1"
|
||||
HorizontalAlignment="Right"
|
||||
Width="7"
|
||||
BorderThickness="1"
|
||||
BorderThickness="0"
|
||||
IsChecked="{Binding show_right_panel}"
|
||||
>
|
||||
<ToggleButton.Style>
|
||||
@@ -255,7 +255,11 @@
|
||||
</ToggleButton.Style>
|
||||
</ToggleButton>
|
||||
|
||||
<Grid x:Name="right_panel_content_root" Grid.Column="1" Visibility="Collapsed">
|
||||
<Grid
|
||||
x:Name="right_panel_content_root"
|
||||
Grid.Column="1"
|
||||
Background="{u:BTSColor UI.spark_menu_background}"
|
||||
Visibility="Collapsed">
|
||||
<u:StateManager.Groups>
|
||||
<u:StateGroupsManager Target="{Binding Source={u:DirectReference right_panel_content_root}}">
|
||||
<u:StateDefinitionCollection>
|
||||
@@ -416,9 +420,7 @@
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Stretch"
|
||||
ItemContainerStyle="{StaticResource RightPanel.MenuItem}"
|
||||
BorderBrush="DarkGray"
|
||||
BorderThickness="1"
|
||||
>
|
||||
BorderThickness="0">
|
||||
<ToolBar.Background>
|
||||
<SolidColorBrush Color="LightGray" Opacity="1"/>
|
||||
</ToolBar.Background>
|
||||
@@ -468,10 +470,10 @@
|
||||
<MenuItem x:Name="tab_remainder_menu_item" ToolBar.OverflowMode="Never" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" IsCheckable="False" Visibility="Collapsed">
|
||||
<MenuItem.Template>
|
||||
<ControlTemplate TargetType="MenuItem">
|
||||
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Height="1">
|
||||
<Rectangle.Fill>
|
||||
<SolidColorBrush Color="{StaticResource TabBorderColor}"/>
|
||||
</Rectangle.Fill>
|
||||
<Rectangle Fill="{u:BTSColor OrderBook.tab_border}" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Height="1">
|
||||
<!-- <Rectangle.Fill>
|
||||
<SolidColorBrush Color="{u:BTSColor OrderBook.tab_border}"/>
|
||||
</Rectangle.Fill> -->
|
||||
</Rectangle>
|
||||
</ControlTemplate>
|
||||
</MenuItem.Template>
|
||||
@@ -497,16 +499,23 @@
|
||||
<ItemsControl ItemsSource="{Binding DataContext.selected_rows, Source={u:DirectReference right_panel_content_root}}" ItemTemplate="{StaticResource OrderDescriptionTemplate}"/>
|
||||
</StackPanel.ToolTip>
|
||||
<ContentControl x:Name="current_row_description_content_control" Content="{Binding current_row}" ContentTemplate="{StaticResource OrderDescriptionTemplate}" IsTabStop="False" Visibility="Visible"/>
|
||||
<TextBlock x:Name="no_rows_selected_text_block" Visibility="Collapsed">
|
||||
(No orders are selected)
|
||||
</TextBlock>
|
||||
|
||||
<TextBlock
|
||||
x:Name="no_rows_selected_text_block"
|
||||
Visibility="Collapsed"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="(No orders are selected)"
|
||||
Style="{StaticResource TextBlock.Dark}" />
|
||||
|
||||
<TextBlock
|
||||
Margin="3,0,0,0"
|
||||
FontStyle="Italic"
|
||||
Visibility="{Binding selected_rows.Count, Converter={StaticResource SelectedOrdersAndOthersSuffixVisibilityConverter}}"
|
||||
VerticalAlignment="Top"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="{Binding selected_rows.Count, Converter={StaticResource MinusOneConverter}, Mode=OneWay, StringFormat='and {0} others...'}"
|
||||
/>
|
||||
Style="{StaticResource TextBlock.Dark}" />
|
||||
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
<ScrollViewer
|
||||
@@ -625,7 +634,7 @@
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
Height="{x:Static sp:OrderBookView.GridSplitterHeight}"
|
||||
BorderThickness="0,1,0,0"
|
||||
BorderThickness="0"
|
||||
ResizeBehavior="PreviousAndNext"
|
||||
Visibility="Collapsed" />
|
||||
|
||||
@@ -646,7 +655,7 @@
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
Height="{x:Static sp:OrderBookView.GridSplitterHeight}"
|
||||
BorderThickness="0,1,0,0"
|
||||
BorderThickness="0"
|
||||
ResizeBehavior="PreviousAndNext"
|
||||
Visibility="Collapsed" />
|
||||
|
||||
|
||||
@@ -196,7 +196,7 @@ namespace mbts.spark {
|
||||
orders_grid, orders_grid,
|
||||
new Border {
|
||||
Child = grid,
|
||||
Background = BTSColors.common_background.to_brush(),
|
||||
Background = BTSColors.UI.common_background.to_brush(),
|
||||
BorderBrush = Brushes.Black,
|
||||
BorderThickness = new Thickness(1)
|
||||
},
|
||||
|
||||
@@ -142,7 +142,7 @@ namespace bts.shell.pnl {
|
||||
typeface = new TypefaceProto(
|
||||
GridSettings.Default.font_family,
|
||||
FontWeights.Bold.ToOpenTypeWeight()),
|
||||
font_color = Colors.Black.rgb_color(),
|
||||
font_color = BTSColors.PNL.foreground,
|
||||
font_size = 11
|
||||
},
|
||||
background = Colors.Transparent.rgb_color()
|
||||
@@ -152,7 +152,7 @@ namespace bts.shell.pnl {
|
||||
typeface = new TypefaceProto(
|
||||
GridSettings.Default.font_family,
|
||||
FontWeights.Bold.ToOpenTypeWeight()),
|
||||
font_color = Colors.Black.rgb_color(),
|
||||
font_color = BTSColors.PNL.foreground,
|
||||
font_size = 12
|
||||
},
|
||||
background = BTSColors.PNL.header_row_background
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
xmlns:usp="clr-namespace:mbts.ui.spark"
|
||||
xmlns:sp="clr-namespace:mbts.spark"
|
||||
Background="{StaticResource CommonBackground}"
|
||||
Background="{u:BTSBrush UI.common_background}"
|
||||
BorderBrush="Black"
|
||||
BorderThickness="1"
|
||||
MaxHeight="300"
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
xmlns:usp="clr-namespace:mbts.ui.spark"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
FocusManager.IsFocusScope="True"
|
||||
Background="{StaticResource CommonBackground}"
|
||||
Background="{u:BTSBrush UI.common_background}"
|
||||
Tag="{Binding ElementName=_grid}"
|
||||
>
|
||||
<UserControl.CommandBindings>
|
||||
@@ -25,9 +25,7 @@
|
||||
<!--Primitives-->
|
||||
<sys:Boolean x:Key="ShowHeaderRowDisplayDropDown">False</sys:Boolean>
|
||||
<!--Colors-->
|
||||
<Color x:Key="HeaderRowBackgroundColor">#FFAAAAAA</Color>
|
||||
<Color x:Key="HeaderRowForegroundColor">#FF000000</Color>
|
||||
<Color x:Key="GroupRowForegroundColor">#FF000000</Color>
|
||||
<!-- Defined in BTSColors -->
|
||||
<!--Converters-->
|
||||
<cv:GridLengthConverter x:Key="GridLengthPixelConverter" UnitType="Pixel"/>
|
||||
<cv:ValueConverterPipe x:Key="GroupRowHeightConverter">
|
||||
@@ -258,7 +256,7 @@
|
||||
'(c:DIYGrid.Column).horizontal_alignment', RelativeSource={RelativeSource Self}}" />
|
||||
<Setter Property="Foreground">
|
||||
<Setter.Value>
|
||||
<SolidColorBrush Color="{StaticResource GroupRowForegroundColor}"/>
|
||||
<SolidColorBrush Color="{u:BTSColor PNL.group_row_foreground}"/>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
xmlns:sys="clr-namespace:System;assembly=System.Runtime"
|
||||
u:WindowStyle.UnsafeWindow="{Binding Path='(u:WindowStyle.UnsafeWindow)', RelativeSource={RelativeSource AncestorType=bv:SparkWindowView}}"
|
||||
FocusManager.IsFocusScope="True"
|
||||
Background="{StaticResource CommonBackground}">
|
||||
Background="{u:BTSBrush UI.common_background}">
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
|
||||
@@ -161,7 +161,7 @@ namespace BCG
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.myValueEntryGUI = new BCG.ValueEntryGUI();
|
||||
this.myValueEntryGUI = new BCG.ValueEntryGUI(true);
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// myValueEntryGUI
|
||||
|
||||
@@ -105,6 +105,7 @@ namespace BCG {
|
||||
private static readonly bool _cache_is_enabled = true; //TODO: mbts.config.Configuration.get<bts.config.toggles.Enable_Sheets_DPI_Image_Scaling>().enabled;
|
||||
private const int _up_image_index = 0;
|
||||
private const int _down_image_index = 1;
|
||||
private readonly bool _force_black_text = false;
|
||||
private System.Drawing.Image _get_dpi_adjusted_image_from_cache(string cache_key) {
|
||||
if (_naive_cache.ContainsKey(cache_key)) {
|
||||
return _naive_cache[cache_key];
|
||||
@@ -117,7 +118,8 @@ namespace BCG {
|
||||
}
|
||||
|
||||
|
||||
public ValueEntryGUI() {
|
||||
public ValueEntryGUI(bool force_black_text = false) {
|
||||
_force_black_text = force_black_text;
|
||||
// This call is required by the Windows.Forms Form Designer.
|
||||
InitializeComponent();
|
||||
_thread_id = System.Threading.Thread.CurrentThread.ManagedThreadId;
|
||||
@@ -236,7 +238,7 @@ namespace BCG {
|
||||
myFlipRec);
|
||||
|
||||
g.DrawString(flipString, config.valueFont,
|
||||
new SolidBrush(config.valueFColor),
|
||||
new SolidBrush(_force_black_text ? Color.Black : config.valueFColor),
|
||||
xxValue, yyValue);
|
||||
}
|
||||
|
||||
@@ -262,7 +264,7 @@ namespace BCG {
|
||||
myValueRec);
|
||||
|
||||
g.DrawString(valueS, config.valueFont,
|
||||
new SolidBrush(config.valueFColor),
|
||||
new SolidBrush(_force_black_text ? Color.Black : config.valueFColor),
|
||||
xValue, yValue);
|
||||
|
||||
if (Enabled) {
|
||||
|
||||
@@ -180,13 +180,13 @@ namespace BCG
|
||||
// in the trade card.
|
||||
private Size myButtonSize = new Size((15).MultipliedByDPIRatio(),(16).MultipliedByDPIRatio());
|
||||
private Color myFlippedValueBColor = BTSColors.UI.warning;
|
||||
private Color myValueFColor = BTSColors.UI.default_text;
|
||||
private Color myBackColor = BTSColors.UI.default_background;
|
||||
private Color myValueFColor = BTSColors.UI.white;
|
||||
private Color myBackColor = System.Drawing.Color.FromArgb(36,36,49);
|
||||
|
||||
private Color myDarkOutlineColor = BTSColors.UI.gray_light;
|
||||
private Color myLightOutlineColor = BTSColors.UI.gray_light;
|
||||
|
||||
private Color myValueBColor = Color.FromKnownColor(KnownColor.LemonChiffon);
|
||||
private Color myValueBColor = System.Drawing.Color.FromArgb(36,36,49);
|
||||
|
||||
#region ICloneable Members
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace BCG
|
||||
back_color_2 = back_color_1;
|
||||
font_color_1 = System.Drawing.Color.Black;
|
||||
font_color_2 = font_color_1;
|
||||
font = new System.Drawing.Font("Tahoma", 7);
|
||||
font = new System.Drawing.Font("Tahoma", 10);
|
||||
display_format = Utilities.General.TickConverter2.TickType.tickDecimal2;
|
||||
is_visibile = true;
|
||||
}
|
||||
|
||||
@@ -188,8 +188,8 @@ namespace BCG
|
||||
public NMSheetSettingAlert()
|
||||
{
|
||||
alert_display_value = CrossAlertPaintMode.Price;
|
||||
buy_alert_color = BTSColors.Greeks.cross_buy;
|
||||
sell_alert_color = BTSColors.Greeks.cross_sell;
|
||||
buy_alert_color = Color.FromArgb(128, 255, 128);
|
||||
sell_alert_color = Color.Maroon;
|
||||
cross_over = 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,6 +156,18 @@ namespace BCG {
|
||||
|
||||
public NMSheetSettingColumnOrganization(string option_symbol) {
|
||||
_init();
|
||||
// back colors
|
||||
Color standard_back_color = Color.FromArgb(36, 36, 49);
|
||||
Color dark_color = Color.Black;
|
||||
// font colors
|
||||
Color standard_font_color = Color.White;
|
||||
Color strike_font_color = Color.FromArgb(192, 255, 255);
|
||||
Color moneyness_font_color = Color.FromArgb(128, 128, 255);
|
||||
Color ask_font_color = Color.Salmon;
|
||||
Color bid_font_color = Color.Aqua;
|
||||
// Fonts
|
||||
|
||||
|
||||
Utilities.General.TickConverter2.TickType price_tick_type = Utilities.General.TickConverter2.TickType.tickDecimal2;
|
||||
Utilities.General.TickConverter2.TickType theo_tick_type = Utilities.General.TickConverter2.TickType.tickDecimal2;
|
||||
Utilities.General.TickConverter2.TickType strike_tick_type = Utilities.General.TickConverter2.TickType.tickDecimal2Strike;
|
||||
@@ -169,112 +181,112 @@ namespace BCG {
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_position, back_color_1 = BTSColors.Position.default_background, back_color_2 = BTSColors.Position.default_background, font_color_1 = BTSColors.Position.default_text, font_color_2 = BTSColors.Position.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
|
||||
/// ee bid
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ee_set_bid_edge, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ee_set_bid_size, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ee_bid_price, back_color_1 = BTSColors.Quoter.default_background, back_color_2 = BTSColors.Quoter.default_background, font_color_1 = BTSColors.Quoter.bid_text, font_color_2 = BTSColors.Quoter.bid_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ee_set_bid_edge, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ee_set_bid_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ee_bid_price, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.bid_text, font_color_2 = BTSColors.Quoter.bid_text, display_format = theo_tick_type, is_visibile = false });
|
||||
|
||||
/// quoter bid
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoteset_resolved_bid_edge, back_color_1 = BTSColors.Quoteset.default_background, back_color_2 = BTSColors.Quoteset.default_background, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoteset_resolved_bid_size, back_color_1 = BTSColors.Quoteset.default_background, back_color_2 = BTSColors.Quoteset.default_background, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_set_bid_edge, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_set_bid_size, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_bid_price, back_color_1 = BTSColors.Quoter.default_background, back_color_2 = BTSColors.Quoter.default_background, font_color_1 = BTSColors.Quoter.bid_text, font_color_2 = BTSColors.Quoter.bid_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_bid_size, back_color_1 = BTSColors.Quoter.default_background, back_color_2 = BTSColors.Quoter.default_background, font_color_1 = BTSColors.Quoter.bid_text, font_color_2 = BTSColors.Quoter.bid_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoteset_resolved_bid_edge, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoteset_resolved_bid_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_set_bid_edge, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_set_bid_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_bid_price, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.bid_text, font_color_2 = BTSColors.Quoter.bid_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_bid_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.bid_text, font_color_2 = BTSColors.Quoter.bid_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
|
||||
/// call bid bbo
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_bid_size, back_color_1 = BTSColors.MarketData.default_background, back_color_2 = BTSColors.MarketData.default_background, font_color_1 = BTSColors.MarketData.bid_text, font_color_2 = BTSColors.MarketData.bid_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_bid_price, back_color_1 = BTSColors.MarketData.default_background, back_color_2 = BTSColors.MarketData.default_background, font_color_1 = BTSColors.MarketData.bid_text, font_color_2 = BTSColors.MarketData.bid_text, display_format = price_tick_type });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_bid_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = bid_font_color, font_color_2 = bid_font_color, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_bid_price, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = bid_font_color, font_color_2 = bid_font_color, display_format = price_tick_type });
|
||||
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoteset_mid_price, back_color_1 = BTSColors.Quoteset.mid_price_background, back_color_2 = BTSColors.Quoteset.mid_price_background, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = theo_tick_type, font = new Font("Tahoma", 8), is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoteset_mid_theo_diff, back_color_1 = BTSColors.Quoteset.default_background, back_color_2 = BTSColors.Quoteset.default_background, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = theo_tick_type, font = new Font("Tahoma", 7), is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoteset_mid_theo_diff, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = theo_tick_type, font = new Font("Tahoma", 7), is_visibile = false });
|
||||
|
||||
/// call greeks
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_theo, back_color_1 = BTSColors.Greeks.live_theo, back_color_2 = BTSColors.Greeks.live_theo, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, display_format = theo_tick_type, font = new Font("Tahoma", 8) });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.presave_call_theo, back_color_1 = BTSColors.Presave.default_background, back_color_2 = BTSColors.Presave.default_background, font_color_1 = BTSColors.Presave.default_text, font_color_2 = BTSColors.Presave.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.presave_call_theo_diff, back_color_1 = BTSColors.Presave.default_background, back_color_2 = BTSColors.Presave.default_background, font_color_1 = BTSColors.Presave.default_text, font_color_2 = BTSColors.Presave.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_delta, back_color_1 = BTSColors.Greeks.delta, back_color_2 = BTSColors.Greeks.delta, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_gamma, back_color_1 = BTSColors.Greeks.default_background, back_color_2 = BTSColors.Greeks.default_background, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_vega, back_color_1 = BTSColors.Greeks.default_background, back_color_2 = BTSColors.Greeks.default_background, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_theo, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, display_format = theo_tick_type, font = new Font("Tahoma", 8) });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.presave_call_theo, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Presave.default_text, font_color_2 = BTSColors.Presave.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.presave_call_theo_diff, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Presave.default_text, font_color_2 = BTSColors.Presave.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_delta, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_gamma, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_vega, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, is_visibile = false });
|
||||
|
||||
/// call ask bbo
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ask_price, back_color_1 = BTSColors.MarketData.default_background, back_color_2 = BTSColors.MarketData.default_background, font_color_1 = BTSColors.MarketData.ask_text, font_color_2 = BTSColors.MarketData.ask_text, display_format = price_tick_type });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ask_size, back_color_1 = BTSColors.MarketData.default_background, back_color_2 = BTSColors.MarketData.default_background, font_color_1 = BTSColors.MarketData.ask_text, font_color_2 = BTSColors.MarketData.ask_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ask_price, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = ask_font_color, font_color_2 = ask_font_color, display_format = price_tick_type });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ask_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = ask_font_color, font_color_2 = ask_font_color, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0 });
|
||||
|
||||
/// quoter ask
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_ask_price, back_color_1 = BTSColors.Quoter.default_background, back_color_2 = BTSColors.Quoter.default_background, font_color_1 = BTSColors.Quoter.ask_text, font_color_2 = BTSColors.Quoter.ask_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_ask_size, back_color_1 = BTSColors.Quoter.default_background, back_color_2 = BTSColors.Quoter.default_background, font_color_1 = BTSColors.Quoter.ask_text, font_color_2 = BTSColors.Quoter.ask_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoteset_resolved_ask_edge, back_color_1 = BTSColors.Quoteset.default_background, back_color_2 = BTSColors.Quoteset.default_background, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoteset_resolved_ask_size, back_color_1 = BTSColors.Quoteset.default_background, back_color_2 = BTSColors.Quoteset.default_background, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_set_ask_edge, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_set_ask_size, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_ask_price, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.ask_text, font_color_2 = BTSColors.Quoter.ask_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_ask_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.ask_text, font_color_2 = BTSColors.Quoter.ask_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoteset_resolved_ask_edge, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoteset_resolved_ask_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_set_ask_edge, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_quoter_set_ask_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
|
||||
/// ee ask
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ee_ask_price, back_color_1 = BTSColors.Quoter.default_background, back_color_2 = BTSColors.Quoter.default_background, font_color_1 = BTSColors.Quoter.ask_text, font_color_2 = BTSColors.Quoter.ask_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ee_set_ask_edge, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ee_set_ask_size, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ee_ask_price, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.ask_text, font_color_2 = BTSColors.Quoter.ask_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ee_set_ask_edge, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_ee_set_ask_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
|
||||
/// common
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.strike, back_color_1 = BTSColors.Security.default_background, back_color_2 = BTSColors.Security.default_background, font_color_1 = BTSColors.Security.default_text, font_color_2 = BTSColors.Security.default_text, font = new Font("Tahoma", 8), display_format = strike_tick_type });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.standard_strike, back_color_1 = BTSColors.Greeks.default_background, back_color_2 = BTSColors.Greeks.default_background, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, is_visibile = true });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.vol, back_color_1 = BTSColors.Greeks.default_background, back_color_2 = BTSColors.Greeks.default_background, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.vol_change, back_color_1 = BTSColors.Greeks.default_background, back_color_2 = BTSColors.Greeks.default_background, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.straddle_change, back_color_1 = BTSColors.Greeks.default_background, back_color_2 = BTSColors.Greeks.default_background, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.straddle, back_color_1 = BTSColors.Greeks.default_background, back_color_2 = BTSColors.Greeks.default_background, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, is_visibile = false, display_format = theo_tick_type });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.strike, back_color_1 = dark_color, back_color_2 = dark_color, font_color_1 = strike_font_color, font_color_2 = strike_font_color, font = new Font("Tahoma", 8), display_format = strike_tick_type });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.standard_strike, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, is_visibile = true });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.vol, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.vol_change, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.straddle_change, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.straddle, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, is_visibile = false, display_format = theo_tick_type });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.quoteset_mid_price_straddle, back_color_1 = BTSColors.Quoteset.mid_straddle_background, back_color_2 = BTSColors.Quoteset.mid_straddle_background, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, is_visibile = false, display_format = theo_tick_type });
|
||||
/// put
|
||||
|
||||
/// put ee bid
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ee_set_bid_edge, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ee_set_bid_size, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ee_bid_price, back_color_1 = BTSColors.Quoter.default_background, back_color_2 = BTSColors.Quoter.default_background, font_color_1 = BTSColors.Quoter.bid_text, font_color_2 = BTSColors.Quoter.bid_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ee_set_bid_edge, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ee_set_bid_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ee_bid_price, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.bid_text, font_color_2 = BTSColors.Quoter.bid_text, display_format = theo_tick_type, is_visibile = false });
|
||||
|
||||
/// put quoter bid
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoteset_resolved_bid_edge, back_color_1 = BTSColors.Quoteset.default_background, back_color_2 = BTSColors.Quoteset.default_background, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoteset_resolved_bid_size, back_color_1 = BTSColors.Quoteset.default_background, back_color_2 = BTSColors.Quoteset.default_background, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_set_bid_edge, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_set_bid_size, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_bid_price, back_color_1 = BTSColors.Quoter.default_background, back_color_2 = BTSColors.Quoter.default_background, font_color_1 = BTSColors.Quoter.bid_text, font_color_2 = BTSColors.Quoter.bid_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_bid_size, back_color_1 = BTSColors.Quoter.default_background, back_color_2 = BTSColors.Quoter.default_background, font_color_1 = BTSColors.Quoter.bid_text, font_color_2 = BTSColors.Quoter.bid_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoteset_resolved_bid_edge, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoteset_resolved_bid_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_set_bid_edge, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_set_bid_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_bid_price, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.bid_text, font_color_2 = BTSColors.Quoter.bid_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_bid_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.bid_text, font_color_2 = BTSColors.Quoter.bid_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
|
||||
/// put bid bbo
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_bid_size, back_color_1 = BTSColors.MarketData.default_background, back_color_2 = BTSColors.MarketData.default_background, font_color_1 = BTSColors.MarketData.bid_text, font_color_2 = BTSColors.MarketData.bid_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_bid_price, back_color_1 = BTSColors.MarketData.default_background, back_color_2 = BTSColors.MarketData.default_background, font_color_1 = BTSColors.MarketData.bid_text, font_color_2 = BTSColors.MarketData.bid_text, display_format = price_tick_type });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_bid_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = bid_font_color, font_color_2 = bid_font_color, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_bid_price, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = bid_font_color, font_color_2 = bid_font_color, display_format = price_tick_type });
|
||||
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoteset_mid_price, back_color_1 = BTSColors.Quoteset.mid_price_background, back_color_2 = BTSColors.Quoteset.mid_price_background, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = theo_tick_type, font = new Font("Tahoma", 8), is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoteset_mid_theo_diff, back_color_1 = BTSColors.Quoteset.default_background, back_color_2 = BTSColors.Quoteset.default_background, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = theo_tick_type, font = new Font("Tahoma", 7), is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoteset_mid_theo_diff, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = theo_tick_type, font = new Font("Tahoma", 7), is_visibile = false });
|
||||
|
||||
/// put theo
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_theo, back_color_1 = BTSColors.Greeks.live_theo, back_color_2 = BTSColors.Greeks.live_theo, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, display_format = theo_tick_type, font = new Font("Tahoma", 8) });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.presave_put_theo, back_color_1 = BTSColors.Presave.default_background, back_color_2 = BTSColors.Presave.default_background, font_color_1 = BTSColors.Presave.default_text, font_color_2 = BTSColors.Presave.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.presave_put_theo_diff, back_color_1 = BTSColors.Presave.default_background, back_color_2 = BTSColors.Presave.default_background, font_color_1 = BTSColors.Presave.default_text, font_color_2 = BTSColors.Presave.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_delta, back_color_1 = BTSColors.Greeks.delta, back_color_2 = BTSColors.Greeks.delta, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_gamma, back_color_1 = BTSColors.Greeks.default_background, back_color_2 = BTSColors.Greeks.default_background, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_vega, back_color_1 = BTSColors.Greeks.default_background, back_color_2 = BTSColors.Greeks.default_background, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_theo, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, display_format = theo_tick_type, font = new Font("Tahoma", 8) });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.presave_put_theo, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Presave.default_text, font_color_2 = BTSColors.Presave.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.presave_put_theo_diff, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Presave.default_text, font_color_2 = BTSColors.Presave.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_delta, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_gamma, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_vega, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, is_visibile = false });
|
||||
|
||||
/// put ask bbo
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ask_price, back_color_1 = BTSColors.MarketData.default_background, back_color_2 = BTSColors.MarketData.default_background, font_color_1 = BTSColors.MarketData.ask_text, font_color_2 = BTSColors.MarketData.ask_text, display_format = price_tick_type });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ask_size, back_color_1 = BTSColors.MarketData.default_background, back_color_2 = BTSColors.MarketData.default_background, font_color_1 = BTSColors.MarketData.ask_text, font_color_2 = BTSColors.MarketData.ask_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ask_price, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = ask_font_color, font_color_2 = ask_font_color, display_format = price_tick_type });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ask_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = ask_font_color, font_color_2 = ask_font_color, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0 });
|
||||
|
||||
/// put quoter ask
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_ask_price, back_color_1 = BTSColors.Quoter.default_background, back_color_2 = BTSColors.Quoter.default_background, font_color_1 = BTSColors.Quoter.ask_text, font_color_2 = BTSColors.Quoter.ask_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_ask_size, back_color_1 = BTSColors.Quoter.default_background, back_color_2 = BTSColors.Quoter.default_background, font_color_1 = BTSColors.Quoter.ask_text, font_color_2 = BTSColors.Quoter.ask_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoteset_resolved_ask_edge, back_color_1 = BTSColors.Quoteset.default_background, back_color_2 = BTSColors.Quoteset.default_background, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_set_ask_edge, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoteset_resolved_ask_size, back_color_1 = BTSColors.Quoteset.default_background, back_color_2 = BTSColors.Quoteset.default_background, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_set_ask_size, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_ask_price, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.ask_text, font_color_2 = BTSColors.Quoter.ask_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_ask_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.ask_text, font_color_2 = BTSColors.Quoter.ask_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoteset_resolved_ask_edge, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_set_ask_edge, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoteset_resolved_ask_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoteset.default_text, font_color_2 = BTSColors.Quoteset.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_quoter_set_ask_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
|
||||
/// put ee ask
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ee_ask_price, back_color_1 = BTSColors.Quoter.default_background, back_color_2 = BTSColors.Quoter.default_background, font_color_1 = BTSColors.Quoter.ask_text, font_color_2 = BTSColors.Quoter.ask_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ee_set_ask_edge, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ee_set_ask_size, back_color_1 = BTSColors.Quoter.set_background, back_color_2 = BTSColors.Quoter.set_background, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ee_ask_price, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.ask_text, font_color_2 = BTSColors.Quoter.ask_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ee_set_ask_edge, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = theo_tick_type, is_visibile = false });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_ee_set_ask_size, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = BTSColors.Quoter.default_text, font_color_2 = BTSColors.Quoter.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_position, back_color_1 = BTSColors.Position.default_background, back_color_2 = BTSColors.Position.default_background, font_color_1 = BTSColors.Position.default_text, font_color_2 = BTSColors.Position.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false });
|
||||
|
||||
/// shifts
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_shift, back_color_1 = BTSColors.Greeks.default_background, back_color_2 = BTSColors.Greeks.default_background, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false, minimum_width = 1 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_shift, back_color_1 = BTSColors.Greeks.default_background, back_color_2 = BTSColors.Greeks.default_background, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false, minimum_width = 1 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_shifted_theo, back_color_1 = BTSColors.Greeks.default_background, back_color_2 = BTSColors.Greeks.default_background, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false, minimum_width = 1 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_shifted_theo, back_color_1 = BTSColors.Greeks.default_background, back_color_2 = BTSColors.Greeks.default_background, font_color_1 = BTSColors.Greeks.default_text, font_color_2 = BTSColors.Greeks.default_text, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false, minimum_width = 1 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_shift, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false, minimum_width = 1 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_shift, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false, minimum_width = 1 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.call_shifted_theo, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false, minimum_width = 1 });
|
||||
column_configuration_list.Add(new NMSheetColumnConfiguration() { column_name = NMSheetColumnName.put_shifted_theo, back_color_1 = standard_back_color, back_color_2 = standard_back_color, font_color_1 = standard_font_color, font_color_2 = standard_font_color, display_format = Utilities.General.TickConverter2.TickType.tickDecimal0, is_visibile = false, minimum_width = 1 });
|
||||
}
|
||||
|
||||
public NMSheetSettingColumnOrganization()
|
||||
@@ -310,7 +322,7 @@ namespace BCG {
|
||||
return NMSheetColumnType.Security;
|
||||
}
|
||||
|
||||
public static IEnumerable<NMSheetColumnName> get_cols_for_type(NMSheetColumnType col_type) {
|
||||
public static HashSet<NMSheetColumnName> get_cols_for_type(NMSheetColumnType col_type) {
|
||||
HashSet<NMSheetColumnName> rv;
|
||||
return NMSheetSettingColumnOrganization._col_type_map.TryGetValue(col_type, out rv) ? rv : new HashSet<NMSheetColumnName>();
|
||||
}
|
||||
|
||||
@@ -77,12 +77,12 @@ namespace BCG
|
||||
show_vol_shift_control = true;
|
||||
show_atm_navigation_button = true;
|
||||
vol_shift_interval = 0.1;
|
||||
expiration_font = new System.Drawing.Font("Tahoma", 10);
|
||||
expiration_background_color_1 = BTSColors.header;
|
||||
expiration_background_color_2 = BTSColors.header;
|
||||
expiration_font = new System.Drawing.Font("Tahoma", 10, System.Drawing.FontStyle.Bold);
|
||||
expiration_background_color_1 = System.Drawing.Color.FromArgb(65, 105, 170);
|
||||
expiration_background_color_2 = System.Drawing.Color.FromArgb(65, 105, 170);
|
||||
expiration_seperator_line_color = BTSColors.Grid.expiration_seperator;
|
||||
expiration_font_color_1 = BTSColors.header_text;
|
||||
expiration_font_color_2 = BTSColors.header_text;
|
||||
expiration_font_color_1 = System.Drawing.Color.White;
|
||||
expiration_font_color_2 = System.Drawing.Color.White;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -134,12 +134,12 @@ namespace BCG
|
||||
|
||||
public NMSheetSettingGridInternal()
|
||||
{
|
||||
row_seperator_line_color = BTSColors.Grid.grid_line;
|
||||
expiration_seperator_line_color = BTSColors.Grid.expiration_seperator;
|
||||
header_vertical_padding = 2;
|
||||
row_seperator_line_color = System.Drawing.Color.FromArgb(50, 50, 100);
|
||||
expiration_seperator_line_color = System.Drawing.Color.White;
|
||||
header_vertical_padding = 4;
|
||||
draw_row_separator_line = true;
|
||||
horizontal_padding = 4;
|
||||
vertical_padding = 4;
|
||||
horizontal_padding = 20;
|
||||
vertical_padding = 12;
|
||||
horizontal_scroll_step = 50;
|
||||
vertical_scroll_step = 100;
|
||||
distance_for_page = 50;
|
||||
|
||||
+20
-14
@@ -296,19 +296,22 @@
|
||||
if (_api_tasking_enabled) {
|
||||
right_click_menu.AddRange(new System.Collections.Generic.List<System.Windows.Forms.ToolStripItem>() {
|
||||
this._toolstripmenuitem_task_eye,
|
||||
this._toolstripmenuitem_task_quoter,
|
||||
});
|
||||
}
|
||||
if (_api_tasking_enabled) {
|
||||
right_click_menu.AddRange(new System.Collections.Generic.List<System.Windows.Forms.ToolStripItem>() {
|
||||
this._toolstripmenuitem_task_override_edge,
|
||||
this._toolstripmenuitem_task_override_size,
|
||||
// no quoter
|
||||
// this._toolstripmenuitem_task_quoter,
|
||||
});
|
||||
}
|
||||
// No need for overriding edges/sizes seperately
|
||||
// if (_api_tasking_enabled) {
|
||||
// right_click_menu.AddRange(new System.Collections.Generic.List<System.Windows.Forms.ToolStripItem>() {
|
||||
// this._toolstripmenuitem_task_override_edge,
|
||||
// this._toolstripmenuitem_task_override_size,
|
||||
// });
|
||||
// }
|
||||
if (_api_tasking_enabled) {
|
||||
right_click_menu.AddRange(new System.Collections.Generic.List<System.Windows.Forms.ToolStripItem>() {
|
||||
this._toolstripmenuitem_task_eye_switch_all_off,
|
||||
this._toolstripmenuitem_task_manage_templates,
|
||||
// We can do this from the algo studio now
|
||||
// this._toolstripmenuitem_task_manage_templates,
|
||||
});
|
||||
}
|
||||
right_click_menu.AddRange(new System.Collections.Generic.List<System.Windows.Forms.ToolStripItem>() {
|
||||
@@ -354,11 +357,12 @@
|
||||
//
|
||||
// _toolstripmenuitem_task_eye
|
||||
//
|
||||
this._toolstripmenuitem_task_eye.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this._toolstripseperator_task_eye_create,
|
||||
this._toolstripmenuitem_task_eye_add_buys_to_task,
|
||||
this._toolstripmenuitem_task_eye_add_sells_to_task,
|
||||
this._toolstripmenuitem_task_eye_add_buys_and_sells_to_task});
|
||||
// All what we need in _toolstripmenuitem_task_eye is the name of the pre-made tasks
|
||||
// this._toolstripmenuitem_task_eye.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
// this._toolstripseperator_task_eye_create,
|
||||
// this._toolstripmenuitem_task_eye_add_buys_to_task,
|
||||
// this._toolstripmenuitem_task_eye_add_sells_to_task,
|
||||
// this._toolstripmenuitem_task_eye_add_buys_and_sells_to_task});
|
||||
this._toolstripmenuitem_task_eye.Name = "_toolstripmenuitem_task_eye";
|
||||
this._toolstripmenuitem_task_eye.Size = new System.Drawing.Size(216, 22);
|
||||
this._toolstripmenuitem_task_eye.Text = "Eye Tasks";
|
||||
@@ -718,6 +722,7 @@
|
||||
this._statusbar_toolstripstatus_security.Size = new System.Drawing.Size(49, 17);
|
||||
this._statusbar_toolstripstatus_security.Text = "Contract";
|
||||
this._statusbar_toolstripstatus_security.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
_statusbar_toolstripstatus_security.ForeColor = System.Drawing.Color.White;
|
||||
//
|
||||
// _statusbar_vs_dropdown
|
||||
//
|
||||
@@ -737,7 +742,7 @@
|
||||
this._statusbar_toolstripstatus_md_theo.Text = "Test";
|
||||
this._statusbar_toolstripstatus_md_theo.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
this._statusbar_toolstripstatus_md_theo.BackColor = System.Drawing.Color.FromArgb(64, 64, 64);
|
||||
this._statusbar_toolstripstatus_md_theo.ForeColor = System.Drawing.Color.Yellow;
|
||||
this._statusbar_toolstripstatus_md_theo.ForeColor = System.Drawing.Color.White;
|
||||
//
|
||||
// _statusbar_toolstripstatus_column
|
||||
//
|
||||
@@ -747,6 +752,7 @@
|
||||
this._statusbar_toolstripstatus_column.Spring = true;
|
||||
this._statusbar_toolstripstatus_column.Text = "Data Column";
|
||||
this._statusbar_toolstripstatus_column.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
_statusbar_toolstripstatus_column.ForeColor = System.Drawing.Color.White;
|
||||
//
|
||||
// _statustrip_main
|
||||
//
|
||||
|
||||
@@ -62,7 +62,7 @@ namespace BCG {
|
||||
private PerfStatsLogger _recorder = new PerfStatsLogger();
|
||||
private readonly Graphics _graphics = Graphics.FromImage(new Bitmap(1, 1));
|
||||
|
||||
private readonly bool _api_tasking_enabled = false;// mbts.config.Configuration.get<bts.config.toggles.Enable_API_Tasking>().enabled;
|
||||
private readonly bool _api_tasking_enabled = true;// mbts.config.Configuration.get<bts.config.toggles.Enable_API_Tasking>().enabled;
|
||||
|
||||
private NMSheetControl() { InitializeComponent(); }
|
||||
|
||||
@@ -640,9 +640,21 @@ namespace BCG {
|
||||
private static bool _is_control_down() {
|
||||
return (Control.ModifierKeys & Keys.Control) == Keys.Control;
|
||||
}
|
||||
private bool _multiple_strikes_selected() {
|
||||
var sel_map = _theo_grid.theo_grid.get_selection_map();
|
||||
int rv = 0;
|
||||
foreach (var kv1 in sel_map) {
|
||||
foreach (var kv2 in kv1.Value) {
|
||||
rv += kv2.Value.Count();
|
||||
if (rv > 1)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
private void _handle_right_click(NMSheetTheoGrid.GridCell cell) {
|
||||
_last_rightclick_cell = cell;
|
||||
if (!_is_control_down() &&
|
||||
if (!_is_control_down() && !_multiple_strikes_selected() &&
|
||||
(cell.col == NMSheetColumnName.call_theo || cell.col == NMSheetColumnName.put_theo ||
|
||||
cell.col == NMSheetColumnName.straddle || cell.col == NMSheetColumnName.strike)) {
|
||||
_handle_spread_initialization(cell, -1);
|
||||
|
||||
@@ -7,230 +7,144 @@ using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using mbts.engine;
|
||||
using BCG.Utilities.General;
|
||||
using mbts.spark;
|
||||
using bts;
|
||||
using bts.api.orderman;
|
||||
using bts.api;
|
||||
|
||||
namespace BCG {
|
||||
partial class NMSheetControl {
|
||||
//private static readonly string _edge_menu_id = "Edge", _size_menu_id = "Size";
|
||||
//private TaskSecuritySelection _task_selection;
|
||||
|
||||
#region Selection Encap
|
||||
// private class TaskSecuritySelection {
|
||||
// public readonly NMSheetColumnName col;
|
||||
// public readonly NMSheetExpiration exp = null;
|
||||
// public readonly IEnumerable<double> strikes = null;
|
||||
// public readonly NMSheetSettingColumnOrganization.NMSheetColumnInfo col_info = null;
|
||||
// public readonly bool is_active = false;
|
||||
// private readonly List<Tuple<uint, string>> _key_text_tups = null;
|
||||
|
||||
// public TaskSecuritySelection(NMSheetControl parent_control) {
|
||||
// var sel_map = parent_control._theo_grid.theo_grid.get_selection_map_data();
|
||||
// if (sel_map.get_single_exp_single_col_sel(out exp, out col, out strikes)) {
|
||||
// is_active = true;
|
||||
// col_info = NMSheetSettingColumnOrganization.get_column_info(col);
|
||||
// _key_text_tups = new List<Tuple<uint, string>>();
|
||||
// /// loop for sec keys (not side)
|
||||
// foreach (double k in strikes) {
|
||||
// uint seckey;
|
||||
// if (col_info.is_call) {
|
||||
// if (parent_control._sheet_data.get_security_key(exp, k, true, out seckey))
|
||||
// _key_text_tups.Add(Tuple.Create(seckey, ContractUtilities.get_option_display_text(exp.nmsheet_symbol.option_name, exp.option_expiration, k, true)));
|
||||
// }
|
||||
// if (col_info.is_put) {
|
||||
// if (parent_control._sheet_data.get_security_key(exp, k, false, out seckey))
|
||||
// _key_text_tups.Add(Tuple.Create(seckey, ContractUtilities.get_option_display_text(exp.nmsheet_symbol.option_name, exp.option_expiration, k, false)));
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// public TaskType? get_selected_edge_tasktype() {
|
||||
// if (col == NMSheetColumnName.call_ee_set_ask_edge || col == NMSheetColumnName.call_ee_set_bid_edge || col == NMSheetColumnName.put_ee_set_ask_edge || col == NMSheetColumnName.put_ee_set_bid_edge)
|
||||
// return TaskType.Eye;
|
||||
// if (col == NMSheetColumnName.call_quoter_set_ask_edge || col == NMSheetColumnName.call_quoter_set_bid_edge || col == NMSheetColumnName.put_quoter_set_ask_edge || col == NMSheetColumnName.put_quoter_set_bid_edge)
|
||||
// return TaskType.Quoter;
|
||||
// return null;
|
||||
// }
|
||||
|
||||
// public TaskType? get_selected_size_tasktype() {
|
||||
// if (col == NMSheetColumnName.call_ee_set_ask_size || col == NMSheetColumnName.call_ee_set_bid_size || col == NMSheetColumnName.put_ee_set_ask_size || col == NMSheetColumnName.put_ee_set_bid_size)
|
||||
// return TaskType.Eye;
|
||||
// if (col == NMSheetColumnName.call_quoter_set_ask_size || col == NMSheetColumnName.call_quoter_set_bid_size || col == NMSheetColumnName.put_quoter_set_ask_size || col == NMSheetColumnName.put_quoter_set_bid_size)
|
||||
// return TaskType.Quoter;
|
||||
// return null;
|
||||
// }
|
||||
|
||||
// public IEnumerable<uint> keys { get { return _key_text_tups.Select(t => t.Item1); } }
|
||||
// public IEnumerable<string> names { get { return _key_text_tups.Select(t => t.Item2); } }
|
||||
// }
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
private void _init_task_ui() {
|
||||
// _init_task_ee_ui();
|
||||
// _init_task_quoter_ui();
|
||||
// _threaded_bb.add_to_subscription_list(TaskingTags.TemplatesTag);
|
||||
// _toolstripmenuitem_task_manage_templates.Click += (s, e) => _threaded_bb.sec_thread_write(TaskingTags.ShowTemplates, new object());
|
||||
// _toolstripmenuitem_task_eye_switch_all_off.Click += (s, e) => _threaded_bb.sec_thread_write(TaskingTags.SwitchOffAllTasksTag, false);
|
||||
// _toolstripmenuitem_task_undo_edge_override.Click += (s, e) => _set_selection_edge(false);
|
||||
// _toolstripmenuitem_task_enter_edge.Click += (s, e) => _show_task_edge_entry_dialog();
|
||||
// _toolstripmenuitem_task_undo_size_override.Click += (s, e) => _set_selection_size(false);
|
||||
// _toolstripmenuitem_task_enter_size.Click += (s, e) => _show_task_size_entry_dialog();
|
||||
_threaded_bb.subscribe(SparkTags.Algos);
|
||||
_threaded_bb.subscribe(SparkTags.AccountsTag);
|
||||
_threaded_bb.subscribe(SparkTags.Users);
|
||||
_threaded_bb.subscribe(SparkTags.CurrentUser);
|
||||
}
|
||||
|
||||
Nullable<UInt32> _get_account_id(string name) {
|
||||
var map = _threaded_bb.read_state(SparkTags.AccountsTag);
|
||||
if (map == null)
|
||||
return null;
|
||||
var accounts = map.Values.Where(at => at.name == name);
|
||||
if (accounts != null && accounts.Count() == 1)
|
||||
return accounts.ElementAt(0).id;
|
||||
return null;
|
||||
}
|
||||
|
||||
UserTuple _get_user() {
|
||||
return _threaded_bb.read_state(SparkTags.CurrentUser,
|
||||
UserTuple.empty);
|
||||
}
|
||||
|
||||
void _launch_eye(AlgoData algo_data, Side ee_side) {
|
||||
var user = _get_user();
|
||||
if (user == UserTuple.empty) {
|
||||
bts.Log.Ui.error($"_launch_eye could not get current user");
|
||||
return;
|
||||
}
|
||||
SystemContractData sc_data = _threaded_bb.read_state(SparkTags.SystemContractsTag);
|
||||
if (sc_data == null) {
|
||||
bts.Log.Ui.error($"_launch_eye could not find SystemContractData");
|
||||
return;
|
||||
}
|
||||
var sel_map = _theo_grid.theo_grid.get_selection_map_data();
|
||||
var sel = sel_map.get_selection_keys((exp, strike, is_call) => {
|
||||
var cp_id = sc_data.get_option_sec_id(exp.option_exchange, exp.nmsheet_symbol.option_name, exp.option_expiration, strike);
|
||||
if (cp_id != null) {
|
||||
return is_call ? (cp_id.Item1.HasValue ? cp_id.Item1.Value : 0) :
|
||||
(cp_id.Item2.HasValue ? cp_id.Item2.Value : 0);
|
||||
} else
|
||||
return 0;
|
||||
});
|
||||
HashSet<uint> sec_ids = new HashSet<uint>(
|
||||
sel.Keys.Where(k => k.security_key != 0).Select(k => k.security_key));
|
||||
if (sec_ids.Count() == 0)
|
||||
return;
|
||||
string sec_ids_txt = String.Empty;
|
||||
foreach (var id in sec_ids)
|
||||
sec_ids_txt += id.ToString() + ",";
|
||||
sec_ids_txt = sec_ids_txt.Substring(0, sec_ids_txt.Count() - 1);
|
||||
bts.Log.Ui.info($"_launch_eye secs: {sec_ids_txt}");
|
||||
CustomOrderDefinition cod = algo_data.value.CloneToMutable();
|
||||
cod.Dynamic.OrderParams["Securities"] = new DynamicOrderParam() {
|
||||
AsString = sec_ids_txt
|
||||
};
|
||||
string account = cod.Dynamic.OrderParams["Account"].AsString;
|
||||
var account_id = _get_account_id(account);
|
||||
if (!account_id.HasValue) {
|
||||
bts.Log.Ui.error($"_launch_eye could resolve account {account}");
|
||||
return;
|
||||
}
|
||||
OrderDefinition od = new OrderDefinition() {
|
||||
SecurityKey = sec_ids.ElementAt(0),
|
||||
Side = ee_side,
|
||||
User = user.name,
|
||||
UserId = user.id,
|
||||
Account = account,
|
||||
AccountId = account_id.Value,
|
||||
TimeInForce = TimeInForce.Ioc,
|
||||
ManualOrderIndicator = ManualOrderIndicator.No,
|
||||
CtiCode = CTICode.CtiCode1,
|
||||
CustomerOrFirm = CustomerOrFirm.Firm,
|
||||
//CustomDef = cod,
|
||||
CustomDef = new CustomOrderDefinition {
|
||||
Composite = new CompositeOrderDefinition {
|
||||
AlgoTemplateKey = algo_data.key.persisted,
|
||||
Definition = cod
|
||||
}
|
||||
}
|
||||
};
|
||||
double price = 0;
|
||||
uint size = Convert.ToUInt32(cod.Dynamic.OrderParams["Target Quantity"].AsDouble);
|
||||
var orders = new List<(OrderDefinitionImmutable definition, double price, uint size)>();
|
||||
orders.Add((new OrderDefinitionImmutable(od), price, size));
|
||||
_threaded_bb.post(SparkTags.RecreateOrder, orders);
|
||||
}
|
||||
|
||||
// Returns the side if there is one selected column AND it is a market data column
|
||||
private Nullable<Side> _get_md_selection() {
|
||||
var sel_map = _theo_grid.theo_grid.get_selection_map_data();
|
||||
HashSet<NMSheetColumnName> sel_cols = sel_map.get_selected_cols();
|
||||
if (sel_cols == null || sel_cols.Count != 1)
|
||||
return null;
|
||||
NMSheetColumnName sel_col = sel_cols.ElementAt(0);
|
||||
HashSet<NMSheetColumnName> md_cols =
|
||||
NMSheetSettingColumnOrganization.get_cols_for_type(NMSheetColumnType.BBO);
|
||||
if (!md_cols.Contains(sel_col))
|
||||
return null;
|
||||
NMSheetSettingColumnOrganization.NMSheetColumnInfo col_info =
|
||||
NMSheetSettingColumnOrganization.get_column_info(sel_col);
|
||||
return col_info.is_bid ? Side.Buy : Side.Sell;
|
||||
}
|
||||
|
||||
private void _adapt_contextmenu_for_tasks() {
|
||||
// _task_selection = new TaskSecuritySelection(this);
|
||||
// _adapt_contextmenu_for_tasks_eye();
|
||||
// _adapt_contextmenu_for_tasks_quoter();
|
||||
// /// if selection is edge enable edge menu else disable it
|
||||
// _toolstripmenuitem_task_override_edge.Enabled = false;
|
||||
// _toolstripmenuitem_task_override_size.Enabled = false;
|
||||
// TaskType? task_type; ElectronicTradingTask sel_task; IEnumerable<SecuritySideKey> sel_secs;
|
||||
// if (_get_task_edge_size_selection(true, out task_type, out sel_task, out sel_secs)) {
|
||||
// _toolstripmenuitem_task_override_edge.Enabled = true;
|
||||
// _populate_edge_menu();
|
||||
// }
|
||||
// if (_get_task_edge_size_selection(false, out task_type, out sel_task, out sel_secs)) {
|
||||
// _toolstripmenuitem_task_override_size.Enabled = true;
|
||||
// _populate_size_menu();
|
||||
// }
|
||||
// check for selected cols to be only bids or asks
|
||||
string cm_menu_txt = "Eye Tasks";
|
||||
_toolstripmenuitem_task_eye.Text = cm_menu_txt;
|
||||
_toolstripmenuitem_task_eye.DropDown.Items.Clear();
|
||||
_toolstripmenuitem_task_eye.Enabled = false;
|
||||
IEnumerable<AlgoData> algo_data = _threaded_bb.read_state(SparkTags.Algos);
|
||||
if (algo_data == null)
|
||||
return;
|
||||
Nullable<Side> side = _get_md_selection();
|
||||
if (side == null)
|
||||
return;
|
||||
algo_data = algo_data.Where(
|
||||
a => a.value.HasDynamic && "Tasking Eye".Equals(a.value.Dynamic.DynamicOrderType));
|
||||
if (algo_data == null || algo_data.Count() == 0)
|
||||
return;
|
||||
Side ee_side = side.Value == Side.Buy ? Side.Sell : Side.Buy;
|
||||
var ee_side_txt = ee_side.ToString().ToUpper();
|
||||
_toolstripmenuitem_task_eye.Text = $"{cm_menu_txt} {ee_side_txt}";
|
||||
_toolstripmenuitem_task_eye.ForeColor = ee_side == Side.Buy ? Color.Blue : Color.Red;
|
||||
_toolstripmenuitem_task_eye.Enabled = true;
|
||||
foreach (var algo in algo_data) {
|
||||
var mi = _toolstripmenuitem_task_eye.DropDown.Items.Add(algo.name);
|
||||
mi.Click += (o, e) => {
|
||||
_launch_eye(algo, ee_side);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#region Task Selection Edge
|
||||
private void _populate_edge_menu() {
|
||||
// CommonGUIUtilities.remove_items_from_menu_dropdown(_toolstripmenuitem_task_override_edge, ti => _edge_menu_id.Equals(ti.Tag));
|
||||
// IEnumerable<ToolStripItem> edge_menu_items = _get_preconfigured_edges().Select(p => new ToolStripMenuItem(p.Item2, null, (s, e) => _set_selection_edge(true, p.Item1)) { Tag = _edge_menu_id }).ToArray();
|
||||
// _toolstripmenuitem_task_override_edge.DropDownItems.InsertRange(0, edge_menu_items);
|
||||
}
|
||||
|
||||
private void _show_task_edge_entry_dialog() {
|
||||
// GridValueEditorWinForm editor_form = new GridValueEditorWinForm("Override Edge", typeof(double), PointToScreen(_theo_grid.theo_grid.get_last_mouse_clicked_point()));
|
||||
// editor_form.on_commit_click += v => _set_selection_edge(true, (double)v);
|
||||
// editor_form.ShowDialog();
|
||||
}
|
||||
|
||||
private void _set_selection_edge(bool is_set, double edge = Double.NaN) {
|
||||
|
||||
// TaskType? task_type; ElectronicTradingTask sel_task; IEnumerable<SecuritySideKey> sel_secs;
|
||||
// if (_get_task_edge_size_selection(true, out task_type, out sel_task, out sel_secs)) {
|
||||
// sel_task = is_set ? TaskingUtilityFunctions.update_edges(sel_task, sel_secs.Select(k => Tuple.Create(k, edge))) : TaskingUtilityFunctions.remove_edge_overrides(sel_task, sel_secs);
|
||||
// _threaded_bb.sec_thread_write(TaskingTags.ModifyTaskTag, sel_task);
|
||||
// }
|
||||
}
|
||||
|
||||
// private IEnumerable<Tuple<double, string>> _get_preconfigured_edges() {
|
||||
// NMSheetSettings settings = _settings ?? new NMSheetSettings();
|
||||
// NMSheetColumnConfiguration col_conf = _settings.get_column_conf(NMSheetColumnName.call_quoter_set_bid_edge);
|
||||
// TickConverter2.TickType tick_type = col_conf != null ? col_conf.display_format : TickConverter2.TickType.tickDecimal2;
|
||||
// return _parse_edge_numbers(settings.setting_quoteset.preconfigured_edges, tick_type);
|
||||
// }
|
||||
|
||||
// private IEnumerable<Tuple<double, string>> _get_preconfigured_edge_shifts() {
|
||||
// NMSheetSettings settings = _settings ?? new NMSheetSettings();
|
||||
// NMSheetColumnConfiguration col_conf = _settings.get_column_conf(NMSheetColumnName.call_quoter_set_bid_edge);
|
||||
// TickConverter2.TickType tick_type = col_conf != null ? col_conf.display_format : TickConverter2.TickType.tickDecimal2;
|
||||
// return _parse_edge_numbers(settings.setting_quoteset.preconfigured_edge_shifts, tick_type);
|
||||
// }
|
||||
|
||||
// private IEnumerable<uint> _get_preconfigured_sizes() {
|
||||
// List<uint> rv = new List<uint>();
|
||||
// if (_settings != null && _settings.setting_quoteset != null && !String.IsNullOrEmpty(_settings.setting_quoteset.preconfigured_sizes)) {
|
||||
// foreach (string s in _settings.setting_quoteset.preconfigured_sizes.Split(',')) {
|
||||
// uint size = 0;
|
||||
// if (uint.TryParse(s, out size))
|
||||
// rv.Add(size);
|
||||
// }
|
||||
// }
|
||||
// rv.Sort();
|
||||
// return rv;
|
||||
// }
|
||||
|
||||
// private static IEnumerable<Tuple<double, string>> _parse_edge_numbers(string parsable_doubles, TickConverter2.TickType tick_type) {
|
||||
// List<Tuple<double, string>> rv = new List<Tuple<double, string>>();
|
||||
// parsable_doubles = parsable_doubles ?? String.Empty;
|
||||
// string[] preconf_edges = parsable_doubles.Split(',', ' ');
|
||||
// foreach (string s in preconf_edges) {
|
||||
// double d;
|
||||
// if (!String.IsNullOrEmpty(s) && Double.TryParse(s, out d)) {
|
||||
// double edge_d;
|
||||
// string edge_s;
|
||||
// try {
|
||||
// TickConverter2.to_tick(d, TickConverter2.getTickTypeInfo(tick_type), true, out edge_s, out edge_d);
|
||||
// rv.Add(new Tuple<double, string>(edge_d, edge_s));
|
||||
// } catch (Exception ex) { mbts.Logger.log(bts.log.Level.Error, bts.log.Subsystem.ui, ex.Message); }
|
||||
// }
|
||||
// }
|
||||
// rv.Sort((Tuple<double, string> p1, Tuple<double, string> p2) => { return p1.Item1.CompareTo(p2.Item1); });
|
||||
// return rv;
|
||||
// }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Task Selection Size
|
||||
private void _populate_size_menu() {
|
||||
// CommonGUIUtilities.remove_items_from_menu_dropdown(_toolstripmenuitem_task_override_size, ti => _size_menu_id.Equals(ti.Tag));
|
||||
// IEnumerable<ToolStripItem> size_menu_items = _get_preconfigured_sizes().Select(p => new ToolStripMenuItem(p.ToString(), null, (s, e) => _set_selection_size(true, p)) { Tag = _size_menu_id }).ToArray();
|
||||
// _toolstripmenuitem_task_override_size.DropDownItems.InsertRange(0, size_menu_items);
|
||||
}
|
||||
|
||||
private void _show_task_size_entry_dialog() {
|
||||
// GridValueEditorWinForm editor_form = new GridValueEditorWinForm("Override Size", typeof(uint), PointToScreen(_theo_grid.theo_grid.get_last_mouse_clicked_point()));
|
||||
// editor_form.on_commit_click += s => _set_selection_size(true, (uint)s);
|
||||
// editor_form.ShowDialog();
|
||||
}
|
||||
|
||||
private void _set_selection_size(bool is_set, uint size = 0) {
|
||||
// TaskType? task_type; ElectronicTradingTask sel_task; IEnumerable<SecuritySideKey> sel_secs;
|
||||
// if (_get_task_edge_size_selection(false, out task_type, out sel_task, out sel_secs)) {
|
||||
// sel_task = is_set ? TaskingUtilityFunctions.update_sizes(sel_task, sel_secs.Select(k => Tuple.Create(k, size))) : TaskingUtilityFunctions.remove_size_overrides(sel_task, sel_secs);
|
||||
// _threaded_bb.sec_thread_write(TaskingTags.ModifyTaskTag, sel_task);
|
||||
// }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// private bool _get_task_edge_size_selection(bool is_edge, out TaskType? task_type, out ElectronicTradingTask task, out IEnumerable<SecuritySideKey> secsidekeys) {
|
||||
// task_type = null; task = null; secsidekeys = null;
|
||||
// task_type = is_edge ? _task_selection.get_selected_edge_tasktype() : _task_selection.get_selected_size_tasktype();
|
||||
// if (task_type != null) {
|
||||
// secsidekeys = _task_selection.keys.Select(k => new SecuritySideKey(k, _task_selection.col_info.is_bid ? Side.Buy : bts.o2.msgs.Side.Sell));
|
||||
// TaskingConsolidatedData task_data = _sheet_data.get_task_data();
|
||||
// if (task_data != null) {
|
||||
// IEnumerable<TaskLiveData> owning_tasks = task_data.get_security_owning_tasks(secsidekeys, task_type.Value);
|
||||
// if (owning_tasks != null && owning_tasks.Count() == 1) {
|
||||
// task = owning_tasks.ElementAt(0).task;
|
||||
// return true;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return false;
|
||||
// }
|
||||
|
||||
private void _handle_task_mouse_event(NMSheetTheoGrid.GridCell cell) {
|
||||
// if (cell != null && cell.expiration != null) {
|
||||
// NMSheetColumnType col_type = NMSheetSettingColumnOrganization.get_col_type(cell.col);
|
||||
// bool is_ee_col = col_type == NMSheetColumnType.EE, is_quoter_col = col_type == NMSheetColumnType.Quoter;
|
||||
// if (is_ee_col || is_quoter_col) {
|
||||
// uint seckey;
|
||||
// if (_sheet_data.get_security_key(cell.expiration, cell.strike, cell.call_selected ? true : false, out seckey)) {
|
||||
// bool is_call, is_bid, is_ask;
|
||||
// NMSheetSettingColumnOrganization.parse_column(cell.col, out is_call, out is_call, out is_bid, out is_ask);
|
||||
// SecuritySideKey secsidekey = is_bid ? new SecuritySideKey(seckey, Side.Buy) : new SecuritySideKey(seckey, Side.Sell);
|
||||
// IEnumerable<TaskLiveData> owning_tasks = _sheet_data.get_task_data().get_security_owning_tasks(new SecuritySideKey[] { secsidekey }, is_ee_col ? TaskType.Eye : TaskType.Quoter);
|
||||
// if (owning_tasks.Count() == 1)
|
||||
// _threaded_bb.sec_thread_write(TaskingTags.ShowTaskDetails, owning_tasks.ElementAt(0));
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
// private static ElectronicTradingTask _get_mod_task(ElectronicTradingTask task, TaskSecuritySelection sel) {
|
||||
// List<uint> secs = new List<uint>(task.explicit_task.securities);
|
||||
// List<string> secs_desc = new List<string>(task.explicit_task.security_descriptions);
|
||||
// secs.AddRange(sel.keys);
|
||||
// secs_desc.AddRange(sel.names);
|
||||
// ElectronicTradingTask mod_task = task.with(explicit_task: task.explicit_task.with(securities: secs, security_descriptions: secs_desc));
|
||||
// return mod_task;
|
||||
// }
|
||||
}
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
using mbts;
|
||||
using mbts.tasks;
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace BCG {
|
||||
partial class NMSheetControl {
|
||||
// private const string _create_menu_tag = "Create";
|
||||
// private bool _task_ee_enabled = true;
|
||||
|
||||
private void _init_task_ee_ui() {
|
||||
// _task_ee_enabled = false;// TaskingUtilityFunctions.is_tasking_enabled(_nmsheet_symbol_list.Select(s => s.option_exchange));
|
||||
// if (_task_ee_enabled)
|
||||
// _disable_task_ee_submenus();
|
||||
// else
|
||||
// _toolstripmenuitem_task_eye.Enabled = false;
|
||||
// _toolstripmenuitem_settings_show_task_ee_data.Click += (s, e) => _get_toolstripmenuitem_display_state_and_publish(_toolstripmenuitem_settings_show_task_ee_data,
|
||||
// NMSheetSettingColumnOrganization.get_cols_for_type(NMSheetColumnType.EE).ToArray());
|
||||
// _toolstripmenuitem_task_manage_templates.Click += (s, e) => _threaded_bb.sec_thread_write(TaskingTags.ShowTemplates, new object());
|
||||
}
|
||||
|
||||
private void _disable_task_ee_submenus() {
|
||||
// _toolstripmenuitem_task_eye.Enabled = _toolstripmenuitem_task_eye_add_buys_to_task.Enabled =
|
||||
// _toolstripmenuitem_task_eye_add_sells_to_task.Enabled = _toolstripmenuitem_task_eye_add_buys_and_sells_to_task.Enabled = false;
|
||||
// _toolstripmenuitem_task_eye_add_buys_to_task.DropDownItems.Clear();
|
||||
// _toolstripmenuitem_task_eye_add_sells_to_task.DropDownItems.Clear();
|
||||
// _toolstripmenuitem_task_eye_add_buys_and_sells_to_task.DropDownItems.Clear();
|
||||
|
||||
// List<ToolStripItem> create_menu_items = new List<ToolStripItem>();
|
||||
// foreach (ToolStripItem ti in _toolstripmenuitem_task_eye.DropDownItems)
|
||||
// if (_create_menu_tag.Equals(ti.Tag))
|
||||
// create_menu_items.Add(ti);
|
||||
// create_menu_items.ForEach(ti => _toolstripmenuitem_task_eye.DropDownItems.Remove(ti));
|
||||
}
|
||||
|
||||
private void _adapt_contextmenu_for_tasks_eye() {
|
||||
// if (_task_ee_enabled) {
|
||||
// _disable_task_ee_submenus();
|
||||
// if (_task_selection.is_active) {
|
||||
// _toolstripmenuitem_task_eye.Enabled = true;
|
||||
// ///Create
|
||||
// IEnumerable<TaskCommon> templates = _threaded_bb.sec_thread_retrieve_from_cache(TaskingTags.TemplatesTag) as IEnumerable<TaskCommon>;
|
||||
// templates = templates == null || templates.Count() == 0 ? new TaskCommon[] { TaskCommon.Default.with(name: "New Task") } : templates;
|
||||
// double min_strike = _task_selection.strikes.Min(), max_strike = _task_selection.strikes.Max();
|
||||
// string name = TaskType.Eye.ToString() + " " +
|
||||
// _task_selection.exp.get_display_text() + " " +
|
||||
// (min_strike == max_strike ? min_strike.ToString("0.00") : String.Format("{0} - {1}", min_strike.ToString("0.00"), max_strike.ToString("0.00")));
|
||||
// int add_task_index = 0;
|
||||
// foreach (TaskCommon t in templates) {
|
||||
// ToolStripMenuItem add_task_item = new ToolStripMenuItem(t.name, null, (s, e) => {
|
||||
// mbts.tasks.TaskCommon common_task = t.with(task_type: TaskType.Eye, name: name, side: TaskSide.None, id: Guid.NewGuid().ToString());
|
||||
// ExplicitTask explicit_task = ExplicitTask.Default.with(securities: _task_selection.keys, security_descriptions: _task_selection.names);
|
||||
// _threaded_bb.sec_thread_write(TaskingTags.ShowCreateTask, new ElectronicTradingTask(common_task, explicit_task));
|
||||
// });
|
||||
// add_task_item.Tag = _create_menu_tag;
|
||||
// add_task_item.Enabled = true;
|
||||
// _toolstripmenuitem_task_eye.DropDownItems.Insert(add_task_index++, add_task_item);
|
||||
// }
|
||||
// /// Add Buys to
|
||||
// TaskingConsolidatedData task_data = _sheet_data.get_task_data();
|
||||
// _toolstripmenuitem_task_eye_add_buys_to_task.Enabled = true;
|
||||
// IEnumerable<TaskLiveData> tasks = task_data.get_tasks(TaskType.Eye).OrderBy(t => t.name);
|
||||
// foreach (TaskLiveData t in tasks) {
|
||||
// ElectronicTradingTask mod_task = _get_mod_task(t.task, _task_selection);
|
||||
// ToolStripMenuItem add_item = new ToolStripMenuItem(t.get_summary_text(), null, (s, e) => _threaded_bb.sec_thread_write(TaskingTags.ShowEditTask, mod_task));
|
||||
// add_item.Enabled = t.task.common.side != TaskSide.Sell;
|
||||
// _toolstripmenuitem_task_eye_add_buys_to_task.DropDownItems.Add(add_item);
|
||||
// }
|
||||
// /// Add Sells to
|
||||
// _toolstripmenuitem_task_eye_add_sells_to_task.Enabled = true;
|
||||
// foreach (TaskLiveData t in tasks) {
|
||||
// ElectronicTradingTask mod_task = _get_mod_task(t.task, _task_selection);
|
||||
// ToolStripMenuItem add_item = new ToolStripMenuItem(t.get_summary_text(), null, (s, e) => _threaded_bb.sec_thread_write(TaskingTags.ShowEditTask, mod_task));
|
||||
// add_item.Enabled = t.task.common.side != TaskSide.Buy;
|
||||
// _toolstripmenuitem_task_eye_add_sells_to_task.DropDownItems.Add(add_item);
|
||||
// }
|
||||
// /// Add Buys/Sells to
|
||||
// _toolstripmenuitem_task_eye_add_buys_and_sells_to_task.Enabled = true;
|
||||
// foreach (TaskLiveData t in tasks) {
|
||||
// ElectronicTradingTask mod_task = _get_mod_task(t.task, _task_selection);
|
||||
// ToolStripMenuItem add_item = new ToolStripMenuItem(t.get_summary_text(), null, (s, e) => _threaded_bb.sec_thread_write(TaskingTags.ShowEditTask, mod_task));
|
||||
// add_item.Enabled = t.task.common.side == (TaskSide.Buy | TaskSide.Sell);
|
||||
// _toolstripmenuitem_task_eye_add_buys_and_sells_to_task.DropDownItems.Add(add_item);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -151,5 +151,9 @@ namespace BCG {
|
||||
|
||||
public bool is_active() { return _selection_map.Count > 0; }
|
||||
|
||||
public HashSet<NMSheetColumnName> get_selected_cols() {
|
||||
return _selected_cols;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -156,32 +156,29 @@ namespace mbts.spark.utilities {
|
||||
public SpreaderOrderDefinitionImmutable spreader_orderi(SecurityImmutable security, ExecutionStrategyImmutable strategy) => new SpreaderOrderDefinitionImmutable(spreader_order(security, strategy));
|
||||
|
||||
public OrderMetadata get_metadata(OrderRecordImmutable order) => get_metadata(order.Def.CustomDef.CustomCase);
|
||||
public OrderMetadata get_metadata(CustomOrderDefinition.CustomOneofCase order_type) {
|
||||
switch (order_type) {
|
||||
case CustomOrderDefinition.CustomOneofCase.Market: return new OrderMetadata { KeyBinding = "M", Color = BTSColors.yellow.rgb_color(), NoProps = true };
|
||||
case CustomOrderDefinition.CustomOneofCase.Limit: return new OrderMetadata { KeyBinding = "L", Color = BTSColors.green.rgb_color(), NoProps = true };
|
||||
case CustomOrderDefinition.CustomOneofCase.Stop: return new OrderMetadata { KeyBinding = "S", Color = BTSColors.red_orange.rgb_color(), NoProps = true };
|
||||
case CustomOrderDefinition.CustomOneofCase.StopLimit: return new OrderMetadata { KeyBinding = "SL", Color = BTSColors.pale_green.rgb_color() };
|
||||
case CustomOrderDefinition.CustomOneofCase.GlbxIceberg: return new OrderMetadata { KeyBinding = "GB", Color = BTSColors.Orders.glbx_iceberg_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Iceberg: return new OrderMetadata { KeyBinding = "I", Color = BTSColors.pale_blue.rgb_color() };
|
||||
case CustomOrderDefinition.CustomOneofCase.TimeBox: return new OrderMetadata { KeyBinding = "TB", Color = BTSColors.purple.rgb_color() };
|
||||
case CustomOrderDefinition.CustomOneofCase.Tick: return new OrderMetadata { KeyBinding = "T", Color = BTSColors.Orders.tick_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Lean: return new OrderMetadata { KeyBinding = "L", Color = BTSColors.Orders.lean_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Join: return new OrderMetadata { KeyBinding = "J", Color = BTSColors.Orders.join_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Top: return new OrderMetadata { KeyBinding = "D", Color = BTSColors.Orders.top_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Cover: return new OrderMetadata { KeyBinding = "C", Color = BTSColors.Orders.cover_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Oco: return new OrderMetadata { KeyBinding = "C", Color = BTSColors.Orders.oco_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Pricer: return new OrderMetadata { KeyBinding = "C", Color = BTSColors.Orders.pricer_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Offset: return new OrderMetadata { KeyBinding = "O", Color = BTSColors.Orders.off_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Trigger: return new OrderMetadata { KeyBinding = "T", Color = BTSColors.Orders.trigger_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Spreader: return new OrderMetadata { KeyBinding = "", Color = BTSColors.Orders.spreader_order };
|
||||
// case CustomOrderDefinition.CustomOneofCase.Splitter: return new OrderMetadata { KeyBinding = "", Color = BTSColors.orange.rgb_color() };
|
||||
case CustomOrderDefinition.CustomOneofCase.Dynamic: return new OrderMetadata { KeyBinding = "", Color = BTSColors.Orders.top_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.None: goto default;
|
||||
//case CustomOrderDefinition.CustomOneofCase.QueueHolder: return new OrderMetadata { KeyBinding = "Q", Color = BTSColors.purple.rgb_color() };
|
||||
default: return _default_order_metadata;
|
||||
}
|
||||
}
|
||||
|
||||
public OrderMetadata get_metadata(CustomOrderDefinition.CustomOneofCase order_type) =>
|
||||
order_type switch {
|
||||
CustomOrderDefinition.CustomOneofCase.Market => new() { KeyBinding = "M", Color = BTSColors.Orders.market_order, NoProps = true },
|
||||
CustomOrderDefinition.CustomOneofCase.Limit => new() { KeyBinding = "L", Color = BTSColors.Orders.limit_order, NoProps = true },
|
||||
CustomOrderDefinition.CustomOneofCase.Stop => new() { KeyBinding = "S", Color = BTSColors.Orders.stop_order, NoProps = true },
|
||||
CustomOrderDefinition.CustomOneofCase.StopLimit => new() { KeyBinding = "SL", Color = BTSColors.Orders.stop_limit_order },
|
||||
CustomOrderDefinition.CustomOneofCase.GlbxIceberg => new() { KeyBinding = "GB", Color = BTSColors.Orders.glbx_iceberg_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Iceberg => new() { KeyBinding = "I", Color = BTSColors.Orders.iceberg_order },
|
||||
CustomOrderDefinition.CustomOneofCase.TimeBox => new() { KeyBinding = "TB", Color = BTSColors.Orders.time_box_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Tick => new() { KeyBinding = "T", Color = BTSColors.Orders.tick_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Lean => new() { KeyBinding = "L", Color = BTSColors.Orders.lean_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Join => new() { KeyBinding = "J", Color = BTSColors.Orders.join_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Top => new() { KeyBinding = "D", Color = BTSColors.Orders.top_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Cover => new() { KeyBinding = "C", Color = BTSColors.Orders.cover_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Oco => new() { KeyBinding = "C", Color = BTSColors.Orders.oco_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Pricer => new() { KeyBinding = "C", Color = BTSColors.Orders.pricer_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Offset => new() { KeyBinding = "O", Color = BTSColors.Orders.off_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Trigger => new() { KeyBinding = "T", Color = BTSColors.Orders.trigger_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Spreader => new() { KeyBinding = "", Color = BTSColors.Orders.spreader_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Dynamic => new() { KeyBinding = "", Color = BTSColors.Orders.top_order },
|
||||
_ => _default_order_metadata
|
||||
};
|
||||
|
||||
public void Dispose() =>
|
||||
Disposable.dispose(ref _dispose);
|
||||
@@ -367,30 +364,28 @@ namespace mbts.spark.utilities {
|
||||
_algo_type_case_descriptor_data.TryGetValue(algo_type, out AlgoTypeCaseDescriptorData d) ? d.child_algo_data : Array.Empty<ChildAlgoData>();
|
||||
#endregion
|
||||
|
||||
public static OrderMetadata get_metadata(CustomOrderDefinition.CustomOneofCase order_type) {
|
||||
switch (order_type) {
|
||||
case CustomOrderDefinition.CustomOneofCase.Market: return new OrderMetadata { KeyBinding = "M", Color = BTSColors.yellow.rgb_color(), NoProps = true };
|
||||
case CustomOrderDefinition.CustomOneofCase.Limit: return new OrderMetadata { KeyBinding = "L", Color = BTSColors.green.rgb_color(), NoProps = true };
|
||||
case CustomOrderDefinition.CustomOneofCase.Stop: return new OrderMetadata { KeyBinding = "S", Color = BTSColors.red_orange.rgb_color(), NoProps = true };
|
||||
case CustomOrderDefinition.CustomOneofCase.StopLimit: return new OrderMetadata { KeyBinding = "SL", Color = BTSColors.pale_green.rgb_color() };
|
||||
case CustomOrderDefinition.CustomOneofCase.GlbxIceberg: return new OrderMetadata { KeyBinding = "GB", Color = BTSColors.Orders.glbx_iceberg_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Iceberg: return new OrderMetadata { KeyBinding = "I", Color = BTSColors.pale_blue.rgb_color() };
|
||||
case CustomOrderDefinition.CustomOneofCase.TimeBox: return new OrderMetadata { KeyBinding = "TB", Color = BTSColors.purple.rgb_color() };
|
||||
case CustomOrderDefinition.CustomOneofCase.Tick: return new OrderMetadata { KeyBinding = "T", Color = BTSColors.Orders.tick_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Lean: return new OrderMetadata { KeyBinding = "L", Color = BTSColors.Orders.lean_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Join: return new OrderMetadata { KeyBinding = "J", Color = BTSColors.Orders.join_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Top: return new OrderMetadata { KeyBinding = "D", Color = BTSColors.Orders.top_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Cover: return new OrderMetadata { KeyBinding = "C", Color = BTSColors.Orders.cover_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Oco: return new OrderMetadata { KeyBinding = "C", Color = BTSColors.Orders.oco_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Pricer: return new OrderMetadata { KeyBinding = "C", Color = BTSColors.Orders.pricer_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Offset: return new OrderMetadata { KeyBinding = "O", Color = BTSColors.Orders.off_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Trigger: return new OrderMetadata { KeyBinding = "T", Color = BTSColors.Orders.trigger_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Spreader: return new OrderMetadata { KeyBinding = "", Color = BTSColors.Orders.spreader_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.Dynamic: return new OrderMetadata { KeyBinding = "", Color = BTSColors.Orders.top_order };
|
||||
case CustomOrderDefinition.CustomOneofCase.None:
|
||||
default: return _default_order_metadata;
|
||||
}
|
||||
}
|
||||
public static OrderMetadata get_metadata(CustomOrderDefinition.CustomOneofCase order_type) =>
|
||||
order_type switch {
|
||||
CustomOrderDefinition.CustomOneofCase.Market => new() { KeyBinding = "M", Color = BTSColors.Orders.market_order, NoProps = true },
|
||||
CustomOrderDefinition.CustomOneofCase.Limit => new() { KeyBinding = "L", Color = BTSColors.Orders.limit_order, NoProps = true },
|
||||
CustomOrderDefinition.CustomOneofCase.Stop => new() { KeyBinding = "S", Color = BTSColors.Orders.stop_order, NoProps = true },
|
||||
CustomOrderDefinition.CustomOneofCase.StopLimit => new() { KeyBinding = "SL", Color = BTSColors.Orders.stop_limit_order },
|
||||
CustomOrderDefinition.CustomOneofCase.GlbxIceberg => new() { KeyBinding = "GB", Color = BTSColors.Orders.glbx_iceberg_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Iceberg => new() { KeyBinding = "I", Color = BTSColors.Orders.iceberg_order },
|
||||
CustomOrderDefinition.CustomOneofCase.TimeBox => new() { KeyBinding = "TB", Color = BTSColors.Orders.time_box_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Tick => new() { KeyBinding = "T", Color = BTSColors.Orders.tick_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Lean => new() { KeyBinding = "L", Color = BTSColors.Orders.lean_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Join => new() { KeyBinding = "J", Color = BTSColors.Orders.join_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Top => new() { KeyBinding = "D", Color = BTSColors.Orders.top_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Cover => new() { KeyBinding = "C", Color = BTSColors.Orders.cover_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Oco => new() { KeyBinding = "C", Color = BTSColors.Orders.oco_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Pricer => new() { KeyBinding = "C", Color = BTSColors.Orders.pricer_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Offset => new() { KeyBinding = "O", Color = BTSColors.Orders.off_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Trigger => new() { KeyBinding = "T", Color = BTSColors.Orders.trigger_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Spreader => new() { KeyBinding = "", Color = BTSColors.Orders.spreader_order },
|
||||
CustomOrderDefinition.CustomOneofCase.Dynamic => new() { KeyBinding = "", Color = BTSColors.Orders.dynamic_order },
|
||||
_ => _default_order_metadata,
|
||||
};
|
||||
|
||||
public static string abbreviate_algo_type(CustomOrderDefinition.CustomOneofCase algo_type) {
|
||||
switch (algo_type) {
|
||||
|
||||
@@ -73,7 +73,10 @@
|
||||
<DataTemplate>
|
||||
<TextBlock>
|
||||
<TextBlock.Inlines>
|
||||
<Run Text="{Binding security, Mode=OneWay}" FontWeight="Bold"/>
|
||||
<Run
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
FontWeight="Bold"
|
||||
Text="{Binding security, Mode=OneWay}" />
|
||||
<Run Foreground="{u:BTSColor MarketData.bid}" FontSize="10" Text="{Binding bid_size, Mode=OneWay, StringFormat='{}({0})'}"/>
|
||||
<Run Foreground="{u:BTSColor MarketData.bid}" FontWeight="Bold">
|
||||
<Run.Text>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<Setter Property="VerticalAlignment" Value="Stretch" />
|
||||
<Setter Property="Content">
|
||||
<Setter.Value>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{u:BTSColor UI.alternate_text}">Sell</TextBlock>
|
||||
<TextBlock VerticalAlignment="Center" Text="Sell" />
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Setter Property="Template">
|
||||
@@ -69,7 +69,7 @@
|
||||
<Setter Property="VerticalAlignment" Value="Stretch" />
|
||||
<Setter Property="Content">
|
||||
<Setter.Value>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{u:BTSColor UI.alternate_text}">Buy</TextBlock>
|
||||
<TextBlock VerticalAlignment="Center" Text="Buy" />
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Setter Property="Template">
|
||||
@@ -123,9 +123,9 @@
|
||||
</Grid>
|
||||
<u:WindowStyle.TitleContentTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlock.Dark}">
|
||||
<TextBlock.Inlines>
|
||||
<Run Text="{Binding security, Mode=OneWay}" FontWeight="Bold"/>
|
||||
<Run FontWeight="Bold" Text="{Binding security, Mode=OneWay}" />
|
||||
<Run Foreground="{u:BTSColor MarketData.bid}" FontSize="10">
|
||||
<MultiBinding Converter="{x:Static cv:DynamicDoubleDivisorConverter.Instance}" Mode="OneWay" StringFormat="({0})">
|
||||
<Binding Path="bid_size" Mode="OneWay"/>
|
||||
|
||||
@@ -230,6 +230,7 @@
|
||||
(child, parent) => child.order.is_non_terminal() && parent.order.is_non_terminal(),
|
||||
t => false)
|
||||
.Cache();
|
||||
|
||||
_dispose = Disposable.Create(
|
||||
on_orders.Select(t => t.order, o => o.Key).Subscribe(_security_orders_demuxer),
|
||||
on_order_tuples_with_piq
|
||||
@@ -241,6 +242,11 @@
|
||||
_bus.subscribe(SparkTags.DetachOrders).Subscribe(x => detach_orders(x).ignore()),
|
||||
_bus.subscribe(SparkTags.UpdateOrder).Subscribe(x => this.update_order(x.key, x.price, x.size).ignore())
|
||||
);
|
||||
algo_model.definitions.Subscribe(defs => {
|
||||
IEnumerable<AlgoData> algos = new List<AlgoData>(defs.state.Values);
|
||||
bts.Log.Ui.info($"OrdersModel publishing algos count: {algos.Count()}");
|
||||
bus.post(SparkTags.Algos, algos);
|
||||
});
|
||||
}
|
||||
|
||||
#region Output
|
||||
|
||||
@@ -29,8 +29,13 @@
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- name -->
|
||||
<TextBlock Margin="8,8,0,0">Name</TextBlock>
|
||||
<TextBox Grid.Column="1" Margin="8,8,8,0" Text="{Binding name, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<TextBlock Margin="8,8,0,0" Foreground="{u:BTSColor UI.default_text}" Text="Name" />
|
||||
<TextBox
|
||||
Grid.Column="1"
|
||||
Margin="8,8,8,0"
|
||||
Background="{u:BTSColor UI.TextBox.default_background}"
|
||||
Foreground="{u:BTSColor UI.TextBox.default_foreground}"
|
||||
Text="{Binding name, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
<!-- internal account -->
|
||||
<TextBlock Grid.Row="1" Margin="8,8,0,0">Internal Account</TextBlock>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
namespace mbts.analytics {
|
||||
#nullable enable
|
||||
namespace mbts.analytics {
|
||||
using mbts.ui;
|
||||
using mbts.ui.utility.text;
|
||||
|
||||
@@ -9,10 +10,16 @@
|
||||
public const double ROW_TALL_HEIGHT = 28.6666666666667;
|
||||
public const double ROW_TALL_LOWER_Y = 17.6333333333333;
|
||||
|
||||
public static FormattedText get_small_formatted_text(double val) =>
|
||||
TextUtils.GetFormattedText(double.IsNaN(val) ? "" : val.ToString("0.##"), FontSizes.Small);
|
||||
public static FormattedText get_small_formatted_text(double val, Brush? fg = null) =>
|
||||
TextUtils.GetFormattedText(
|
||||
double.IsNaN(val) ? "" : val.ToString("0.##"),
|
||||
FontSizes.Small,
|
||||
fg ?? BTSColors.ComboReport.foreground);
|
||||
|
||||
public static FormattedText get_large_formatted_text(double val) =>
|
||||
TextUtils.GetFormattedTextBold(double.IsNaN(val) ? "" : val.ToString("0.##"));
|
||||
public static FormattedText get_large_formatted_text(double val, Brush? fg = null) =>
|
||||
TextUtils.GetFormattedTextBold(
|
||||
double.IsNaN(val) ? "" : val.ToString("0.##"),
|
||||
FontSizes.Regular,
|
||||
fg ?? BTSColors.ComboReport.foreground);
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
xmlns:c="clr-namespace:mbts.ui.controls"
|
||||
xmlns:cv="clr-namespace:mbts.ui.converters"
|
||||
xmlns:analytics="clr-namespace:mbts.analytics"
|
||||
Background="{StaticResource CommonBackground}"
|
||||
Background="{u:BTSBrush UI.common_background}"
|
||||
>
|
||||
<UserControl.Resources>
|
||||
<cv:ExpirationTextConverter x:Key="ExpirationTextConverter" ShowSymbol="True" />
|
||||
@@ -44,7 +44,7 @@
|
||||
<Setter Property="VerticalAlignment" Value="Stretch" />
|
||||
<Setter Property="Margin" Value="8,0" />
|
||||
<Setter Property="Width" Value="1" />
|
||||
<Setter Property="Fill" Value="Black" />
|
||||
<Setter Property="Fill" Value="{u:BTSColor ComboReport.foreground}" />
|
||||
</Style>
|
||||
|
||||
<DataTemplate x:Key="ExpHeaderTemplate">
|
||||
@@ -76,6 +76,7 @@
|
||||
<TextBlock
|
||||
VerticalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Foreground="{u:BTSBrush ComboReport.foreground}"
|
||||
Text="{Binding internal_account, Mode=OneWay}"
|
||||
ToolTip="Internal Account" />
|
||||
|
||||
@@ -84,6 +85,7 @@
|
||||
<TextBlock
|
||||
VerticalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Foreground="{u:BTSColor ComboReport.foreground}"
|
||||
Text="{Binding risk_terms_name, Mode=OneWay}"
|
||||
ToolTip="Risk Terms" />
|
||||
</StackPanel>
|
||||
@@ -155,11 +157,12 @@
|
||||
Grid.Row="4"
|
||||
u:TextBlockBehavior.FlashBoldOnTextChanged="True"
|
||||
HorizontalAlignment="Left"
|
||||
Foreground="{u:BTSColor ComboReport.footer_foreground}"
|
||||
Margin="4"
|
||||
Text="{Binding last_trade, Converter={x:Static cv:TradeLogRowTextConverter.Instance}}"
|
||||
ToolTip="Last Trade" />
|
||||
|
||||
<TextBlock Grid.Row="4" HorizontalAlignment="Right" Margin="4" DataContext="{Binding options_grid}">
|
||||
<TextBlock Grid.Row="4" HorizontalAlignment="Right" Margin="4" DataContext="{Binding options_grid}" Foreground="{u:BTSColor ComboReport.footer_foreground}">
|
||||
<TextBlock.Inlines>
|
||||
<Run Text="{Binding swipe_sum_net, Mode=OneWay, StringFormat='{}{0:#,0.##} '}" FontWeight="Bold" />
|
||||
<Run Text="Calls" FontSize="9" FontStyle="Italic" />
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<sys:Double x:Key="ParameterVPadding">12</sys:Double>
|
||||
<sys:Double x:Key="ParameterHPadding">12</sys:Double>
|
||||
|
||||
<Style x:Key="ParameterLabel" TargetType="TextBlock">
|
||||
<Style x:Key="ParameterLabel" TargetType="TextBlock" BasedOn="{StaticResource TextBlock.Dark}">
|
||||
<Setter Property="VerticalAlignment" Value="Center" />
|
||||
<Setter Property="Margin">
|
||||
<Setter.Value>
|
||||
@@ -61,6 +61,17 @@
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ParameterValueComboBox" TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}">
|
||||
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
|
||||
<Setter Property="Margin">
|
||||
<Setter.Value>
|
||||
<Thickness
|
||||
Left="{StaticResource ParameterHPadding}"
|
||||
Top="{StaticResource ParameterVPadding}" />
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
|
||||
<Grid Grid.IsSharedSizeScope="True">
|
||||
@@ -90,6 +101,8 @@
|
||||
<TextBox
|
||||
x:Name="PART_Name"
|
||||
Grid.Column="1"
|
||||
Background="{u:BTSColor UI.input_background}"
|
||||
Foreground="{u:BTSColor UI.input_text}"
|
||||
Text="{Binding name}"
|
||||
Style="{StaticResource ParameterValue}">
|
||||
<TextBox.Margin>
|
||||
@@ -115,7 +128,7 @@
|
||||
Validation.ErrorTemplate="{x:Null}"
|
||||
ItemsSource="{Binding internal_accounts}"
|
||||
SelectedItem="{Binding internal_account}"
|
||||
Style="{StaticResource ParameterValue}"/>
|
||||
Style="{StaticResource ParameterValueComboBox}"/>
|
||||
</Grid>
|
||||
|
||||
<!-- Risk Terms -->
|
||||
@@ -132,10 +145,12 @@
|
||||
<ComboBox
|
||||
x:Name="PART_RiskTerms"
|
||||
Grid.Column="1"
|
||||
Background="{u:BTSColor UI.input_background}"
|
||||
Foreground="{u:BTSColor UI.input_text}"
|
||||
ItemsSource="{Binding risk_terms_choices}"
|
||||
SelectedItem="{Binding risk_terms}"
|
||||
ItemTemplate="{StaticResource SecurityTemplate}"
|
||||
Style="{StaticResource ParameterValue}" />
|
||||
Style="{StaticResource ParameterValueComboBox}" />
|
||||
</Grid>
|
||||
|
||||
<!-- Option Equivalent -->
|
||||
@@ -155,7 +170,7 @@
|
||||
Validation.ErrorTemplate="{x:Null}"
|
||||
ItemsSource="{Binding option_equivalence_choices}"
|
||||
SelectedItem="{Binding option_equivalence}"
|
||||
Style="{StaticResource ParameterValue}" />
|
||||
Style="{StaticResource ParameterValueComboBox}" />
|
||||
</Grid>
|
||||
|
||||
<!-- Vol Surface -->
|
||||
@@ -176,7 +191,7 @@
|
||||
ItemsSource="{Binding vol_surfaces}"
|
||||
SelectedItem="{Binding selected_vol_surface}"
|
||||
DisplayMemberPath="name"
|
||||
Style="{StaticResource ParameterValue}"/>
|
||||
Style="{StaticResource ParameterValueComboBox}"/>
|
||||
</Grid>
|
||||
|
||||
<!-- Calculation Mode -->
|
||||
@@ -195,7 +210,7 @@
|
||||
Grid.Column="1"
|
||||
ItemsSource="{Binding calculation_modes}"
|
||||
SelectedItem="{Binding calculation_mode}"
|
||||
Style="{StaticResource ParameterValue}">
|
||||
Style="{StaticResource ParameterValueComboBox}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Converter={StaticResource EnumDescriptionConverter}}" />
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
x:ClassModifier="internal"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
xmlns:c="clr-namespace:mbts.ui.controls"
|
||||
Width="350">
|
||||
<UserControl.Resources>
|
||||
@@ -10,6 +11,7 @@
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="/view/Resources/CursorsEx.xaml"/>
|
||||
<ResourceDictionary Source="/view/Resources/DataTemplates.xaml"/>
|
||||
<ResourceDictionary Source="/view/Controls/DragDropItemsControl/DragDropListBox.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</UserControl.Resources>
|
||||
@@ -26,11 +28,12 @@
|
||||
ItemsSource="{Binding greek_views}"
|
||||
SelectionMode="Extended"
|
||||
SelectedValuePath="value"
|
||||
SelectedValue="{Binding top_selected_greek}">
|
||||
SelectedValue="{Binding top_selected_greek}"
|
||||
>
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style
|
||||
TargetType="c:DraggableListBoxItem"
|
||||
BasedOn="{StaticResource {x:Type c:DraggableListBoxItem}}">
|
||||
BasedOn="{StaticResource ListBoxItem.Dark}">
|
||||
<Setter Property="IsSelected" Value="{Binding is_selected}" />
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
|
||||
</Style>
|
||||
@@ -72,30 +75,44 @@
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBlock Text="Tick Unit" VerticalAlignment="Center" />
|
||||
<TextBlock
|
||||
VerticalAlignment="Center" Foreground="{u:BTSColor UI.default_text}" Text="Tick Unit" />
|
||||
<c:TickUpDownNullableDouble
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Stretch"
|
||||
Margin="8,0,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Minimum="0"
|
||||
TickDisplaySettings="{Binding tick_display_settings}"
|
||||
Value="{Binding tick_unit}" />
|
||||
|
||||
<TextBlock Grid.Row="1" Text="Tick Base" Margin="0,5,0,0" VerticalAlignment="Center"/>
|
||||
<TextBlock
|
||||
Grid.Row="1"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,5,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="Tick Base" />
|
||||
<c:TickUpDownNullableDouble
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Stretch"
|
||||
Margin="8,5,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Minimum="0"
|
||||
TickDisplaySettings="{Binding tick_display_settings}"
|
||||
Value="{Binding tick_base}" />
|
||||
|
||||
<TextBlock Grid.Row="2" Text="Multiplier" Margin="0,5,0,0" VerticalAlignment="Center"/>
|
||||
<TextBlock
|
||||
Grid.Row="2"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,5,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="Multiplier" />
|
||||
<c:TickUpDownNullableDouble
|
||||
Grid.Row="2"
|
||||
Grid.Column="1"
|
||||
Margin="8,5,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Minimum="0"
|
||||
TickDisplaySettings="{Binding tick_display_settings}"
|
||||
Value="{Binding multiplier}" />
|
||||
|
||||
@@ -68,20 +68,32 @@
|
||||
<c:HelpButton ToolTip="If unchecked, Price will only be displayed in the "All" section." />
|
||||
</StackPanel>
|
||||
|
||||
<TextBlock Grid.Row="1" Margin="0,5,0,0" Text="Tick Unit" VerticalAlignment="Center" />
|
||||
<TextBlock
|
||||
Grid.Row="1"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,5,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="Tick Unit" />
|
||||
<c:TickUpDownDouble
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Stretch"
|
||||
Margin="8,5,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Value="{Binding price_tick_unit}" />
|
||||
|
||||
<TextBlock Grid.Row="2" Text="Tick Base" Margin="0,5,0,0" VerticalAlignment="Center" />
|
||||
<TextBlock
|
||||
Grid.Row="2"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,5,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="Tick Base" />
|
||||
<c:TickUpDownDouble
|
||||
Grid.Row="2"
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Stretch"
|
||||
Margin="8,5,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Value="{Binding price_tick_base}" />
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
|
||||
@@ -7,8 +7,7 @@
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
xmlns:c="clr-namespace:mbts.ui.controls"
|
||||
xmlns:cv="clr-namespace:mbts.ui.converters"
|
||||
Background="{StaticResource CommonBackground}"
|
||||
>
|
||||
Background="{u:BTSBrush UI.common_background}">
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
<!-- Converters -->
|
||||
@@ -38,10 +37,10 @@
|
||||
</MultiBinding>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Setter Property="Foreground" Value="{u:BTSColor header_text}" />
|
||||
<Setter Property="Foreground" Value="{u:BTSColor Grid.default_row_foreground}" />
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding data_type}" Value="Greek">
|
||||
<Setter Property="Foreground" Value="{u:BTSColor RiskReport.default_text}" />
|
||||
<Setter Property="Foreground" Value="{u:BTSColor Grid.default_row_foreground}" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
@@ -54,13 +53,28 @@
|
||||
RelativeSource={RelativeSource AncestorType=c:DataGridEx},
|
||||
Converter={StaticResource OverridesActiveBrushConverter}}"
|
||||
/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="DataGridRowHeader">
|
||||
<Border
|
||||
BorderThickness="{TemplateBinding BorderThickness}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
Background="{TemplateBinding Background}"
|
||||
Padding="{TemplateBinding Padding}">
|
||||
<ContentPresenter
|
||||
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="VerticalSeparator" TargetType="Rectangle">
|
||||
<Setter Property="VerticalAlignment" Value="Stretch" />
|
||||
<Setter Property="Margin" Value="8,0" />
|
||||
<Setter Property="Width" Value="1" />
|
||||
<Setter Property="Fill" Value="Black" />
|
||||
<Setter Property="Fill" Value="{u:BTSColor UI.default_foreground}" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="VerticalSeparatorWide" TargetType="Rectangle" BasedOn="{StaticResource VerticalSeparator}">
|
||||
@@ -121,6 +135,7 @@
|
||||
VerticalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Text="{Binding internal_account, Mode=OneWay}"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
ToolTip="Internal Account" />
|
||||
|
||||
<Rectangle Style="{StaticResource VerticalSeparator}" />
|
||||
@@ -129,6 +144,7 @@
|
||||
VerticalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Text="{Binding risk_terms_name, Mode=OneWay}"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
ToolTip="Risk Terms" />
|
||||
|
||||
<!-- <c:ComboCheckBox
|
||||
@@ -214,6 +230,7 @@
|
||||
<TextBlock
|
||||
u:TextBlockBehavior.FlashBoldOnTextChanged="True"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="{Binding last_update_time, StringFormat=h:mm:ss tt}"
|
||||
ToolTip="Last Update Time"
|
||||
/>
|
||||
@@ -221,16 +238,16 @@
|
||||
<TextBlock
|
||||
u:TextBlockBehavior.FlashBoldOnTextChanged="True"
|
||||
VerticalAlignment="Center"
|
||||
Text="{Binding last_vol_save_time}"
|
||||
ToolTip="Last Vol Save Time"
|
||||
/>
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="{Binding last_trade, Converter={x:Static cv:TradeLogRowTextConverter.Instance}}"
|
||||
ToolTip="Last Trade" />
|
||||
<Rectangle Style="{StaticResource VerticalSeparatorWide}" />
|
||||
<TextBlock
|
||||
u:TextBlockBehavior.FlashBoldOnTextChanged="True"
|
||||
VerticalAlignment="Center"
|
||||
Text="{Binding last_trade, Converter={x:Static cv:TradeLogRowTextConverter.Instance}}"
|
||||
ToolTip="Last Trade"
|
||||
/>
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="{Binding last_vol_save_time}"
|
||||
ToolTip="Last Vol Save Time" />
|
||||
</StackPanel>
|
||||
|
||||
<TextBlock
|
||||
@@ -238,6 +255,7 @@
|
||||
HorizontalAlignment="Right"
|
||||
VerticalAlignment="Center"
|
||||
Margin="4,0,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="{Binding swipe_sum, StringFormat='#,0.##'}"
|
||||
ToolTip="Swipe Sum" />
|
||||
</Grid>
|
||||
|
||||
@@ -21,15 +21,16 @@ namespace mbts.analytics {
|
||||
|
||||
public static IMultiValueConverter row_background_converter {
|
||||
get {
|
||||
var empty_header_brush = BTSColors.header.to_brush().frozen();
|
||||
var empty_header_brush = BTSColors.Grid.default_row_background.to_brush().frozen();
|
||||
var overrides_active_brush = BTSColors.UI.warning.to_brush().frozen();
|
||||
var price_brush = Brushes.DimGray;
|
||||
var alternating_brush = BTSColors.MarketData.driver_background.to_brush().frozen();
|
||||
var default_brush = BTSColors.Grid.default_row_background.to_brush(true);
|
||||
var alternating_brush = BTSColors.Grid.alternate_row_background.to_brush().frozen();
|
||||
|
||||
return ValueConverter.create<DataType, bool, bool, int, Brush>(
|
||||
(data_type, is_group_header, overrides_active, alternating_index) =>
|
||||
data_type switch {
|
||||
DataType.Greek => alternating_index == 0 ? Brushes.Transparent : alternating_brush,
|
||||
DataType.Greek => alternating_index == 0 ? default_brush : alternating_brush,
|
||||
DataType.Price => is_group_header && overrides_active ?
|
||||
overrides_active_brush : price_brush,
|
||||
_ => overrides_active ? overrides_active_brush : empty_header_brush,
|
||||
|
||||
@@ -47,8 +47,8 @@
|
||||
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
|
||||
<PackageReference Include="System.Reactive" Version="5.0.0" />
|
||||
<PackageReference Include="protobuf-net" Version="3.1.17" />
|
||||
<PackageReference Include="OxyPlot.Core" Version="2.1.0" />
|
||||
<PackageReference Include="OxyPlot.Wpf" Version="2.1.0" />
|
||||
<PackageReference Include="OxyPlot.Core" Version="2.1.2" />
|
||||
<PackageReference Include="OxyPlot.Wpf" Version="2.1.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -38,14 +38,18 @@ namespace BCG {
|
||||
private ITag<SpreadValue> mySpreadValueTag;
|
||||
private string mySpreadId;
|
||||
private ITag<SpreadSpec> mySpreadSpecTag;
|
||||
private ITag<SystemContractData> _sc_data_tag = SparkTags.SystemContractsTag;
|
||||
private readonly ITag<SystemContractData> _sc_data_tag = SparkTags.SystemContractsTag;
|
||||
private SpreadUI mySpreadControl;
|
||||
private ITag<string> myCurrentSpreadTag;
|
||||
private ITag<SpreadBoxLockedState> mySpreadLockedTag;
|
||||
private ITag<bool> _spread_min_tag = SparkTags.SpreadBoxTags.SpreadWindowMinimizeTag;
|
||||
private readonly ITag<bool> _spread_min_tag = SparkTags.SpreadBoxTags.SpreadWindowMinimizeTag;
|
||||
private System.Windows.Forms.StatusStrip _statustrip_main;
|
||||
private ToolStripButton _button_order;
|
||||
private ToolStripSeparator _seperator_order;
|
||||
private ToolStripTextBox _textbox_rfq_qty;
|
||||
private ToolStripComboBox _combobox_rfq_side;
|
||||
private ToolStripButton _button_rfq;
|
||||
private ToolStripSeparator _seperator_rfq;
|
||||
private ToolStripLabel _label_listed_spread;
|
||||
private ToolStripLabel _label_bid, _label_ask;
|
||||
private SecurityMD? _listed_spread = null;
|
||||
@@ -68,7 +72,7 @@ namespace BCG {
|
||||
mySpreadControl.onNewSpec += new GUIChange(myOnNewSpec);
|
||||
mySpreadControl.onLocked += new GUIChange(myOnLockStateChange);
|
||||
mySpreadControl.onSizeChange += new GUIChange(myOnSpreadUIResize);
|
||||
mySpreadControl.onTrade += new EventHandler(myHandleTrade);
|
||||
mySpreadControl.onTrade += new EventHandler(_handle_order_button);
|
||||
myInit(spreadId, initial_state);
|
||||
VisibleChanged += (o, e) => myRefresh();
|
||||
}
|
||||
@@ -250,6 +254,33 @@ namespace BCG {
|
||||
|
||||
#region Status bar UI
|
||||
|
||||
// sets button's enter, leave and paint event (there is no border property for
|
||||
// ToolstripButton, so we have to listen to the Paint event)
|
||||
private void _set_button_common(ToolStripButton btn) {
|
||||
Color mouse_over_color = Color.LightSkyBlue;
|
||||
Color mouse_press_color = Color.Gray;
|
||||
btn.MouseEnter += (object sender, EventArgs e) => {
|
||||
btn.BackColor = mouse_over_color;
|
||||
};
|
||||
btn.MouseLeave += (object sender, EventArgs e) => {
|
||||
btn.BackColor = _statustrip_main.BackColor;
|
||||
};
|
||||
btn.MouseDown += (object sender, MouseEventArgs e) => {
|
||||
btn.BackColor = mouse_press_color;
|
||||
};
|
||||
btn.MouseUp += (object sender, MouseEventArgs e) => {
|
||||
btn.BackColor = Color.LightSkyBlue;
|
||||
};
|
||||
btn.Paint += (object sender, PaintEventArgs e) => {
|
||||
ControlPaint.DrawBorder(
|
||||
e.Graphics,
|
||||
new Rectangle(0, 0, btn.Width, btn.Height),
|
||||
Color.Black,
|
||||
ButtonBorderStyle.Solid);
|
||||
};
|
||||
}
|
||||
|
||||
// this button is not being used right now
|
||||
private void _set_order_button() {
|
||||
_button_order = new ToolStripButton();
|
||||
_button_order.Font = new System.Drawing.Font("Tahoma", 9F);
|
||||
@@ -259,6 +290,9 @@ namespace BCG {
|
||||
_button_order.Enabled = true;
|
||||
_button_order.ForeColor = Color.Black;
|
||||
_button_order.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
_button_order.DisplayStyle = ToolStripItemDisplayStyle.Text;
|
||||
_button_order.BackColor = Color.Silver;
|
||||
_set_button_common(_button_order);
|
||||
_button_order.Click += (object sender, EventArgs e) => {
|
||||
if (_listed_spread.HasValue) {
|
||||
_bb.post(SparkTags.ShowLaddersTag,
|
||||
@@ -267,6 +301,48 @@ namespace BCG {
|
||||
};
|
||||
}
|
||||
|
||||
private void _set_seperators() {
|
||||
Action<ToolStripSeparator> set_sep = (sep) => {
|
||||
sep.BackColor = Color.Silver;
|
||||
sep.ForeColor = Color.Black;
|
||||
sep.Size = new System.Drawing.Size(10, 17);
|
||||
sep.Margin = new Padding(5, 1, 5, 1);
|
||||
};
|
||||
_seperator_order = new ToolStripSeparator();
|
||||
_seperator_rfq = new ToolStripSeparator();
|
||||
set_sep(_seperator_order);
|
||||
set_sep(_seperator_rfq);
|
||||
}
|
||||
|
||||
private void _set_rfq_qty_textbox() {
|
||||
_textbox_rfq_qty = new ToolStripTextBox();
|
||||
_textbox_rfq_qty.Font = new System.Drawing.Font("Tahoma", 9F);
|
||||
_textbox_rfq_qty.Name = "_textbox_rfq_qty";
|
||||
_textbox_rfq_qty.BorderStyle = BorderStyle.FixedSingle;
|
||||
_textbox_rfq_qty.Size = new System.Drawing.Size(35, 17);
|
||||
_textbox_rfq_qty.Text = String.Empty;
|
||||
_textbox_rfq_qty.Enabled = true;
|
||||
_textbox_rfq_qty.ForeColor = Color.Black;
|
||||
_textbox_rfq_qty.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
}
|
||||
|
||||
private void _set_rfq_side_combobox() {
|
||||
_combobox_rfq_side = new ToolStripComboBox();
|
||||
_combobox_rfq_side.Font = new System.Drawing.Font("Tahoma", 9F);
|
||||
_combobox_rfq_side.Name = "_combobox_rfq_side";
|
||||
_combobox_rfq_side.Size = new System.Drawing.Size(35, 17);
|
||||
_combobox_rfq_side.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
_combobox_rfq_side.AutoSize = true;
|
||||
_combobox_rfq_side.Text = String.Empty;
|
||||
_combobox_rfq_side.Enabled = true;
|
||||
_combobox_rfq_side.ForeColor = Color.Black;
|
||||
_combobox_rfq_side.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
_combobox_rfq_side.Items.Add("Both");
|
||||
_combobox_rfq_side.Items.Add("Buy");
|
||||
_combobox_rfq_side.Items.Add("Sell");
|
||||
_combobox_rfq_side.Text = _combobox_rfq_side.Items[0].ToString();
|
||||
}
|
||||
|
||||
private void _set_rfq_button() {
|
||||
_button_rfq = new ToolStripButton();
|
||||
_button_rfq.Font = new System.Drawing.Font("Tahoma", 9F);
|
||||
@@ -276,14 +352,15 @@ namespace BCG {
|
||||
_button_rfq.ForeColor = Color.Black;
|
||||
_button_rfq.Enabled = true;
|
||||
_button_rfq.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
_set_button_common(_button_rfq);
|
||||
_button_rfq.Click += (object sender, EventArgs e) => {
|
||||
if (_listed_spread.HasValue) {
|
||||
RFQRequest rfq = new RFQRequest();
|
||||
rfq.Security = new RFQRequestSecurity();
|
||||
rfq.Security.SecurityId = _listed_spread.Value.security.Id;
|
||||
_fill_rfq_qty_side(ref rfq);
|
||||
_bb.post(SparkTags.RFQSend, new(rfq));
|
||||
} else {
|
||||
// TODO, create a SpreadContract and send it out
|
||||
SpreadSpec spread_spec = _bb.read_state(mySpreadSpecTag) as SpreadSpec;
|
||||
SystemContractData sc_data = _bb.read_state(_sc_data_tag);
|
||||
if (spread_spec != null && sc_data != null) {
|
||||
@@ -292,6 +369,7 @@ namespace BCG {
|
||||
RFQRequest rfq = new RFQRequest();
|
||||
rfq.Security = new RFQRequestSecurity();
|
||||
rfq.Security.Spread = sc;
|
||||
_fill_rfq_qty_side(ref rfq);
|
||||
_bb.post(SparkTags.RFQSend, new(rfq));
|
||||
}
|
||||
}
|
||||
@@ -330,14 +408,19 @@ namespace BCG {
|
||||
|
||||
private void _set_status_bar() {
|
||||
_set_order_button();
|
||||
_set_rfq_qty_textbox();
|
||||
_set_rfq_side_combobox();
|
||||
_set_rfq_button();
|
||||
_set_spread_label();
|
||||
_set_md_labels();
|
||||
_set_seperators();
|
||||
_statustrip_main = new StatusStrip();
|
||||
_statustrip_main.GripMargin = new System.Windows.Forms.Padding(0);
|
||||
_statustrip_main.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
|
||||
_statustrip_main.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
_button_order, _button_rfq, _label_listed_spread, _label_bid, _label_ask});
|
||||
// _button_order, _seperator_order,
|
||||
_textbox_rfq_qty, _combobox_rfq_side, _button_rfq, _seperator_rfq,
|
||||
_label_listed_spread, _label_bid, _label_ask});
|
||||
_statustrip_main.Location = new System.Drawing.Point(0, 678);
|
||||
_statustrip_main.Name = "_statustrip_main";
|
||||
_statustrip_main.Size = new System.Drawing.Size(1133, 22);
|
||||
@@ -348,6 +431,24 @@ namespace BCG {
|
||||
|
||||
#endregion
|
||||
|
||||
private void _fill_rfq_qty_side(ref RFQRequest rfq) {
|
||||
// qty
|
||||
UInt32 qty;
|
||||
if (!UInt32.TryParse(_textbox_rfq_qty.Text, out qty)) {
|
||||
qty = 1;
|
||||
}
|
||||
rfq.Quantity = new RFQRequestQuantity();
|
||||
rfq.Quantity.Qty = qty;
|
||||
// side
|
||||
if (String.Compare("buy", _combobox_rfq_side.Text, true) == 0) {
|
||||
rfq.Side = new RFQRequestSide();
|
||||
rfq.Side.Side = bts.api.Side.Buy;
|
||||
} else if (String.Compare("sell", _combobox_rfq_side.Text, true) == 0) {
|
||||
rfq.Side = new RFQRequestSide();
|
||||
rfq.Side.Side = bts.api.Side.Sell;
|
||||
}
|
||||
}
|
||||
|
||||
public static SpreadDisplayForm make(ThreadedBlackboard bb, string spreadId,
|
||||
SpreadInititialState initial_state, string user) {
|
||||
var f = new SpreadDisplayForm(bb, spreadId, initial_state, user);
|
||||
@@ -373,6 +474,8 @@ namespace BCG {
|
||||
WindowState = FormWindowState.Minimized;
|
||||
} else if (mySpreadSpecTag.Equals(tag)) {
|
||||
_set_listed_spread();
|
||||
} else if (_sc_data_tag.Equals(tag)) {
|
||||
_set_listed_spread();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -479,7 +582,12 @@ namespace BCG {
|
||||
_bb.post(myCurrentSpreadTag, mySpreadId);
|
||||
}
|
||||
|
||||
private void myHandleTrade(object sender, EventArgs e) { }
|
||||
private void _handle_order_button(object sender, EventArgs e) {
|
||||
if (_listed_spread.HasValue) {
|
||||
_bb.post(SparkTags.ShowLaddersTag,
|
||||
new SecurityMD[] { _listed_spread.Value });
|
||||
}
|
||||
}
|
||||
|
||||
private void SpreadDisplayForm_Resize(object sender, System.EventArgs e) {
|
||||
if (this.WindowState == FormWindowState.Minimized &&
|
||||
|
||||
@@ -370,12 +370,13 @@ namespace BCG
|
||||
DoubleClick += new EventHandler(myOnDoubleClick);
|
||||
Click += _on_singleclick;
|
||||
//myTimesBox.Visible = false;
|
||||
myTradeLabel.Text = "Trade";
|
||||
myTradeLabel.Text = "Order";
|
||||
myTradeLabel.TextAlign = ContentAlignment.MiddleCenter;
|
||||
myTradeLabel.Click += new EventHandler(myOnTrade);
|
||||
myTradeLabel.MouseEnter += new EventHandler(myOnEnterLabel);
|
||||
myTradeLabel.MouseLeave += new EventHandler(myOnLeaveLabel);
|
||||
myTradeLabel.TabIndex = 10;
|
||||
myTradeLabel.Font = new System.Drawing.Font("Tahoma", 9F);
|
||||
|
||||
myShowEnhancedValueLabel.Text = String.Empty;
|
||||
myShowEnhancedValueLabel.Width = 25;
|
||||
|
||||
@@ -550,7 +550,7 @@ namespace BCG {
|
||||
oc.strike, oc.isCall ? PutOrCall.Call : PutOrCall.Put);
|
||||
if (lsec.HasValue) {
|
||||
ContractLeg leg = new ContractLeg();
|
||||
leg.Security = null; //lsec.Value;
|
||||
leg.Security = lsec.Value.CloneToMutable();
|
||||
leg.Quantity = Math.Abs(ocp.position);
|
||||
leg.Side = ocp.position > 0 ? Side.Buy : Side.Sell;
|
||||
leg.PriceMultiplier = 1;
|
||||
@@ -563,7 +563,7 @@ namespace BCG {
|
||||
SpreadContract rv = new SpreadContract();
|
||||
rv.Normalized = true;
|
||||
rv.Legs.AddRange(legs);
|
||||
return null;
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static SpreadSpec create_option_spread_spec(UInt32 spread_id,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
xmlns:mbts="clr-namespace:mbts.ui"
|
||||
xmlns:control="clr-namespace:mbts.ui.controls"
|
||||
xmlns:shell="clr-namespace:mbts.ui.shell"
|
||||
@@ -20,7 +21,6 @@
|
||||
<ResourceDictionary Source="/view/Controls/Buttons/ExpanderToggleButton.xaml"/>
|
||||
<ResourceDictionary Source="/view/Controls/DragDropItemsControl/DragDropItemsControl.xaml" />
|
||||
<ResourceDictionary Source="/view/Controls/DragDropItemsControl/DraggableContentControl.xaml" />
|
||||
<ResourceDictionary Source="/view/Controls/DragDropItemsControl/DragDropListBox.xaml" />
|
||||
<ResourceDictionary Source="/view/Controls/DragDropItemsControl/DraggableListBoxItem.xaml" />
|
||||
<ResourceDictionary Source="/view/Controls/DialogSkirts/DialogSkirt.xaml"/>
|
||||
<ResourceDictionary Source="/view/Controls/DialogSkirts/DialogSkirtOKCancel.xaml" />
|
||||
@@ -53,10 +53,20 @@
|
||||
|
||||
<Style TargetType="ScrollViewer">
|
||||
<Setter Property="mbts:ScrollViewerCorrector.FixNestedScrolling" Value="True"/>
|
||||
<Setter Property="Background" Value="{u:BTSBrush UI.ScrollViewer.background}"/>
|
||||
</Style>
|
||||
|
||||
<!-- Override xp/win7 style themes with Win8 style flat for certain controls -->
|
||||
|
||||
<Style TargetType="ScrollBar">
|
||||
<Setter Property="Background" Value="{u:BTSBrush UI.ScrollBar.background}"/>
|
||||
<Setter Property="Foreground" Value="{u:BTSBrush UI.ScrollBar.foreground}"/>
|
||||
</Style>
|
||||
<Style TargetType="StatusBar">
|
||||
<Setter Property="Background" Value="{u:BTSBrush UI.StatusBar.background}"/>
|
||||
</Style>
|
||||
<Style TargetType="StatusBarItem">
|
||||
<Setter Property="Foreground" Value="{u:BTSBrush UI.StatusBarItem.foreground}"/>
|
||||
</Style>
|
||||
<Style x:Key="FocusVisual">
|
||||
<Setter Property="Control.Template">
|
||||
<Setter.Value>
|
||||
@@ -69,10 +79,36 @@
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="TextBlock.Dark" TargetType="TextBlock">
|
||||
<Setter Property="Foreground" Value="#DDDDDD" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="TextBox">
|
||||
<Setter Property="Background" Value="{u:BTSBrush UI.TextBox.normal_background}" />
|
||||
<Setter Property="Foreground" Value="{u:BTSBrush UI.TextBox.normal_foreground}" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="CaretBrush" Value="{u:BTSBrush UI.TextBox.normal_caret}" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="TextBox.Dark" TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}" />
|
||||
|
||||
<Style x:Key="ListBoxItem.Dark" TargetType="ListBoxItem">
|
||||
<Setter Property="Background" Value="{StaticResource ListBoxItem.Background}" />
|
||||
<Setter Property="Foreground" Value="{StaticResource ListBoxItem.Foreground}" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ListBox.Dark" TargetType="ListBox">
|
||||
<Setter Property="Background" Value="{StaticResource ListBox.Background}" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="ItemContainerStyle" Value="{StaticResource ListBoxItem.Dark}" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ComboBoxToggleButton" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="OverridesDefaultStyle" Value="true"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource ComboBox.Static.Border}"/>
|
||||
<Setter Property="Background" Value="{StaticResource ComboBox.Static.Background}"/>
|
||||
<Setter Property="BorderBrush" Value="{u:BTSBrush UI.ComboBox.normal_border}" />
|
||||
<Setter Property="Background" Value="{u:BTSBrush UI.ComboBox.normal_background}" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="IsTabStop" Value="false"/>
|
||||
<Setter Property="Focusable" Value="false"/>
|
||||
<Setter Property="ClickMode" Value="Press"/>
|
||||
@@ -91,11 +127,15 @@
|
||||
SnapsToDevicePixels="true" Width="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}"
|
||||
>
|
||||
<Path
|
||||
x:Name="arrow" HorizontalAlignment="Center" Margin="0" VerticalAlignment="Center"
|
||||
Fill="{StaticResource ComboBox.Static.Glyph}"
|
||||
Data="F1 M 0,0 L 2.667,2.66665 L 5.3334,0 L 5.3334,-1.78168 L 2.6667,0.88501 L0,-1.78168 L0,0 Z"/>
|
||||
x:Name="arrow"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0"
|
||||
Fill="{u:BTSBrush UI.ComboBox.normal_glyph}"
|
||||
Data="F1 M 0,0 L 2.667,2.66665 L 5.3334,0 L 5.3334,-1.78168 L 2.6667,0.88501 L0,-1.78168 L0,0 Z" />
|
||||
</Border>
|
||||
</Border>
|
||||
|
||||
<ControlTemplate.Triggers>
|
||||
<MultiDataTrigger>
|
||||
<MultiDataTrigger.Conditions>
|
||||
@@ -104,79 +144,153 @@
|
||||
<Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource Self}}" Value="false"/>
|
||||
<Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="true"/>
|
||||
</MultiDataTrigger.Conditions>
|
||||
<Setter Property="Background" TargetName="templateRoot" Value="{StaticResource ComboBox.Static.Background}"/>
|
||||
<Setter Property="BorderBrush" TargetName="templateRoot" Value="{StaticResource ComboBox.Static.Editable.Border}"/>
|
||||
<Setter Property="Background" TargetName="splitBorder" Value="{StaticResource ComboBox.Static.Editable.Button.Background}"/>
|
||||
<Setter Property="BorderBrush" TargetName="splitBorder" Value="{StaticResource ComboBox.Static.Editable.Button.Border}"/>
|
||||
<Setter
|
||||
Property="Background"
|
||||
TargetName="templateRoot"
|
||||
Value="{u:BTSBrush UI.ComboBox.editable_background}" />
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
TargetName="templateRoot"
|
||||
Value="{u:BTSBrush UI.ComboBox.editable_border}" />
|
||||
<Setter
|
||||
Property="Background"
|
||||
TargetName="splitBorder"
|
||||
Value="{u:BTSBrush UI.ComboBox.editable_button_background}" />
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
TargetName="splitBorder"
|
||||
Value="{u:BTSBrush UI.ComboBox.editable_button_border}" />
|
||||
</MultiDataTrigger>
|
||||
<Trigger Property="IsMouseOver" Value="true">
|
||||
<Setter Property="Fill" TargetName="arrow" Value="{StaticResource ComboBox.MouseOver.Glyph}"/>
|
||||
<Setter Property="Fill" TargetName="arrow" Value="{u:BTSBrush UI.ComboBox.mouseover_glyph}" />
|
||||
</Trigger>
|
||||
<MultiDataTrigger>
|
||||
<MultiDataTrigger.Conditions>
|
||||
<Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="true"/>
|
||||
<Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="false"/>
|
||||
</MultiDataTrigger.Conditions>
|
||||
<Setter Property="Background" TargetName="templateRoot" Value="{StaticResource ComboBox.MouseOver.Background}"/>
|
||||
<Setter Property="BorderBrush" TargetName="templateRoot" Value="{StaticResource ComboBox.MouseOver.Border}"/>
|
||||
<Setter
|
||||
Property="Background"
|
||||
TargetName="templateRoot"
|
||||
Value="{u:BTSBrush UI.ComboBox.mouseover_background}" />
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
TargetName="templateRoot"
|
||||
Value="{u:BTSBrush UI.ComboBox.mouseover_border}" />
|
||||
</MultiDataTrigger>
|
||||
<MultiDataTrigger>
|
||||
<MultiDataTrigger.Conditions>
|
||||
<Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="true"/>
|
||||
<Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="true"/>
|
||||
</MultiDataTrigger.Conditions>
|
||||
<Setter Property="Background" TargetName="templateRoot" Value="{StaticResource ComboBox.MouseOver.Editable.Background}"/>
|
||||
<Setter Property="BorderBrush" TargetName="templateRoot" Value="{StaticResource ComboBox.MouseOver.Editable.Border}"/>
|
||||
<Setter Property="Background" TargetName="splitBorder" Value="{StaticResource ComboBox.MouseOver.Editable.Button.Background}"/>
|
||||
<Setter Property="BorderBrush" TargetName="splitBorder" Value="{StaticResource ComboBox.MouseOver.Editable.Button.Border}"/>
|
||||
<Setter
|
||||
Property="Background"
|
||||
TargetName="templateRoot"
|
||||
Value="{u:BTSBrush UI.ComboBox.mouseover_editable_background}" />
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
TargetName="templateRoot"
|
||||
Value="{u:BTSBrush UI.ComboBox.mouseover_editable_border}" />
|
||||
<Setter
|
||||
Property="Background"
|
||||
TargetName="splitBorder"
|
||||
Value="{u:BTSBrush UI.ComboBox.mouseover_editable_button_background}" />
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
TargetName="splitBorder"
|
||||
Value="{u:BTSBrush UI.ComboBox.mouseover_editable_button_border}" />
|
||||
</MultiDataTrigger>
|
||||
<Trigger Property="IsPressed" Value="true">
|
||||
<Setter Property="Fill" TargetName="arrow" Value="{StaticResource ComboBox.Pressed.Glyph}"/>
|
||||
<Setter Property="Fill" TargetName="arrow" Value="{u:BTSBrush UI.ComboBox.pressed_glyph}"/>
|
||||
</Trigger>
|
||||
<MultiDataTrigger>
|
||||
<MultiDataTrigger.Conditions>
|
||||
<Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource Self}}" Value="true"/>
|
||||
<Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="false"/>
|
||||
</MultiDataTrigger.Conditions>
|
||||
<Setter Property="Background" TargetName="templateRoot" Value="{StaticResource ComboBox.Pressed.Background}"/>
|
||||
<Setter Property="BorderBrush" TargetName="templateRoot" Value="{StaticResource ComboBox.Pressed.Border}"/>
|
||||
<Setter
|
||||
Property="Background"
|
||||
TargetName="templateRoot"
|
||||
Value="{u:BTSBrush UI.ComboBox.pressed_background}" />
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
TargetName="templateRoot"
|
||||
Value="{u:BTSBrush UI.ComboBox.pressed_border}" />
|
||||
</MultiDataTrigger>
|
||||
|
||||
<MultiDataTrigger>
|
||||
<MultiDataTrigger.Conditions>
|
||||
<Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource Self}}" Value="true"/>
|
||||
<Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="true"/>
|
||||
</MultiDataTrigger.Conditions>
|
||||
<Setter Property="Background" TargetName="templateRoot" Value="{StaticResource ComboBox.Pressed.Editable.Background}"/>
|
||||
<Setter Property="BorderBrush" TargetName="templateRoot" Value="{StaticResource ComboBox.Pressed.Editable.Border}"/>
|
||||
<Setter Property="Background" TargetName="splitBorder" Value="{StaticResource ComboBox.Pressed.Editable.Button.Background}"/>
|
||||
<Setter Property="BorderBrush" TargetName="splitBorder" Value="{StaticResource ComboBox.Pressed.Editable.Button.Border}"/>
|
||||
<Setter
|
||||
Property="Background"
|
||||
TargetName="templateRoot"
|
||||
Value="{u:BTSBrush UI.ComboBox.pressed_editable_background}" />
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
TargetName="templateRoot"
|
||||
Value="{u:BTSBrush UI.ComboBox.pressed_editable_border}" />
|
||||
<Setter
|
||||
Property="Background"
|
||||
TargetName="splitBorder"
|
||||
Value="{u:BTSBrush UI.ComboBox.pressed_editable_button_background}" />
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
TargetName="splitBorder"
|
||||
Value="{u:BTSBrush UI.ComboBox.pressed_editable_button_border}" />
|
||||
</MultiDataTrigger>
|
||||
<Trigger Property="IsEnabled" Value="false">
|
||||
<Setter Property="Fill" TargetName="arrow" Value="{StaticResource ComboBox.Disabled.Glyph}"/>
|
||||
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter
|
||||
Property="Fill"
|
||||
TargetName="arrow"
|
||||
Value="{u:BTSBrush UI.ComboBox.disabled_glyph}" />
|
||||
</Trigger>
|
||||
|
||||
<MultiDataTrigger>
|
||||
<MultiDataTrigger.Conditions>
|
||||
<Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="false"/>
|
||||
<Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="false"/>
|
||||
</MultiDataTrigger.Conditions>
|
||||
<Setter Property="Background" TargetName="templateRoot" Value="{StaticResource ComboBox.Disabled.Background}"/>
|
||||
<Setter Property="BorderBrush" TargetName="templateRoot" Value="{StaticResource ComboBox.Disabled.Border}"/>
|
||||
<Setter
|
||||
Property="Background"
|
||||
TargetName="templateRoot"
|
||||
Value="{u:BTSBrush UI.ComboBox.disabled_background}" />
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
TargetName="templateRoot"
|
||||
Value="{u:BTSBrush UI.ComboBox.disabled_border}" />
|
||||
</MultiDataTrigger>
|
||||
|
||||
<MultiDataTrigger>
|
||||
<MultiDataTrigger.Conditions>
|
||||
<Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="false"/>
|
||||
<Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="true"/>
|
||||
</MultiDataTrigger.Conditions>
|
||||
<Setter Property="Background" TargetName="templateRoot" Value="{StaticResource ComboBox.Disabled.Editable.Background}"/>
|
||||
<Setter Property="BorderBrush" TargetName="templateRoot" Value="{StaticResource ComboBox.Disabled.Editable.Border}"/>
|
||||
<Setter Property="Background" TargetName="splitBorder" Value="{StaticResource ComboBox.Disabled.Editable.Button.Background}"/>
|
||||
<Setter Property="BorderBrush" TargetName="splitBorder" Value="{StaticResource ComboBox.Disabled.Editable.Button.Border}"/>
|
||||
<Setter
|
||||
Property="Background"
|
||||
TargetName="templateRoot"
|
||||
Value="{u:BTSBrush UI.ComboBox.disabled_editable_background}" />
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
TargetName="templateRoot"
|
||||
Value="{u:BTSBrush UI.ComboBox.disabled_editable_border}" />
|
||||
<Setter
|
||||
Property="Background"
|
||||
TargetName="splitBorder"
|
||||
Value="{u:BTSBrush UI.ComboBox.disabled_editable_button_background}" />
|
||||
<Setter
|
||||
Property="BorderBrush"
|
||||
TargetName="splitBorder"
|
||||
Value="{u:BTSBrush UI.ComboBox.disabled_editable_button_border}" />
|
||||
</MultiDataTrigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<ControlTemplate x:Key="ComboBoxTemplate" TargetType="{x:Type ComboBox}">
|
||||
<Grid x:Name="templateRoot" SnapsToDevicePixels="true">
|
||||
<Grid.ColumnDefinitions>
|
||||
@@ -189,7 +303,8 @@
|
||||
PopupAnimation="None"
|
||||
>
|
||||
<Border
|
||||
x:Name="dropDownBorder" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
x:Name="dropDownBorder"
|
||||
Background="{u:BTSColor UI.ComboBox.dropdown_background}"
|
||||
BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}" BorderThickness="1"
|
||||
MaxHeight="{TemplateBinding MaxDropDownHeight}" MinWidth="{Binding ActualWidth, ElementName=templateRoot}"
|
||||
>
|
||||
@@ -211,11 +326,16 @@
|
||||
</Border>
|
||||
</Popup>
|
||||
<ToggleButton
|
||||
x:Name="toggleButton" Grid.ColumnSpan="2" Background="{TemplateBinding Background}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
|
||||
IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
|
||||
Style="{StaticResource ComboBoxToggleButton}"
|
||||
/>
|
||||
x:Name="toggleButton"
|
||||
Grid.ColumnSpan="2"
|
||||
Background="{TemplateBinding Background}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
BorderThickness="{TemplateBinding BorderThickness}"
|
||||
IsChecked="{Binding
|
||||
IsDropDownOpen,
|
||||
Mode=TwoWay,
|
||||
RelativeSource={RelativeSource TemplatedParent}}"
|
||||
Style="{StaticResource ComboBoxToggleButton}" />
|
||||
<ContentPresenter
|
||||
x:Name="contentPresenter"
|
||||
IsHitTestVisible="False"
|
||||
@@ -276,8 +396,9 @@
|
||||
PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}"
|
||||
>
|
||||
<Border
|
||||
x:Name="dropDownBorder" BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}"
|
||||
BorderThickness="1" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
x:Name="dropDownBorder"
|
||||
BorderThickness="0"
|
||||
Background="{u:BTSColor UI.ComboBox.dropdown_background}"
|
||||
MaxHeight="{TemplateBinding MaxDropDownHeight}" MinWidth="{Binding ActualWidth, ElementName=templateRoot}"
|
||||
>
|
||||
<ScrollViewer x:Name="DropDownScrollViewer">
|
||||
@@ -304,21 +425,22 @@
|
||||
Background="{TemplateBinding Background}" Style="{StaticResource ComboBoxToggleButton}"
|
||||
IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
|
||||
/>
|
||||
<Border x:Name="border" Background="{StaticResource TextBox.Static.Background}" Margin="{TemplateBinding BorderThickness}">
|
||||
<Border x:Name="border" Background="Transparent" Margin="{TemplateBinding BorderThickness}">
|
||||
<TextBox
|
||||
x:Name="PART_EditableTextBox" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||
IsReadOnly="{Binding IsReadOnly, RelativeSource={RelativeSource TemplatedParent}}" Margin="{TemplateBinding Padding}"
|
||||
Style="{StaticResource ComboBoxEditableTextBox}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||
/>
|
||||
x:Name="PART_EditableTextBox"
|
||||
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||
Margin="{TemplateBinding Padding}"
|
||||
Background="Transparent"
|
||||
Foreground="{TemplateBinding Foreground}"
|
||||
IsReadOnly="{Binding IsReadOnly, RelativeSource={RelativeSource TemplatedParent}}"
|
||||
Style="{StaticResource ComboBoxEditableTextBox}" />
|
||||
</Border>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsEnabled" Value="false">
|
||||
<Setter Property="Opacity" TargetName="border" Value="0.56"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsKeyboardFocusWithin" Value="true">
|
||||
<Setter Property="Foreground" Value="Black"/>
|
||||
</Trigger>
|
||||
<Trigger Property="HasItems" Value="false">
|
||||
<Setter Property="Height" TargetName="dropDownBorder" Value="95"/>
|
||||
</Trigger>
|
||||
@@ -336,12 +458,68 @@
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
|
||||
<ControlTemplate x:Key="ComboBoxItemTemplate" TargetType="ComboBoxItem">
|
||||
<Border
|
||||
x:Name="root"
|
||||
Background="{TemplateBinding Background}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
BorderThickness="{TemplateBinding BorderThickness}"
|
||||
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
|
||||
Padding="{TemplateBinding Padding}"
|
||||
VerticalAlignment="{TemplateBinding VerticalAlignment}">
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
<VisualStateGroup Name="CommonStates">
|
||||
<VisualState Name="Normal" />
|
||||
|
||||
<VisualState Name="MouseOver">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="root" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.ComboBoxItem.mouseover_background}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="root" Storyboard.TargetProperty="BorderBrush">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.ComboBoxItem.mouseover_border}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
|
||||
<VisualState Name="Pressed">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="root" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.ComboBoxItem.pressed_background}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="root" Storyboard.TargetProperty="BorderBrush">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.ComboBoxItem.pressed_border}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
<ContentPresenter
|
||||
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
|
||||
<Style TargetType="ComboBoxItem">
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="Foreground" Value="{u:BTSColor UI.default_text}" />
|
||||
<Setter Property="Template" Value="{StaticResource ComboBoxItemTemplate}" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="{x:Type ComboBox}">
|
||||
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
|
||||
<Setter Property="Background" Value="{StaticResource ComboBox.Static.Background}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource ComboBox.Static.Border}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource ComboBox.Static.Foreground}"/>
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
|
||||
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
|
||||
<Setter Property="Padding" Value="6,3,1,3"/>
|
||||
@@ -349,6 +527,7 @@
|
||||
<Setter Property="ScrollViewer.PanningMode" Value="Both"/>
|
||||
<Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
|
||||
<Setter Property="Template" Value="{StaticResource ComboBoxTemplate}"/>
|
||||
<Setter Property="ItemContainerStyle" Value="{StaticResource {x:Type ComboBoxItem}}" />
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsEditable" Value="true">
|
||||
<Setter Property="IsTabStop" Value="false"/>
|
||||
@@ -358,12 +537,16 @@
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ComboBox.Dark" TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}" />
|
||||
|
||||
<Style x:Key="ComboBoxItem.Dark" TargetType="ComboBoxItem" BasedOn="{StaticResource {x:Type ComboBoxItem}}" />
|
||||
|
||||
<Style TargetType="{x:Type CheckBox}">
|
||||
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
|
||||
<Setter Property="Background" Value="#FFFFFFFF"/>
|
||||
<Setter Property="BorderBrush" Value="#FF707070"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="BorderBrush" Value="{u:BTSBrush UI.CheckBox.default_border}" />
|
||||
<Setter Property="Background" Value="{u:BTSBrush UI.CheckBox.default_background}" />
|
||||
<Setter Property="Foreground" Value="{u:BTSBrush UI.CheckBox.default_foreground}" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type CheckBox}">
|
||||
@@ -372,6 +555,124 @@
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
<VisualStateGroup Name="CommonStates">
|
||||
<VisualState Name="Normal" />
|
||||
|
||||
<VisualState Name="MouseOver">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="checkBoxBorder" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.CheckBox.mouseover_background}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="checkBoxBorder"
|
||||
Storyboard.TargetProperty="BorderBrush">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.CheckBox.mouseover_border}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="optionMark" Storyboard.TargetProperty="Fill">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.CheckBox.mouseover_foreground}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="indeterminateMark" Storyboard.TargetProperty="Fill">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.CheckBox.mouseover_foreground}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
|
||||
<VisualState Name="Pressed">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="checkBoxBorder" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.CheckBox.pressed_background}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="checkBoxBorder"
|
||||
Storyboard.TargetProperty="BorderBrush">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.CheckBox.pressed_border}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="optionMark" Storyboard.TargetProperty="Fill">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.CheckBox.pressed_foreground}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="indeterminateMark" Storyboard.TargetProperty="Fill">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.CheckBox.pressed_foreground}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
|
||||
<VisualState Name="Disabled">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="checkBoxBorder" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.CheckBox.disabled_background}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="checkBoxBorder"
|
||||
Storyboard.TargetProperty="BorderBrush">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.CheckBox.disabled_border}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="optionMark" Storyboard.TargetProperty="Fill">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.CheckBox.disabled_foreground}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
|
||||
<ObjectAnimationUsingKeyFrames
|
||||
Storyboard.TargetName="indeterminateMark" Storyboard.TargetProperty="Fill">
|
||||
<DiscreteObjectKeyFrame
|
||||
KeyTime="0" Value="{u:BTSBrush UI.CheckBox.disabled_foreground}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
|
||||
<VisualStateGroup Name="CheckStates">
|
||||
<VisualState Name="Unchecked" />
|
||||
|
||||
<VisualState Name="Checked">
|
||||
<Storyboard>
|
||||
<DoubleAnimation
|
||||
Storyboard.TargetName="optionMark"
|
||||
Storyboard.TargetProperty="Opacity"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="1" />
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
|
||||
<VisualState Name="Indeterminate">
|
||||
<Storyboard>
|
||||
<DoubleAnimation
|
||||
Storyboard.TargetName="indeterminateMark"
|
||||
Storyboard.TargetProperty="Opacity"
|
||||
BeginTime="0"
|
||||
Duration="0"
|
||||
To="1" />
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
<Border
|
||||
x:Name="checkBoxBorder"
|
||||
Margin="1"
|
||||
@@ -383,10 +684,18 @@
|
||||
>
|
||||
<Grid x:Name="markGrid">
|
||||
<Path
|
||||
x:Name="optionMark" Fill="#FF212121" Margin="1" Opacity="0" Stretch="None"
|
||||
Data="F1 M 9.97498,1.22334L 4.6983,9.09834L 4.52164,9.09834L 0,5.19331L 1.27664,3.52165L 4.255,6.08833L 8.33331,1.52588e-005L 9.97498,1.22334 Z"
|
||||
/>
|
||||
<Rectangle x:Name="indeterminateMark" Fill="#FF212121" Margin="2" Opacity="0"/>
|
||||
x:Name="optionMark"
|
||||
Margin="1"
|
||||
Opacity="0"
|
||||
Stretch="None"
|
||||
Fill="{TemplateBinding Foreground}"
|
||||
Data="F1 M 9.97498,1.22334L 4.6983,9.09834L 4.52164,9.09834L 0,5.19331L 1.27664,3.52165L 4.255,6.08833L 8.33331,1.52588e-005L 9.97498,1.22334 Z" />
|
||||
|
||||
<Rectangle
|
||||
x:Name="indeterminateMark"
|
||||
Margin="2"
|
||||
Opacity="0"
|
||||
Fill="{TemplateBinding Foreground}" />
|
||||
</Grid>
|
||||
</Border>
|
||||
<ContentPresenter
|
||||
@@ -419,7 +728,7 @@
|
||||
</Setter>
|
||||
<Setter Property="Padding" Value="4,-1,0,0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsMouseOver" Value="true">
|
||||
<!-- <Trigger Property="IsMouseOver" Value="true">
|
||||
<Setter Property="Background" TargetName="checkBoxBorder" Value="#FFF3F9FF"/>
|
||||
<Setter Property="BorderBrush" TargetName="checkBoxBorder" Value="#FF5593FF"/>
|
||||
<Setter Property="Fill" TargetName="optionMark" Value="#FF212121"/>
|
||||
@@ -444,13 +753,24 @@
|
||||
<Trigger Property="IsChecked" Value="{x:Null}">
|
||||
<Setter Property="Opacity" TargetName="optionMark" Value="0"/>
|
||||
<Setter Property="Opacity" TargetName="indeterminateMark" Value="1"/>
|
||||
</Trigger>
|
||||
</Trigger> -->
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="CheckBox.Dark" TargetType="CheckBox" BasedOn="{StaticResource {x:Type CheckBox}}" />
|
||||
|
||||
<Style TargetType="ListBox">
|
||||
<Setter Property="Background" Value="{StaticResource ListBox.Background}" />
|
||||
<Setter Property="Foreground" Value="{StaticResource ListBox.Foreground}" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="RadioButton">
|
||||
<Setter Property="Foreground" Value="{u:BTSColor UI.default_text}" />
|
||||
</Style>
|
||||
|
||||
<ControlTemplate x:Key="SelectableTabsTemplate" TargetType="TabItem">
|
||||
<Border>
|
||||
<Grid>
|
||||
@@ -481,6 +801,51 @@
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
|
||||
<Style TargetType="TabItem">
|
||||
<Setter Property="Background" Value="{u:BTSBrush UI.TabItem.normal_background}" />
|
||||
<Setter Property="BorderBrush" Value="{u:BTSBrush UI.TabItem.normal_border}" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="Foreground" Value="{u:BTSColor UI.TabItem.normal_foreground}" />
|
||||
<Setter Property="Padding" Value="3" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="TabItem">
|
||||
<Border
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
Background="{TemplateBinding Background}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
BorderThickness="{TemplateBinding BorderThickness}"
|
||||
Padding="{TemplateBinding Padding}">
|
||||
<ContentPresenter ContentSource="Header" />
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{u:BTSColor UI.TabItem.mouseover_background}" />
|
||||
</Trigger>
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter Property="Background" Value="{u:BTSColor UI.TabItem.selected_background}" />
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="TabItem.Dark" TargetType="TabItem" BasedOn="{StaticResource {x:Type TabItem}}" />
|
||||
|
||||
<Style TargetType="TabControl">
|
||||
<Setter Property="Background" Value="{u:BTSBrush UI.TabControl.default_background}" />
|
||||
<Setter Property="BorderBrush" Value="{u:BTSBrush UI.TabControl.default_border}" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="ItemContainerStyle" Value="{StaticResource TabItem.Dark}" />
|
||||
</Style>
|
||||
|
||||
<Style
|
||||
x:Key="TabControl.Dark"
|
||||
TargetType="TabControl"
|
||||
BasedOn="{StaticResource {x:Type TabControl}}" />
|
||||
|
||||
<HierarchicalDataTemplate x:Key="ShellLaunchWithDeleteItemTemplate" DataType="control:LaunchItemWithDelete">
|
||||
<Button
|
||||
Height="32" MinWidth="190" Padding="4"
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
#nullable enable
|
||||
|
||||
namespace Spark.ViewModel.Trading {
|
||||
using bts.api;
|
||||
using bts.api.orderman;
|
||||
|
||||
using mbts.ui;
|
||||
using mbts.ui.shell;
|
||||
|
||||
using System;
|
||||
using System.Windows.Input;
|
||||
|
||||
class RFQCreationVM : ViewModelBase {
|
||||
readonly uint _security_id;
|
||||
readonly Property<double> _quantity;
|
||||
readonly Property<bool> _is_buy_checked;
|
||||
readonly Property<bool> _is_sell_checked;
|
||||
|
||||
public RFQCreationVM(uint security_id) {
|
||||
_security_id = security_id;
|
||||
_quantity = backing(nameof(quantity), 1D);
|
||||
_is_buy_checked = backing(nameof(is_buy_checked), false);
|
||||
_is_sell_checked = backing(nameof(is_sell_checked), false);
|
||||
commit_cmd = new Command(() => request_commit?.Invoke(result));
|
||||
}
|
||||
|
||||
public Action<RFQRequestImmutable>? request_commit;
|
||||
|
||||
public double quantity {
|
||||
get => _quantity.Value;
|
||||
set => _quantity.set(value);
|
||||
}
|
||||
|
||||
public bool is_buy_checked {
|
||||
get => _is_buy_checked.Value;
|
||||
set => _is_buy_checked.set(value);
|
||||
}
|
||||
|
||||
public bool is_sell_checked {
|
||||
get => _is_sell_checked.Value;
|
||||
set => _is_sell_checked.set(value);
|
||||
}
|
||||
|
||||
public RFQRequestImmutable result {
|
||||
get {
|
||||
return new(new() {
|
||||
Security = new() { SecurityId = _security_id },
|
||||
Quantity = new() { Qty = quantity },
|
||||
Side = new() {
|
||||
Side = (is_buy_checked == is_sell_checked) ?
|
||||
Side.Undefined :
|
||||
is_buy_checked ? Side.Buy : Side.Sell
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public ICommand commit_cmd { get; }
|
||||
}
|
||||
}
|
||||
@@ -162,17 +162,17 @@ namespace bts.spark {
|
||||
public static PartialCommand<VolSurfaceWindowSettings> show_vol_surface =>
|
||||
SparkCommand.create("Vol Surface", Icons.vol_surface, SparkTags.ShowVolSurface);
|
||||
|
||||
public static PartialCommand<OptionsViewSettings> show_options_view =>
|
||||
public static PartialCommand<OptionsViewSettings> show_options_view =>
|
||||
SparkCommand.create("Options View", Icons.options_view, SparkTags.show_options_view);
|
||||
|
||||
public static PartialCommand<SecurityCriteria> show_default_options_view =>
|
||||
public static PartialCommand<SecurityCriteria> show_default_options_view =>
|
||||
SparkCommand.create("Options View", Icons.options_view, SparkTags.show_default_options_view);
|
||||
|
||||
public static SparkCommand pick_default_options_view =>
|
||||
SparkCommand.create(
|
||||
"Options View", Icons.Sheets, SparkTags.ShowPickMultiple, show_default_options_view);
|
||||
|
||||
public static PartialCommand<AnalyticsExpirationParametersSettings> show_analytics_exp_params() =>
|
||||
public static PartialCommand<AnalyticsExpirationParametersSettings> show_analytics_exp_params() =>
|
||||
SparkCommand.create("Analytics Exp Params", Icons.Abacus, SparkTags.show_analytics_exp_params);
|
||||
|
||||
public static SparkCommand<AnalyticsExpirationParametersSettings> show_analytics_exp_params(
|
||||
|
||||
@@ -19,6 +19,7 @@ namespace mbts.spark {
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Drawing;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
@@ -44,6 +45,8 @@ namespace mbts.spark {
|
||||
|
||||
public static ITag<IReadOnlyDictionary<uint, UserTuple>> Users { get; } =
|
||||
_mk_tag<IReadOnlyDictionary<uint, UserTuple>>();
|
||||
|
||||
public static ITag<UserTuple> CurrentUser { get; } = _mk_tag<UserTuple>();
|
||||
#endregion
|
||||
|
||||
#region Order
|
||||
@@ -61,6 +64,9 @@ namespace mbts.spark {
|
||||
public static ITag<(OrderDefinitionImmutable def, double price, uint size)> ShowOrderTicketTag { get; } =
|
||||
_mk_tag<(OrderDefinitionImmutable def, double price, uint size)>();
|
||||
public static ITag<RFQRequestImmutable> RFQSend { get; } = _mk_tag<RFQRequestImmutable>();
|
||||
public static ITag<Tuple<RFQRequestSecurityImmutable, Point>> RFQDialog { get; } =
|
||||
_mk_tag<Tuple<RFQRequestSecurityImmutable, Point>>();
|
||||
public static ITag<IEnumerable<AlgoData>> Algos { get; } = _mk_tag<IEnumerable<AlgoData>>();
|
||||
#endregion
|
||||
|
||||
#region Selection/Utility
|
||||
|
||||
@@ -150,6 +150,9 @@
|
||||
public static implicit operator BTSColor(uint x) =>
|
||||
new(x);
|
||||
|
||||
public static implicit operator OxyPlot.OxyColor(BTSColor x) =>
|
||||
OxyPlot.OxyColor.FromArgb(x.a, x.r, x.g, x.b);
|
||||
|
||||
public BTSColor clone() =>
|
||||
new(a, r, g, b);
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#nullable enable
|
||||
namespace mbts.ui {
|
||||
using bts.utils;
|
||||
|
||||
using Spark.Core.Reflection;
|
||||
|
||||
using System;
|
||||
@@ -20,11 +22,23 @@ namespace mbts.ui {
|
||||
public BTSColorExtension(string? name) =>
|
||||
Name = name;
|
||||
|
||||
public BTSColorExtension(string? name, string? mixture) {
|
||||
Name = name;
|
||||
Mixture = mixture;
|
||||
}
|
||||
|
||||
[ConstructorArgument("name")]
|
||||
public string? Name { get; set; }
|
||||
|
||||
[ConstructorArgument("mixture")]
|
||||
public string? Mixture { get; set; }
|
||||
|
||||
public ColorMixtureMode MixtureMode { get; set; } = ColorMixtureMode.Default;
|
||||
|
||||
public Type? Type { get; set; }
|
||||
|
||||
public double Opacity { get; set; } = double.NaN;
|
||||
|
||||
public static BTSColor get_color(string name) =>
|
||||
_color_map.TryGetValue(name, out var color) ?
|
||||
color() : throw new ColorNotFoundException(name);
|
||||
@@ -36,11 +50,21 @@ namespace mbts.ui {
|
||||
if (Name is null) {
|
||||
throw new InvalidOperationException("Name is null");
|
||||
}
|
||||
if (!Opacity.is_nan() && !Opacity.is_within_range(0, 1)) {
|
||||
throw new InvalidOperationException("Opacity (pct) must between 0 and 1 (if not NaN)");
|
||||
}
|
||||
|
||||
if (Name.Contains("Launcher.Button")) {
|
||||
}
|
||||
var pvt = service_provider.GetValueTargetProvider() ??
|
||||
throw new InvalidOperationException("IProvideValueTarget is null");
|
||||
var tgt_type = Type ?? _deduce_target_type(pvt);
|
||||
var color = get_color(Name);
|
||||
var names = Name.Split(',');
|
||||
var mixtures = Mixture?.Split(',');
|
||||
var color = _get_color_blend(names, mixtures, MixtureMode);
|
||||
if (!Opacity.is_nan()) {
|
||||
color = color.with((byte)(Opacity * byte.MaxValue));
|
||||
}
|
||||
return tgt_type == typeof(Color) ? (Color)color : (Brush)color;
|
||||
}
|
||||
|
||||
@@ -57,6 +81,21 @@ namespace mbts.ui {
|
||||
return typeof(Brush);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a (potentially weighted) blend of colors
|
||||
/// </summary>
|
||||
static BTSColor _get_color_blend(string[] names, string[]? mixture, ColorMixtureMode mode) {
|
||||
if (mixture is null || mixture.Length == 0) {
|
||||
// create a uniform blend
|
||||
return names.Select(get_color).blend(mode);
|
||||
}
|
||||
if (names.Length != mixture.Length) {
|
||||
throw new InvalidOperationException(
|
||||
"Names and Mixture must provide same number of elements");
|
||||
}
|
||||
return names.Select(get_color).Zip(mixture.Select(double.Parse)).blend();
|
||||
}
|
||||
|
||||
static IEnumerable<(string, Func<BTSColor>)> _normalized_color_props(
|
||||
Type type, string? prefix) {
|
||||
var bts_colors = ReflectionHelper.static_property_getters<BTSColor>(type)
|
||||
|
||||
@@ -1,8 +1,66 @@
|
||||
|
||||
namespace mbts.ui {
|
||||
using bts;
|
||||
using bts.utils;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Media;
|
||||
|
||||
enum ColorMixtureMode {
|
||||
Alpha,
|
||||
Layered,
|
||||
Default
|
||||
}
|
||||
|
||||
static class BTSColorExtensions {
|
||||
public static BTSColor blend(
|
||||
this IEnumerable<BTSColor> recipe, ColorMixtureMode mode = ColorMixtureMode.Alpha) {
|
||||
return mode switch {
|
||||
ColorMixtureMode.Alpha or ColorMixtureMode.Default => recipe
|
||||
.Select(c => (c.with(byte.MaxValue), (double)c.a))
|
||||
.blend()
|
||||
.with(recipe.Max(c => c.a, (byte)0)),
|
||||
ColorMixtureMode.Layered => layered_impl(),
|
||||
_ => throw new ArgumentException($"Invalid ColorMixtureMode '{mode}'", nameof(mode))
|
||||
};
|
||||
|
||||
BTSColor layered_impl() {
|
||||
var recipe_list = recipe.AsOrToList();
|
||||
var mixture = new (BTSColor color, double weight)[recipe_list.Count];
|
||||
double rem_weight = byte.MaxValue;
|
||||
// Set the result color alpha to the max alpha in the layers
|
||||
var norm_alpha = recipe.Aggregate(
|
||||
(byte)0, (a, c) => (byte)(a + c.a * ((byte.MaxValue - a) / (double)byte.MaxValue)));
|
||||
// Each layer's weight is multiplied by (1 - sum of above layers' weight pcts).
|
||||
// With this behavior, an opaque layer completely masks the layers beneath it.
|
||||
for (int i = recipe_list.Count - 1; i >= 0 && rem_weight > 0; i--) {
|
||||
var layer_color = recipe_list[i];
|
||||
var layer_weight = layer_color.a * (rem_weight / byte.MaxValue);
|
||||
rem_weight -= layer_weight;
|
||||
mixture[i] = (layer_color.with(norm_alpha), layer_weight);
|
||||
}
|
||||
return mixture.Where(c => (c.color?.a ?? 0) != 0).blend();
|
||||
}
|
||||
}
|
||||
|
||||
public static BTSColor blend(this IEnumerable<(BTSColor color, double weight)> recipe) {
|
||||
var recipe_list = recipe.AsOrToList();
|
||||
if (recipe_list.Any(tup => !tup.weight.is_real_non_negative())) {
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
if (recipe_list.Count == 0 || recipe_list.All(tup => tup.weight == 0)) {
|
||||
return Colors.Transparent;
|
||||
}
|
||||
var r = recipe_list.weighted_average(c => c.color.r, c => c.weight);
|
||||
var g = recipe_list.weighted_average(c => c.color.g, c => c.weight);
|
||||
var b = recipe_list.weighted_average(c => c.color.b, c => c.weight);
|
||||
Log.assert(!r.is_nan() && !g.is_nan() && !b.is_nan());
|
||||
var a = recipe_list.Max(c => c.color.a, (byte)0);
|
||||
return new(a, (byte)r, (byte)g, (byte)b);
|
||||
}
|
||||
|
||||
public static System.Windows.Media.SolidColorBrush to_brush(
|
||||
this BTSColor color) {
|
||||
var brush = new System.Windows.Media.SolidColorBrush(color);
|
||||
@@ -86,8 +144,5 @@ namespace mbts.ui {
|
||||
|
||||
return (h, s, l);
|
||||
}
|
||||
|
||||
public static BTSColor with(this BTSColor color, byte alpha) =>
|
||||
new(alpha, color.r, color.g, color.b);
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,131 +1,139 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace mbts.ui {
|
||||
namespace mbts.ui {
|
||||
public static class BTSCoreColors {
|
||||
public static BTSColor transparent => 0x00000000u;
|
||||
|
||||
// Gray
|
||||
public static BTSColor black = 0x00;// 000000
|
||||
public static BTSColor white = 0xff; // ffffff
|
||||
|
||||
|
||||
public static BTSColor gray_8c = 0x8c; // 8c8c8c
|
||||
public static BTSColor gray_dc = 0xdc; // dcdcdc
|
||||
|
||||
public static BTSColor gray_darkest = 0x21; // 212121
|
||||
public static BTSColor gray_darker = 0x40;// 404040
|
||||
public static BTSColor gray_dark = 0x5e;// 5e5e5e
|
||||
public static BTSColor gray = 0x80; // 808080 (replaces system Gray)
|
||||
public static BTSColor gray_light = 0xa1; // a1a1a1
|
||||
public static BTSColor gray_lighter = 0xbf; // bfbfbf
|
||||
public static BTSColor gray_lightest = 0xde; // dedede
|
||||
public static BTSColor gray_lightest_light = 0xf5; // f5f5f5 (Replaces System Light Smoke)
|
||||
public static BTSColor black => 0x00;
|
||||
public static BTSColor white => 0xff;
|
||||
public static BTSColor gray_8c => 0x8c;
|
||||
public static BTSColor gray_dc => 0xdc;
|
||||
public static BTSColor gray_darkest => 0x21;
|
||||
public static BTSColor gray_darker => 0x40;
|
||||
public static BTSColor gray_dark => 0x5e;
|
||||
public static BTSColor gray => 0x80;
|
||||
public static BTSColor gray_light => 0xa1;
|
||||
public static BTSColor gray_lighter => 0xbf;
|
||||
public static BTSColor gray_lightest => 0xde;
|
||||
public static BTSColor gray_lightest_light => 0xf5;
|
||||
|
||||
// Blue
|
||||
public static BTSColor blue = new BTSColor(0x00, 0x00, 0xff); // 0000ff
|
||||
|
||||
public static BTSColor base_blue = new BTSColor(0x41, 0x69, 0xaa); // 4169AA
|
||||
|
||||
public static BTSColor blue_light_dark = new BTSColor(0x9a, 0xb1, 0xd6); //9ab1d6
|
||||
public static BTSColor blue_light_dark_saturated = new BTSColor(0x72, 0x98, 0xd6); //7298d6
|
||||
public static BTSColor blue_light = new BTSColor(0xc2, 0xd6, 0xf6); //c2d6f6
|
||||
public static BTSColor blue_light_light = new BTSColor(0xd4, 0xe1, 0xf6); //d4e1f6
|
||||
public static BTSColor blue_light_lighter = new BTSColor(0xe6, 0xef, 0xff); //e6efff
|
||||
|
||||
public static BTSColor blue_light_alternate = new BTSColor(0xa6, 0xba, 0xff); //a6baff
|
||||
public static BTSColor blue_light_alternate_light = new BTSColor(0xd9, 0xd9, 0xff); //d9d9ff
|
||||
|
||||
public static BTSColor blue_pale_light = new BTSColor(0xf2, 0xf7, 0xff); //f2f7ff
|
||||
|
||||
public static BTSColor blue_dark = new BTSColor(0x1a, 0x34, 0x5d); //1A345D
|
||||
public static BTSColor blue_dark_light = new BTSColor(0x2e, 0x5b, 0xa3); //2e5ba3
|
||||
public static BTSColor blue_dark_lighter_pale = new BTSColor(0x63, 0x8a, 0xc7); //638ac7
|
||||
|
||||
public static BTSColor blue_bright_darkest = new BTSColor(0x29, 0x59, 0xa6); //2959a6
|
||||
public static BTSColor blue_bright_darker = new BTSColor(0x39, 0x6c, 0xbf); //396cbf
|
||||
public static BTSColor blue_bright_dark = new BTSColor(0x55, 0x85, 0xd4); //5585d4
|
||||
public static BTSColor blue_bright = new BTSColor(0x5e, 0x98, 0xf6); //5E98F6
|
||||
public static BTSColor blue_bright_light_dark = new BTSColor(0x8f, 0xaf, 0xff); //8fbaff
|
||||
public static BTSColor blue_bright_light = new BTSColor(0xa6, 0xc8, 0xff); //a6c8ff
|
||||
public static BTSColor blue_bright_lighter = new BTSColor(0xd6, 0xe6, 0xff); //d6e6ff
|
||||
public static BTSColor blue_bright_lightest = new BTSColor(0xeb, 0xf3, 0xff); //ebf3ff
|
||||
|
||||
public static BTSColor blue_grey_dark = new BTSColor(0x3b, 0x46, 0x57); //3b4657
|
||||
public static BTSColor blue_grey = new BTSColor(0x7e, 0x9a, 0xb8); //7E94B8
|
||||
public static BTSColor blue_grey_light = new BTSColor(0xba, 0xbf, 0xc7); //babfc7
|
||||
public static BTSColor blue_grey_lighter = new BTSColor(0xd1, 0xd7, 0xe0); //d1d7e0
|
||||
public static BTSColor blue_grey_lightest = new BTSColor(0xde, 0xde, 0xe8); //dedee8
|
||||
|
||||
public static BTSColor blue => 0xff0000ff;
|
||||
public static BTSColor blue_light_dark => 0xff9ab1d6;
|
||||
public static BTSColor blue_light_dark_saturated => 0xff7298d6;
|
||||
public static BTSColor blue_light => 0xffc2d6f6;
|
||||
public static BTSColor blue_light_light => 0xffd4e1f6;
|
||||
public static BTSColor blue_light_lighter => 0xffe6efff;
|
||||
public static BTSColor blue_light_alternate => 0xffa6baff;
|
||||
public static BTSColor blue_light_alternate_light => 0xffd9d9ff;
|
||||
public static BTSColor blue_pale_light => 0xfff2f7ff;
|
||||
public static BTSColor blue_dark => 0xff1a345d;
|
||||
public static BTSColor blue_dark_light => 0xff2e5ba3;
|
||||
public static BTSColor blue_dark_lighter_pale => 0xff638ac7;
|
||||
public static BTSColor blue_bright_darkest => 0xff2959a6;
|
||||
public static BTSColor blue_bright_darker => 0xff396cbf;
|
||||
public static BTSColor blue_bright_dark => 0xff5585d4;
|
||||
public static BTSColor blue_bright => 0xff5e98f6;
|
||||
public static BTSColor blue_bright_light_dark => 0xff8fafff;
|
||||
public static BTSColor blue_bright_light => 0xffa6c8ff;
|
||||
public static BTSColor blue_bright_lighter => 0xffd6e6ff;
|
||||
public static BTSColor blue_bright_lightest => 0xffebf3ff;
|
||||
public static BTSColor blue_grey_dark => 0xff3b4657;
|
||||
public static BTSColor blue_grey => 0xff7e9ab8;
|
||||
public static BTSColor blue_grey_light => 0xffbabfc7;
|
||||
public static BTSColor blue_grey_lighter => 0xffd1d7e0;
|
||||
public static BTSColor blue_grey_lightest => 0xffdedee8;
|
||||
public static BTSColor bright_navy_blue => 0xff167ed3;
|
||||
public static BTSColor jordy_blue => 0xff90b8f8;
|
||||
public static BTSColor pictin_blue => 0xff2fb5e4;
|
||||
public static BTSColor sky_blue => 0xff6ddbff;
|
||||
public static BTSColor medium_sky_blue => 0xff86e8e0;
|
||||
public static BTSColor english_lavender => 0xffaa8496;
|
||||
public static BTSColor roman_silver => 0xff8a8496;
|
||||
public static BTSColor dark_pastel_blue => 0xff729ccd;
|
||||
public static BTSColor iris => 0xff5555c4;
|
||||
|
||||
// Lavender
|
||||
public static BTSColor mauve => 0xffe5a5ff;
|
||||
public static BTSColor lavender_magenta => 0xffe488f5;
|
||||
public static BTSColor lavender_pink => 0xffffaad2;
|
||||
public static BTSColor tropical_violet => 0xffc8abe8;
|
||||
|
||||
// Cyan
|
||||
public static BTSColor cyan_green_darker = new BTSColor(0x0a, 0x79, 0x66); //0A7966
|
||||
public static BTSColor cyan_green_dark = new BTSColor(0x1b, 0x96, 0x81); //1B9681
|
||||
public static BTSColor cyan_green = new BTSColor(0x34, 0xa3, 0x90); //34A390
|
||||
public static BTSColor cyan_green_light = new BTSColor(0x57, 0xbe, 0xad); //57BEAD
|
||||
public static BTSColor cyan_green_lighter = new BTSColor(0x88, 0xd9, 0xcb); //88D9CB
|
||||
public static BTSColor cyan_green_lightest = new BTSColor(0xac, 0xe8, 0xde); //ace8de
|
||||
public static BTSColor cyan_green_darker => 0xff0a7966;
|
||||
public static BTSColor cyan_green_dark => 0xff1b9681;
|
||||
public static BTSColor cyan_green => 0xff34a390;
|
||||
public static BTSColor cyan_green_light => 0xff57bead;
|
||||
public static BTSColor cyan_green_lighter => 0xff88d9cb;
|
||||
public static BTSColor cyan_green_lightest => 0xfface8de;
|
||||
|
||||
// Green
|
||||
public static BTSColor unrelated_green_for_theos_and_deltas_and_nothing_else = new BTSColor(0xd1, 0xff, 0xd1); // d1ffd1
|
||||
public static BTSColor unrelated_green_for_theos_and_deltas_and_nothing_else => 0xffd1ffd1;
|
||||
public static BTSColor green_mid => 0xff70a352;
|
||||
public static BTSColor green_light_dark => 0xff88a353;
|
||||
public static BTSColor green_light_saturated => 0xffb8ff2e;
|
||||
public static BTSColor green_light => 0xffd4ff80;
|
||||
public static BTSColor green_light_light_saturated => 0xffd7ff8a;
|
||||
public static BTSColor green_light_light => 0xffebffc4;
|
||||
public static BTSColor green_dark => 0xff617722;
|
||||
public static BTSColor green_pale_dark => 0xffaccf68;
|
||||
public static BTSColor green_bright_darker => 0xff518700;
|
||||
public static BTSColor green_bright_dark => 0xff60a100;
|
||||
public static BTSColor green_bright => 0xff7ccf00;
|
||||
public static BTSColor green_bright_light => 0xffdff2c2;
|
||||
public static BTSColor green => 0xff00c000;
|
||||
public static BTSColor green_p_light => 0xff99ee90;
|
||||
public static BTSColor green_dark_light => 0xff255d25;
|
||||
public static BTSColor light_sea_green => 0xff17b794;
|
||||
public static BTSColor very_light_malachite_green => 0xff52e887;
|
||||
public static BTSColor may_green => 0xff43a23c;
|
||||
public static BTSColor japanese_laurel => 0xff377d35;
|
||||
public static BTSColor amazon => 0xff346751;
|
||||
|
||||
public static BTSColor green_mid = new BTSColor(0x70, 0xa3, 0x52); //70a352
|
||||
// Red
|
||||
public static BTSColor red_lighter => 0xffffd9d9;
|
||||
public static BTSColor red_light => 0xffffa6a6;
|
||||
public static BTSColor red => 0xffff0000;
|
||||
public static BTSColor red_dark => 0xffc00000;
|
||||
public static BTSColor red_darker => 0xffa00000;
|
||||
public static BTSColor red_pale_dark => 0xffe66855;
|
||||
public static BTSColor red_pale => 0xffffbfb5;
|
||||
public static BTSColor red_light_dark => 0xffd69a9a;
|
||||
public static BTSColor red_light_dark_saturated => 0xffd67e7e;
|
||||
public static BTSColor permanent_geranium_lake => 0xffde3429;
|
||||
public static BTSColor fire_opal => 0xfff05454;
|
||||
public static BTSColor paradise_pink => 0xffe94560;
|
||||
public static BTSColor tulip => 0xffff878d;
|
||||
public static BTSColor venetian_red => 0xffc41212;
|
||||
|
||||
public static BTSColor green_light_dark = new BTSColor(0x88, 0xa3, 0x53); //88a352
|
||||
public static BTSColor green_light_saturated = new BTSColor(0xb8, 0xff, 0x2e); //b8ff2e
|
||||
public static BTSColor green_light = new BTSColor(0xd4, 0xff, 0x80); //d4ff80
|
||||
public static BTSColor green_light_light_saturated = new BTSColor(0xd7, 0xff, 0x8a); //d7ff8a
|
||||
public static BTSColor green_light_light = new BTSColor(0xeb, 0xff, 0xc4); //ebffc4
|
||||
// Green/Blue
|
||||
public static BTSColor maximum_blue_purple => 0xffacffb3;
|
||||
|
||||
public static BTSColor green_dark = new BTSColor(0x61, 0x77, 0x22); //617722
|
||||
|
||||
public static BTSColor green_pale_dark = new BTSColor(0xac, 0xcf, 0x68); //accf68
|
||||
|
||||
public static BTSColor green_bright_darker = new BTSColor(0x51, 0x87, 0x00); //518700
|
||||
public static BTSColor green_bright_dark = new BTSColor(0x60, 0xa1, 0x00); //60a100
|
||||
public static BTSColor green_bright = new BTSColor(0x7c, 0xcf, 0x00); //7ccf00
|
||||
public static BTSColor green_bright_light = new BTSColor(0xdf, 0xf2, 0xc2); //dff2c2
|
||||
|
||||
public static BTSColor green = new BTSColor(0x00, 0xc0, 0x00); //00c000
|
||||
public static BTSColor green_p_light = new BTSColor(0x99, 0xee, 0x90); //99ee90
|
||||
|
||||
public static BTSColor green_dark_light = new BTSColor(0x25, 0x5d, 0x25); //255d25
|
||||
|
||||
//Red
|
||||
public static BTSColor red_lighter = new BTSColor(0xff, 0xd9, 0xd9); //ffd9d9
|
||||
public static BTSColor red_light = new BTSColor(0xff, 0xa6, 0xa6); //ffa6a6
|
||||
public static BTSColor red = new BTSColor(0xff, 0x00, 0x00); // ff0000
|
||||
public static BTSColor red_dark = new BTSColor(0xc0, 0x00, 0x00); // c00000
|
||||
public static BTSColor red_darker = new BTSColor(0xa0, 0x00, 0x00); // c00000
|
||||
|
||||
public static BTSColor red_pale_dark = new BTSColor(0xe6, 0x68, 0x55); //e66855
|
||||
public static BTSColor red_pale = new BTSColor(0xff, 0xbf, 0xb5); // ffbfb5
|
||||
|
||||
public static BTSColor red_light_dark = new BTSColor(0xd6, 0x9a, 0x9a); //d69a9a
|
||||
public static BTSColor red_light_dark_saturated = new BTSColor(0xd6, 0x7e, 0x7e); //d67e7e
|
||||
// Red/Green
|
||||
public static BTSColor olive => 0xff808000;
|
||||
public static BTSColor antique_bronze => 0xff6e5e11;
|
||||
|
||||
// Yellow
|
||||
public static BTSColor yellow_bright = new BTSColor(0xee, 0xff, 0x00); //eeff00
|
||||
|
||||
public static BTSColor yellow_lightest_lightest = new BTSColor(0xff, 0xfc, 0xf2); //fffcf2
|
||||
public static BTSColor yellow_lightest = new BTSColor(0xff, 0xec, 0xa0); //FFECA0
|
||||
public static BTSColor yellow_lighter = new BTSColor(0xff, 0xe2, 0x74); //FFE474
|
||||
public static BTSColor yellow_light = new BTSColor(0xff, 0xdd, 0x52); //FFDD52
|
||||
public static BTSColor yellow = new BTSColor(0xed, 0xc7, 0x2a); //EDC72A
|
||||
public static BTSColor yellow_bright => 0xffeeff00;
|
||||
public static BTSColor yellow_lightest_lightest => 0xfffffcf2;
|
||||
public static BTSColor yellow_lightest => 0xffffeca0;
|
||||
public static BTSColor yellow_lighter => 0xffffe274;
|
||||
public static BTSColor yellow_light => 0xffffdd52;
|
||||
public static BTSColor yellow => 0xffedc72a;
|
||||
public static BTSColor sunny => 0xffffff80;
|
||||
public static BTSColor urobilin => 0xffddaa27;
|
||||
|
||||
// Orange
|
||||
public static BTSColor orange_yellow = new BTSColor(0xff, 0xbc, 0x46); //FFBC46
|
||||
|
||||
public static BTSColor orange_lightest = new BTSColor(0xff, 0xac, 0x74); //FFAC74
|
||||
public static BTSColor orange_light = new BTSColor(0xff, 0x98, 0x52); //FF9852
|
||||
public static BTSColor orange = new BTSColor(0xed, 0x79, 0x2a); //ED792A
|
||||
public static BTSColor orange_dark = new BTSColor(0xc0, 0x56, 0x0f); //C0560F
|
||||
public static BTSColor orange_yellow => 0xffffbc46;
|
||||
public static BTSColor orange_lightest => 0xffffac74;
|
||||
public static BTSColor orange_light => 0xffff9852;
|
||||
public static BTSColor orange => 0xffed792a;
|
||||
public static BTSColor orange_dark => 0xffc0560f;
|
||||
public static BTSColor american_orange => 0xfffc8b00;
|
||||
public static BTSColor ochre => 0xffdd7a27;
|
||||
|
||||
// Purple
|
||||
public static BTSColor purple_light = new BTSColor(0xcc, 0xb8, 0xc8); //CCB8C8
|
||||
|
||||
public static BTSColor purple_light => 0xffccb8c8;
|
||||
public static BTSColor french_lilac => 0xff815f91;
|
||||
public static BTSColor french_plum => 0xff8a005f;
|
||||
}
|
||||
}
|
||||
@@ -3,68 +3,51 @@
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mbts="clr-namespace:mbts.ui"
|
||||
xmlns:ui="clr-namespace:mbts.ui"
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
>
|
||||
<!--Control Base Colors-->
|
||||
<Color x:Key="Control.SuperLightGrayColor">#F6F6F6</Color>
|
||||
<Color x:Key="Control.LightGrayColor">#E5E5E5</Color>
|
||||
<Color x:Key="Control.LightMediumGrayColor">#CFCFCF</Color>
|
||||
<Color x:Key="Control.MediumGrayColor">#B3B3B3</Color>
|
||||
<Color x:Key="Control.MediumDarkGrayColor">#ACACAC</Color>
|
||||
<Color x:Key="Control.AlphaLightGrayColor">#10000000</Color>
|
||||
<Color x:Key="Control.AlphaLightMediumGrayColor">#24000000</Color>
|
||||
<Color x:Key="Control.AlphaMediumGrayColor">#3A000000</Color>
|
||||
<Color x:Key="Control.AlphaMediumGrayColor2">#FF0000</Color>
|
||||
<Color x:Key="Control.DarkMediumGrayColor">#FF959595</Color>
|
||||
<Color x:Key="Control.DarkGrayColor">#707070</Color>
|
||||
<Color x:Key="Text.Prompt.Foreground.Color">#FF999999</Color>
|
||||
|
||||
<SolidColorBrush x:Key="Control.AlphaLightGrayBrush" Color="{StaticResource Control.AlphaLightGrayColor}"/>
|
||||
<SolidColorBrush x:Key="Control.AlphaLightMediumGrayBrush" Color="{StaticResource Control.AlphaLightMediumGrayColor}"/>
|
||||
<SolidColorBrush x:Key="Control.LightGrayBrush" Color="{StaticResource Control.LightGrayColor}"/>
|
||||
<SolidColorBrush x:Key="Control.LightMediumGrayBrush" Color="{StaticResource Control.LightMediumGrayColor}"/>
|
||||
<SolidColorBrush x:Key="Control.MediumGrayBrush" Color="{StaticResource Control.MediumGrayColor}"/>
|
||||
<SolidColorBrush x:Key="CommonBackground" Color="{ui:BTSColor common_background}" />
|
||||
<SolidColorBrush x:Key="ControlBackground" Color="{x:Static mbts:BTSColors.common_background}" />
|
||||
<SolidColorBrush x:Key="AccentColor1" Color="{x:Static mbts:BTSColors.accent1}" />
|
||||
<SolidColorBrush x:Key="FormBorderColor" Color="{ui:BTSColor UI.form_border}" />
|
||||
<SolidColorBrush x:Key="TextBox.BackgroundBrush" Color="{u:BTSColor UI.TextBox.default_background}" />
|
||||
<SolidColorBrush x:Key="TextBox.ForegroundBrush" Color="{u:BTSColor UI.TextBox.default_foreground}" />
|
||||
<SolidColorBrush x:Key="Text.Prompt.ForegroundBrush" Color="{u:BTSColor UI.text_prompt_foreground}" />
|
||||
|
||||
<SolidColorBrush x:Key="MouseOverItemBackground" Color="#AAD1FF" Opacity="0.5" />
|
||||
|
||||
<!--Style guide colors-->
|
||||
<SolidColorBrush x:Key="Warning" Color="{x:Static mbts:BTSColors.warning}" />
|
||||
<SolidColorBrush x:Key="Danger" Color="{x:Static mbts:BTSColors.danger}" />
|
||||
<SolidColorBrush x:Key="Success" Color="{x:Static mbts:BTSColors.success}" />
|
||||
<SolidColorBrush x:Key="Warning" Color="{u:BTSColor UI.warning}" />
|
||||
<SolidColorBrush x:Key="Danger" Color="{u:BTSColor UI.danger}" />
|
||||
<SolidColorBrush x:Key="Success" Color="{u:BTSColor UI.success}" />
|
||||
|
||||
<SolidColorBrush x:Key="bid_background" Color="{mbts:BTSColor Name=Quoteset.default_background}" />
|
||||
<SolidColorBrush x:Key="bid_foreground" Color="{mbts:BTSColor Name=Quoteset.bid_text}" />
|
||||
<SolidColorBrush x:Key="ask_background" Color="{mbts:BTSColor Name=Quoteset.default_background}" />
|
||||
<SolidColorBrush x:Key="ask_foreground" Color="{mbts:BTSColor Name=Quoteset.ask_text}" />
|
||||
<SolidColorBrush x:Key="override_color" Color="{mbts:BTSColor Name=Quoteset.quoteset_override}" />
|
||||
<SolidColorBrush x:Key="dialog_skirt" Color="{mbts:BTSColor Name=UI.dialog_skirt}" />
|
||||
<SolidColorBrush x:Key="dialog_skirt" Color="{u:BTSColor UI.dialog_skirt}" />
|
||||
|
||||
<!---TextBox-->
|
||||
<Color x:Key="TextBox.Static.Background.Color">#FFFFFFFF</Color>
|
||||
<Color x:Key="TextBox.Static.Border.Color">#FFABADB3</Color>
|
||||
<Color x:Key="TextBox.MouseOver.Border.Color">#FF7EB4EA</Color>
|
||||
<Color x:Key="TextBox.Static.Background.Color">#404040</Color>
|
||||
<Color x:Key="TextBox.Static.Border.Color">#00FFFFFF</Color>
|
||||
<Color x:Key="TextBox.MouseOver.Border.Color">#80FFFFFF</Color>
|
||||
|
||||
<SolidColorBrush x:Key="TextBox.Static.Border.Brush" Color="{StaticResource TextBox.Static.Border.Color}"/>
|
||||
<SolidColorBrush x:Key="TextBox.Static.Background.Brush" Color="{StaticResource TextBox.Static.Background.Color}"/>
|
||||
<SolidColorBrush x:Key="TextBox.MouseOver.Border.Brush" Color="{StaticResource TextBox.MouseOver.Border.Color}"/>
|
||||
|
||||
<!--Menu-->
|
||||
<Color x:Key="MenuItem.MouseOver.Background.Color">#3D26A0DA</Color>
|
||||
<Color x:Key="MenuItem.MouseOver.Border.Color">#FF26A0DA</Color>
|
||||
<Color x:Key="Menu.Background.Color">#FFF5F5F5</Color>
|
||||
<Color x:Key="Menu.DarkBackground.Color">#FFF1F1F1</Color>
|
||||
<Color x:Key="Menu.Border.Color">#FFE2E3E3</Color>
|
||||
<Color x:Key="MenuItem.MouseOver.Background.Color">#404040</Color>
|
||||
<Color x:Key="MenuItem.MouseOver.Border.Color">#80FFFFFF</Color>
|
||||
<Color x:Key="Menu.Background.Color">#202020</Color>
|
||||
<Color x:Key="Menu.Border.Color">#00FFFFFF</Color>
|
||||
|
||||
<!--CheckBox-->
|
||||
<Color x:Key="CheckBox.Static.ForegroundColor">#FF212121</Color>
|
||||
<Color x:Key="CheckBox.Static.ForegroundColor">#DDDDDD</Color>
|
||||
<Color x:Key="CheckBox.Static.BackgroundColor">#FFFFFFFF</Color>
|
||||
<Color x:Key="CheckBox.Static.BorderColor">#FF707070</Color>
|
||||
<Color x:Key="CheckBox.MouseOver.BackgroundColor">#FFF3F9FF</Color>
|
||||
<Color x:Key="CheckBox.MouseOver.BorderColor">#FF5593FF</Color>
|
||||
<Color x:Key="CheckBox.Pressed.BackgroundColor">#FFD9ECFF</Color>
|
||||
<Color x:Key="CheckBox.Pressed.BorderColor">#FF3C77DD</Color>
|
||||
<Color x:Key="CheckBox.Static.BorderColor">#00FFFFFF</Color>
|
||||
<Color x:Key="CheckBox.MouseOver.BackgroundColor">#404040</Color>
|
||||
<Color x:Key="CheckBox.MouseOver.BorderColor">#80FFFFFF</Color>
|
||||
<Color x:Key="CheckBox.Pressed.BackgroundColor">#303030</Color>
|
||||
<Color x:Key="CheckBox.Pressed.BorderColor">#00FFFFFF</Color>
|
||||
|
||||
<SolidColorBrush x:Key="CheckBox.Static.ForegroundBrush" Color="{StaticResource CheckBox.Static.ForegroundColor}"/>
|
||||
<SolidColorBrush x:Key="CheckBox.Static.BackgroundBrush" Color="{StaticResource CheckBox.Static.BackgroundColor}"/>
|
||||
@@ -83,54 +66,50 @@
|
||||
<Color x:Key="ComboBoxBorderDarkColor">#FF569DE5</Color>
|
||||
<Color x:Key="ComboBoxDisabledBorderColor">#FFD9D9D9</Color>
|
||||
|
||||
<LinearGradientBrush x:Key="ComboBox.Static.Background" EndPoint="0,1" StartPoint="0,0">
|
||||
<GradientStop Color="{StaticResource ComboBoxBackgroundLightColor}" Offset="0.0"/>
|
||||
<GradientStop Color="{StaticResource ComboBoxBackgroundMediumColor}" Offset="1.0"/>
|
||||
</LinearGradientBrush>
|
||||
<SolidColorBrush x:Key="ComboBox.Static.Border" Color="{StaticResource ComboBoxBorderLightColor}"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Static.Editable.Background" Color="#FFFFFFFF"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Static.Editable.Border" Color="#FFABADB3"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Static.Editable.Button.Background" Color="Transparent"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Static.Editable.Button.Border" Color="Transparent"/>
|
||||
<SolidColorBrush x:Key="ComboBox.MouseOver.Glyph" Color="#FF000000"/>
|
||||
<LinearGradientBrush x:Key="ComboBox.MouseOver.Background" EndPoint="0,1" StartPoint="0,0">
|
||||
<GradientStop Color="#FFECF4FC" Offset="0.0"/>
|
||||
<GradientStop Color="#FFDCECFC" Offset="1.0"/>
|
||||
</LinearGradientBrush>
|
||||
<Color x:Key="ComboBox.Static.ForegroundColor">#DDDDDD</Color>
|
||||
<Color x:Key="ComboBox.Static.BackgroundColor">#32FFFFFF</Color>
|
||||
<Color x:Key="ComboBox.Static.BorderColor">#00FFFFFF</Color>
|
||||
<Color x:Key="ComboBox.MouseOver.BackgroundColor">#50FFFFFF</Color>
|
||||
<Color x:Key="ComboBox.Pressed.BackgroundColor">#707070</Color>
|
||||
|
||||
<Color x:Key="ComboBox.MouseOver.Editable.BackgroundColor">#50FFFFFF</Color>
|
||||
<Color x:Key="ComboBox.Pressed.Editable.BackgroundColor">#707070</Color>
|
||||
<Color x:Key="ComboBox.Pressed.Editable.Button.BackgroundColor">#FFC4E0FC</Color>
|
||||
|
||||
<SolidColorBrush x:Key="ComboBox.Static.Background" Color="{StaticResource ComboBox.Static.BackgroundColor}" />
|
||||
<SolidColorBrush x:Key="ComboBox.Static.Foreground" Color="{StaticResource ComboBox.Static.ForegroundColor}" />
|
||||
<SolidColorBrush x:Key="ComboBox.Static.Border" Color="{StaticResource ComboBox.Static.BorderColor}"/>
|
||||
<SolidColorBrush x:Key="ComboBox.MouseOver.Glyph" Color="#DDDDDD"/>
|
||||
<SolidColorBrush x:Key="ComboBox.MouseOver.Background" Color="{StaticResource ComboBox.MouseOver.BackgroundColor}" />
|
||||
<SolidColorBrush x:Key="ComboBox.MouseOver.Border" Color="{StaticResource ComboBoxBorderMediumColor}"/>
|
||||
<SolidColorBrush x:Key="ComboBox.MouseOver.Editable.Background" Color="#FFFFFFFF"/>
|
||||
<SolidColorBrush x:Key="ComboBox.MouseOver.Editable.Background" Color="{StaticResource ComboBox.MouseOver.Editable.BackgroundColor}" />
|
||||
<SolidColorBrush x:Key="ComboBox.MouseOver.Editable.Border" Color="#FF7EB4EA"/>
|
||||
<LinearGradientBrush x:Key="ComboBox.MouseOver.Editable.Button.Background" EndPoint="0,1" StartPoint="0,0">
|
||||
<GradientStop Color="#FFEBF4FC" Offset="0.0"/>
|
||||
<GradientStop Color="#FFDCECFC" Offset="1.0"/>
|
||||
</LinearGradientBrush>
|
||||
<SolidColorBrush x:Key="ComboBox.MouseOver.Editable.Button.Border" Color="#FF7EB4EA"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Pressed.Glyph" Color="#FF000000"/>
|
||||
<LinearGradientBrush x:Key="ComboBox.Pressed.Background" EndPoint="0,1" StartPoint="0,0">
|
||||
<GradientStop Color="#FFDAECFC" Offset="0.0"/>
|
||||
<GradientStop Color="#FFC4E0FC" Offset="1.0"/>
|
||||
</LinearGradientBrush>
|
||||
<SolidColorBrush x:Key="ComboBox.MouseOver.Editable.Button.Background" Color="Transparent" />
|
||||
<SolidColorBrush x:Key="ComboBox.MouseOver.Editable.Button.Border" Color="#7EB4EA"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Pressed.Glyph" Color="#DDDDDD"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Pressed.Background" Color="{StaticResource ComboBox.Pressed.BackgroundColor}" />
|
||||
<SolidColorBrush x:Key="ComboBox.Pressed.Border" Color="{StaticResource ComboBoxBorderDarkColor}"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Pressed.Editable.Background" Color="#FFFFFFFF"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Pressed.Editable.Background" Color="{StaticResource ComboBox.Pressed.Editable.BackgroundColor}" />
|
||||
<SolidColorBrush x:Key="ComboBox.Pressed.Editable.Border" Color="#FF569DE5"/>
|
||||
<LinearGradientBrush x:Key="ComboBox.Pressed.Editable.Button.Background" EndPoint="0,1" StartPoint="0,0">
|
||||
<GradientStop Color="#FFDAEBFC" Offset="0.0"/>
|
||||
<GradientStop Color="#FFC4E0FC" Offset="1.0"/>
|
||||
</LinearGradientBrush>
|
||||
<SolidColorBrush x:Key="ComboBox.Pressed.Editable.Button.Background" Color="{StaticResource ComboBox.Pressed.Editable.Button.BackgroundColor}" />
|
||||
<SolidColorBrush x:Key="ComboBox.Pressed.Editable.Button.Border" Color="#FF569DE5"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Disabled.Glyph" Color="#FFBFBFBF"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Disabled.Background" Color="{StaticResource ComboBoxBackgroundMediumColor}"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Disabled.Border" Color="{StaticResource ComboBoxDisabledBorderColor}"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Disabled.Editable.Background" Color="#FFFFFFFF"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Disabled.Editable.Border" Color="#FFBFBFBF"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Disabled.Editable.Button.Background" Color="Transparent"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Disabled.Editable.Button.Border" Color="Transparent"/>
|
||||
<SolidColorBrush x:Key="ComboBox.Disabled.Editable.Background" Color="{StaticResource ComboBox.Disabled.Editable.BackgroundColor}" />
|
||||
<SolidColorBrush x:Key="ComboBox.Disabled.Editable.Border" Color="{StaticResource ComboBox.Disabled.Editable.BorderColor}" />
|
||||
<SolidColorBrush x:Key="ComboBox.Disabled.Editable.Button.Background" Color="{StaticResource ComboBox.Disabled.Editable.BackgroundColor}" />
|
||||
<SolidColorBrush x:Key="ComboBox.Disabled.Editable.Button.Border" Color="{StaticResource ComboBox.Disabled.Editable.Button.BorderColor}" />
|
||||
<SolidColorBrush x:Key="ComboBox.Static.Glyph" Color="#FF606060"/>
|
||||
|
||||
<!--Toggle Switch-->
|
||||
<Color x:Key="ToggleSwitchOnColor">#FF4182F6</Color>
|
||||
|
||||
<!--ListBox-->
|
||||
<Color x:Key="ListBox.Background.Color">#404040</Color>
|
||||
<Color x:Key="ListBox.Foreground.Color">#DDDDDD</Color>
|
||||
<Color x:Key="ListBoxItem.Background.Color">#00FFFFFF</Color>
|
||||
<Color x:Key="ListBoxItem.Foreground.Color">#DDDDDD</Color>
|
||||
<Color x:Key="ListBoxItem.Selected.Active.Background.Color">#3D25A0DA</Color>
|
||||
<Color x:Key="ListBoxItem.Selected.Active.Border.Color">#FF26A0DA</Color>
|
||||
<Color x:Key="ListBoxItem.Selected.Inactive.Background.Color">#3DDADADA</Color>
|
||||
@@ -138,10 +117,37 @@
|
||||
<Color x:Key="ListBoxItem.MouseOver.Background.Color">#1F26A0DA</Color>
|
||||
<Color x:Key="ListBoxItem.MouseOver.Border.Color">#A826A0DA</Color>
|
||||
|
||||
<SolidColorBrush x:Key="ListBox.Background" Color="{u:BTSColor UI.ListBox.normal_background}" />
|
||||
<SolidColorBrush x:Key="ListBox.Foreground" Color="{StaticResource ListBox.Foreground.Color}"/>
|
||||
<SolidColorBrush x:Key="ListBoxItem.Background" Color="{StaticResource ListBoxItem.Background.Color}"/>
|
||||
<SolidColorBrush x:Key="ListBoxItem.Foreground" Color="{StaticResource ListBoxItem.Foreground.Color}"/>
|
||||
<SolidColorBrush x:Key="ListBoxItem.Selected.Active.Background" Color="{StaticResource ListBoxItem.Selected.Active.Background.Color}"/>
|
||||
<SolidColorBrush x:Key="ListBoxItem.Selected.Active.Border" Color="{StaticResource ListBoxItem.Selected.Active.Border.Color}"/>
|
||||
<SolidColorBrush x:Key="ListBoxItem.Selected.Inactive.Background" Color="{StaticResource ListBoxItem.Selected.Inactive.Background.Color}"/>
|
||||
<SolidColorBrush x:Key="ListBoxItem.Selected.Inactive.Border" Color="{StaticResource ListBoxItem.Selected.Inactive.Border.Color}"/>
|
||||
<SolidColorBrush x:Key="ListBoxItem.MouseOver.Background" Color="{StaticResource ListBoxItem.MouseOver.Background.Color}"/>
|
||||
<SolidColorBrush x:Key="ListBoxItem.MouseOver.Border" Color="{StaticResource ListBoxItem.MouseOver.Border.Color}"/>
|
||||
|
||||
<!--TabControl-->
|
||||
<Color x:Key="TabItem.Background.Color">#404040</Color>
|
||||
<Color x:Key="TabItem.Foreground.Color">#DDDDDD</Color>
|
||||
<Color x:Key="TabItem.Selected.Active.Foreground.Color">#FFFFFF</Color>
|
||||
<Color x:Key="TabItem.Selected.Active.Background.Color">#3D25A0DA</Color>
|
||||
<Color x:Key="TabItem.Selected.Active.Border.Color">#FF26A0DA</Color>
|
||||
<Color x:Key="TabItem.Selected.Inactive.Background.Color">#3DDADADA</Color>
|
||||
<Color x:Key="TabItem.Selected.Inactive.Border.Color">#FFDADADA</Color>
|
||||
<Color x:Key="TabItem.MouseOver.Background.Color">#1F26A0DA</Color>
|
||||
<Color x:Key="TabItem.MouseOver.Border.Color">#A826A0DA</Color>
|
||||
|
||||
<Color x:Key="TabLightColor">#FF919191</Color>
|
||||
<Color x:Key="TabMediumColor">#FF646464</Color>
|
||||
|
||||
<SolidColorBrush x:Key="TabItem.Background" Color="{StaticResource TabItem.Background.Color}"/>
|
||||
<SolidColorBrush x:Key="TabItem.Selected.Active.Background" Color="{StaticResource TabItem.Selected.Active.Background.Color}"/>
|
||||
<SolidColorBrush x:Key="TabItem.Selected.Active.Foreground" Color="{StaticResource TabItem.Selected.Active.Foreground.Color}"/>
|
||||
<SolidColorBrush x:Key="TabItem.Selected.Active.Border" Color="{StaticResource TabItem.Selected.Active.Border.Color}"/>
|
||||
<SolidColorBrush x:Key="TabItem.Selected.Inactive.Background" Color="{StaticResource TabItem.Selected.Inactive.Background.Color}"/>
|
||||
<SolidColorBrush x:Key="TabItem.Selected.Inactive.Border" Color="{StaticResource TabItem.Selected.Inactive.Border.Color}"/>
|
||||
<SolidColorBrush x:Key="TabItem.MouseOver.Background" Color="{StaticResource TabItem.MouseOver.Background.Color}"/>
|
||||
<SolidColorBrush x:Key="TabItem.MouseOver.Border" Color="{StaticResource TabItem.MouseOver.Border.Color}"/>
|
||||
</ResourceDictionary>
|
||||
@@ -5,8 +5,6 @@
|
||||
xmlns:c="clr-namespace:mbts.ui.controls"
|
||||
xmlns:cv="clr-namespace:mbts.ui.converters"
|
||||
>
|
||||
<SolidColorBrush x:Key="SeparatorFill" Color="{DynamicResource Control.AlphaMediumGrayColor}"/>
|
||||
|
||||
<ControlTemplate x:Key="ActionMenuTemplate" TargetType="c:ActionMenu">
|
||||
<Border
|
||||
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
|
||||
@@ -43,10 +41,10 @@
|
||||
</Button.Background>
|
||||
</Button>
|
||||
<Popup c:PopupViewController.ButtonSource="{Binding ElementName=button}" Placement="Bottom" PlacementTarget="{Binding ElementName=button}" StaysOpen="False">
|
||||
<Border Background="{DynamicResource Control.LightGrayBrush}" BorderThickness="1">
|
||||
<Border.BorderBrush>
|
||||
<SolidColorBrush Color="{DynamicResource Control.DarkMediumGrayColor}"/>
|
||||
</Border.BorderBrush>
|
||||
<Border
|
||||
Background="{u:BTSBrush UI.ContextMenu.normal_background}"
|
||||
BorderBrush="{u:BTSBrush UI.ContextMenu.normal_border}"
|
||||
BorderThickness="1">
|
||||
<ItemsPresenter/>
|
||||
</Border>
|
||||
</Popup>
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
<sys:Double x:Key="ScrollBarCollapsedWidth">5</sys:Double>
|
||||
<sys:Double x:Key="ScrollBarCollapsedHeight">5</sys:Double>
|
||||
<!--Thumb Colors-->
|
||||
<Color x:Key="ThumbStaticColor">#FFCDCDCD</Color>
|
||||
<Color x:Key="ThumbMouseOverColor">#FFA6A6A6</Color>
|
||||
<Color x:Key="ThumbPressedColor">#FF606060</Color>
|
||||
<!-- <Color x:Key="ThumbStaticColor">#FFCDCDCD</Color> -->
|
||||
<!-- <Color x:Key="ThumbMouseOverColor">#FFA6A6A6</Color> -->
|
||||
<!-- <Color x:Key="ThumbPressedColor">#FF606060</Color> -->
|
||||
<!--Line Button Colors-->
|
||||
<Color x:Key="LineButtonStaticBackgroundColor">#FFF0F0F0</Color>
|
||||
<Color x:Key="LineButtonMouseOverBackgroundColor">#FFDADADA</Color>
|
||||
@@ -35,6 +35,7 @@
|
||||
<Setter Property="Focusable" Value="False"/>
|
||||
<Setter Property="IsTabStop" Value="False"/>
|
||||
<Setter Property="OverridesDefaultStyle" Value="True"/>
|
||||
<Setter Property="Background" Value="{u:BTSColor ScrollBar.thumb_pressed}"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Thumb">
|
||||
@@ -223,18 +224,18 @@
|
||||
<VisualState Name="Normal"/>
|
||||
<VisualState Name="MouseOver">
|
||||
<Storyboard>
|
||||
<ColorAnimation Storyboard.TargetProperty="Background.Color" BeginTime="0" Duration="0" To="{StaticResource ThumbMouseOverColor}"/>
|
||||
<ColorAnimation Storyboard.TargetProperty="Background.Color" BeginTime="0" Duration="0" To="{u:BTSColor ScrollBar.thumb_mouse_over}"/>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState Name="Pressed">
|
||||
<Storyboard>
|
||||
<ColorAnimation Storyboard.TargetProperty="Background.Color" BeginTime="0" Duration="0" To="{StaticResource ThumbPressedColor}"/>
|
||||
<ColorAnimation Storyboard.TargetProperty="Background.Color" BeginTime="0" Duration="0" To="{u:BTSColor ScrollBar.thumb_pressed}"/>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
<Thumb.Background>
|
||||
<SolidColorBrush Color="{StaticResource ThumbStaticColor}"/>
|
||||
<SolidColorBrush Color="{u:BTSColor ScrollBar.thumb_static}"/>
|
||||
</Thumb.Background>
|
||||
</Thumb>
|
||||
</Track.Thumb>
|
||||
@@ -379,18 +380,18 @@
|
||||
<VisualState Name="Normal"/>
|
||||
<VisualState Name="MouseOver">
|
||||
<Storyboard>
|
||||
<ColorAnimation Storyboard.TargetProperty="Background.Color" BeginTime="0" Duration="0" To="{StaticResource ThumbMouseOverColor}"/>
|
||||
<ColorAnimation Storyboard.TargetProperty="Background.Color" BeginTime="0" Duration="0" To="{StaticResource u:BTSColor ScrollBar.thumb_mouse_over}"/>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState Name="Pressed">
|
||||
<Storyboard>
|
||||
<ColorAnimation Storyboard.TargetProperty="Background.Color" BeginTime="0" Duration="0" To="{StaticResource ThumbPressedColor}"/>
|
||||
<ColorAnimation Storyboard.TargetProperty="Background.Color" BeginTime="0" Duration="0" To="{u:BTSColor ScrollBar.thumb_presseds}"/>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
<Thumb.Background>
|
||||
<SolidColorBrush Color="{StaticResource ThumbStaticColor}"/>
|
||||
<SolidColorBrush Color="{u:BTSColor ScrollBar.thumb_static}"/>
|
||||
</Thumb.Background>
|
||||
</Thumb>
|
||||
</Track.Thumb>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
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:u="clr-namespace:mbts.ui"
|
||||
xmlns:ui="clr-namespace:mbts.ui"
|
||||
xmlns:core="clr-namespace:mbts.ui"
|
||||
xmlns:converter="clr-namespace:mbts.ui.converters"
|
||||
@@ -14,14 +15,76 @@
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Animating">
|
||||
<Storyboard>
|
||||
<ColorAnimation Storyboard.TargetName="_1" Storyboard.TargetProperty="Fill.Color" To="{x:Static core:BTSColors.accent_dark}" Duration="0:0:0.25" AutoReverse="True" RepeatBehavior="Forever" />
|
||||
<ColorAnimation Storyboard.TargetName="_2" Storyboard.TargetProperty="Fill.Color" To="{x:Static core:BTSColors.accent_dark}" Duration="0:0:0.25" AutoReverse="True" RepeatBehavior="Forever" BeginTime="0:0:0.125" />
|
||||
<ColorAnimation Storyboard.TargetName="_3" Storyboard.TargetProperty="Fill.Color" To="{x:Static core:BTSColors.accent_dark}" Duration="0:0:0.25" AutoReverse="True" RepeatBehavior="Forever" BeginTime="0:0:0.25" />
|
||||
<ColorAnimation Storyboard.TargetName="_4" Storyboard.TargetProperty="Fill.Color" To="{x:Static core:BTSColors.accent_dark}" Duration="0:0:0.25" AutoReverse="True" RepeatBehavior="Forever" BeginTime="0:0:0.375" />
|
||||
<ColorAnimation Storyboard.TargetName="_5" Storyboard.TargetProperty="Fill.Color" To="{x:Static core:BTSColors.accent_dark}" Duration="0:0:0.25" AutoReverse="True" RepeatBehavior="Forever" BeginTime="0:0:0.5" />
|
||||
<ColorAnimation Storyboard.TargetName="_6" Storyboard.TargetProperty="Fill.Color" To="{x:Static core:BTSColors.accent_dark}" Duration="0:0:0.25" AutoReverse="True" RepeatBehavior="Forever" BeginTime="0:0:0.625" />
|
||||
<ColorAnimation Storyboard.TargetName="_7" Storyboard.TargetProperty="Fill.Color" To="{x:Static core:BTSColors.accent_dark}" Duration="0:0:0.25" AutoReverse="True" RepeatBehavior="Forever" BeginTime="0:0:0.75" />
|
||||
<ColorAnimation Storyboard.TargetName="_8" Storyboard.TargetProperty="Fill.Color" To="{x:Static core:BTSColors.accent_dark}" Duration="0:0:0.25" AutoReverse="True" RepeatBehavior="Forever" BeginTime="0:0:0.875" />
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="_1"
|
||||
Storyboard.TargetProperty="Fill.Color"
|
||||
To="{u:BTSColor Brand.accent_dark, Type={x:Type Color}}"
|
||||
Duration="0:0:0.25"
|
||||
AutoReverse="True"
|
||||
RepeatBehavior="Forever" />
|
||||
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="_2"
|
||||
Storyboard.TargetProperty="Fill.Color"
|
||||
To="{u:BTSColor Brand.accent_dark, Type={x:Type Color}}"
|
||||
Duration="0:0:0.25"
|
||||
AutoReverse="True"
|
||||
RepeatBehavior="Forever"
|
||||
BeginTime="0:0:0.125" />
|
||||
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="_3"
|
||||
Storyboard.TargetProperty="Fill.Color"
|
||||
To="{u:BTSColor Brand.accent_dark, Type={x:Type Color}}"
|
||||
Duration="0:0:0.25"
|
||||
AutoReverse="True"
|
||||
RepeatBehavior="Forever"
|
||||
BeginTime="0:0:0.25" />
|
||||
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="_4"
|
||||
Storyboard.TargetProperty="Fill.Color"
|
||||
To="{u:BTSColor Brand.accent_dark, Type={x:Type Color}}"
|
||||
Duration="0:0:0.25"
|
||||
AutoReverse="True"
|
||||
RepeatBehavior="Forever"
|
||||
BeginTime="0:0:0.375" />
|
||||
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="_5"
|
||||
Storyboard.TargetProperty="Fill.Color"
|
||||
To="{u:BTSColor Brand.accent_dark, Type={x:Type Color}}"
|
||||
Duration="0:0:0.25"
|
||||
AutoReverse="True"
|
||||
RepeatBehavior="Forever"
|
||||
BeginTime="0:0:0.5" />
|
||||
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="_6"
|
||||
Storyboard.TargetProperty="Fill.Color"
|
||||
To="{u:BTSColor Brand.accent_dark, Type={x:Type Color}}"
|
||||
Duration="0:0:0.25"
|
||||
AutoReverse="True"
|
||||
RepeatBehavior="Forever"
|
||||
BeginTime="0:0:0.625" />
|
||||
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="_7"
|
||||
Storyboard.TargetProperty="Fill.Color"
|
||||
To="{u:BTSColor Brand.accent_dark, Type={x:Type Color}}"
|
||||
Duration="0:0:0.25"
|
||||
AutoReverse="True"
|
||||
RepeatBehavior="Forever"
|
||||
BeginTime="0:0:0.75" />
|
||||
|
||||
<ColorAnimation
|
||||
Storyboard.TargetName="_8"
|
||||
Storyboard.TargetProperty="Fill.Color"
|
||||
To="{u:BTSColor Brand.accent_dark, Type={x:Type Color}}"
|
||||
Duration="0:0:0.25"
|
||||
AutoReverse="True"
|
||||
RepeatBehavior="Forever"
|
||||
BeginTime="0:0:0.875" />
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Stopped" />
|
||||
@@ -76,7 +139,7 @@
|
||||
</ControlTemplate>
|
||||
|
||||
<Style TargetType="{x:Type ui:BusySpinner}">
|
||||
<Setter Property="Background" Value="{ui:BTSBrush accent1}" />
|
||||
<Setter Property="Background" Value="{u:BTSBrush Brand.accent1}" />
|
||||
<Setter Property="Width" Value="64" />
|
||||
<Setter Property="Height" Value="64" />
|
||||
<Setter Property="IsHitTestVisible" Value="False" />
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:u="clr-namespace:mbts.ui"
|
||||
xmlns:c="clr-namespace:mbts.ui.controls"
|
||||
xmlns:cv="clr-namespace:mbts.ui.converters"
|
||||
>
|
||||
@@ -10,7 +11,7 @@
|
||||
<SolidColorBrush x:Key="Ellipse.Disabled.Brush" Color="Gray"/>
|
||||
<Style TargetType="c:ExpanderToggleButton" BasedOn="{StaticResource {x:Type ToggleButton}}">
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="BorderBrush" Value="Black"/>
|
||||
<Setter Property="BorderBrush" Value="{u:BTSColor UI.ComboBox.normal_glyph}" />
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="Padding" Value="3,0,0,0"/>
|
||||
<Setter Property="Template">
|
||||
@@ -75,4 +76,11 @@
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style
|
||||
x:Key="ExpanderToggleButton.Dark"
|
||||
TargetType="c:ExpanderToggleButton"
|
||||
BasedOn="{StaticResource {x:Type c:ExpanderToggleButton}}">
|
||||
<Setter Property="Foreground" Value="{u:BTSColor UI.default_text}" />
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
@@ -25,7 +25,6 @@ namespace mbts.ui.controls.color_picker {
|
||||
if (order_factory != null)
|
||||
yield return factory_order_colors_palette(order_factory);
|
||||
yield return application_palette();
|
||||
yield return bts_palette();
|
||||
yield return blank_palette();
|
||||
}
|
||||
|
||||
@@ -78,37 +77,19 @@ namespace mbts.ui.controls.color_picker {
|
||||
new ColorPalette {
|
||||
group = "Application",
|
||||
colors = new List<NamedColor> {
|
||||
new NamedColor(BTSColors.accent_dark, "Shell Accent Dark"),
|
||||
new NamedColor(BTSColors.accent_light, "Shell Accent Light"),
|
||||
new NamedColor(BTSColors.success, "Success"),
|
||||
new NamedColor(BTSColors.warning, "Warning"),
|
||||
new NamedColor(BTSColors.danger, "Danger"),
|
||||
new NamedColor(BTSColors.logo, "Logo"),
|
||||
new NamedColor(BTSColors.brand_lightest, "Brand Lightest"),
|
||||
new NamedColor(BTSColors.brand_lighter, "Brand Lighter"),
|
||||
new NamedColor(BTSColors.brand_light, "Brand Light"),
|
||||
new NamedColor(BTSColors.brand_medium, "Brand Medium"),
|
||||
new NamedColor(BTSColors.brand_dark, "Brand Dark"),
|
||||
new NamedColor(BTSColors.brand_darker, "Brand Darker"),
|
||||
new NamedColor(BTSColors.brand_darkest, "Brand Darkest"),
|
||||
}
|
||||
};
|
||||
|
||||
public static ColorPalette bts_palette() =>
|
||||
new ColorPalette {
|
||||
group = "BTS",
|
||||
colors = new List<NamedColor> {
|
||||
new NamedColor(BTSColors.red_orange, "Red Orange"),
|
||||
new NamedColor(BTSColors.blue, "Blue"),
|
||||
new NamedColor(BTSColors.yellow, "Yellow"),
|
||||
new NamedColor(BTSColors.green, "Green"),
|
||||
new NamedColor(BTSColors.orange, "Orange"),
|
||||
new NamedColor(BTSColors.pale_blue, "Pale Blue"),
|
||||
new NamedColor(BTSColors.red, "Red"),
|
||||
new NamedColor(BTSColors.pale_green, "Pale Green"),
|
||||
new NamedColor(BTSColors.purple, "Purple"),
|
||||
new NamedColor(BTSColors.teal, "Teal"),
|
||||
new NamedColor(BTSColors.olive, "Olive")
|
||||
new NamedColor(BTSColors.Brand.accent_dark, "Shell Accent Dark"),
|
||||
new NamedColor(BTSColors.Brand.accent_light, "Shell Accent Light"),
|
||||
new NamedColor(BTSColors.UI.success, "Success"),
|
||||
new NamedColor(BTSColors.UI.warning, "Warning"),
|
||||
new NamedColor(BTSColors.UI.danger, "Danger"),
|
||||
new NamedColor(BTSColors.Brand.logo, "Logo"),
|
||||
new NamedColor(BTSColors.Brand.brand_lightest, "Brand Lightest"),
|
||||
new NamedColor(BTSColors.Brand.brand_lighter, "Brand Lighter"),
|
||||
new NamedColor(BTSColors.Brand.brand_light, "Brand Light"),
|
||||
new NamedColor(BTSColors.Brand.brand_medium, "Brand Medium"),
|
||||
new NamedColor(BTSColors.Brand.brand_dark, "Brand Dark"),
|
||||
new NamedColor(BTSColors.Brand.brand_darker, "Brand Darker"),
|
||||
new NamedColor(BTSColors.Brand.brand_darkest, "Brand Darkest"),
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -211,15 +211,27 @@
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,4,0,0" Text="RGBA (Red, Green, Blue, Alpha)"/>
|
||||
<TextBlock
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top"
|
||||
Margin="0,4,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="RGBA (Red, Green, Blue, Alpha)" />
|
||||
<c:ActionMenu
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Right"
|
||||
ItemsSource="{Binding action_menu_items}"
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<!--R-->
|
||||
<TextBlock Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" Margin="0,2,0,0" Text="R"/>
|
||||
<TextBlock
|
||||
Grid.Row="1"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,2,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="R" />
|
||||
|
||||
<Slider Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" Maximum="255" TickFrequency="1" Value="{Binding red, Mode=TwoWay}"/>
|
||||
<TextBox
|
||||
Grid.Column="2"
|
||||
@@ -229,8 +241,14 @@
|
||||
Height="20"
|
||||
Text="{Binding red, Mode=TwoWay}"
|
||||
/>
|
||||
|
||||
<!--G-->
|
||||
<TextBlock Grid.Column="0" Grid.Row="2" VerticalAlignment="Center" Margin="0,2,0,0" Text="G"/>
|
||||
<TextBlock
|
||||
Grid.Row="2"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,2,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="G" />
|
||||
<Slider Grid.Column="1" Grid.Row="2" HorizontalAlignment="Stretch" Maximum="255" TickFrequency="1" Value="{Binding green, Mode=TwoWay}"/>
|
||||
<TextBox
|
||||
Grid.Column="2"
|
||||
@@ -240,8 +258,14 @@
|
||||
Height="20"
|
||||
Text="{Binding green, Mode=TwoWay}"
|
||||
/>
|
||||
|
||||
<!--B-->
|
||||
<TextBlock Grid.Column="0" Grid.Row="3" VerticalAlignment="Center" Margin="0,2,0,0" Text="B"/>
|
||||
<TextBlock
|
||||
Grid.Row="3"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,2,0,0"
|
||||
Text="B"
|
||||
Foreground="{u:BTSColor UI.default_text}" />
|
||||
<Slider Grid.Column="1" Grid.Row="3" HorizontalAlignment="Stretch" Maximum="255" TickFrequency="1" Value="{Binding blue, Mode=TwoWay}"/>
|
||||
<TextBox
|
||||
Grid.Column="2"
|
||||
@@ -249,10 +273,15 @@
|
||||
u:TextBoxBehavior.InputFilter="{u:RegexInputFilter Regex={StaticResource ArgbRegex}}"
|
||||
VerticalAlignment="Center"
|
||||
Height="20"
|
||||
Text="{Binding blue, Mode=TwoWay}"
|
||||
/>
|
||||
Text="{Binding blue, Mode=TwoWay}" />
|
||||
|
||||
<!--A-->
|
||||
<TextBlock Grid.Column="0" Grid.Row="4" VerticalAlignment="Center" Margin="0,2,0,0" Text="A"/>
|
||||
<TextBlock
|
||||
Grid.Row="4"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,2,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="A" />
|
||||
<Slider Grid.Column="1" Grid.Row="4" HorizontalAlignment="Stretch" Maximum="255" TickFrequency="1" Value="{Binding alpha, Mode=TwoWay}"/>
|
||||
<TextBox
|
||||
Grid.Column="2"
|
||||
@@ -263,9 +292,17 @@
|
||||
Text="{Binding alpha, Mode=TwoWay}"
|
||||
/>
|
||||
<!--HSL-->
|
||||
<TextBlock Grid.Row="5" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,4,0,0" Text="HSL (Hue, Saturation, Lightness)"/>
|
||||
<TextBlock
|
||||
Grid.Row="5"
|
||||
Grid.ColumnSpan="3"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top"
|
||||
Margin="0,4,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="HSL (Hue, Saturation, Lightness)" />
|
||||
<!--H-->
|
||||
<TextBlock Grid.Column="0" Grid.Row="6" Margin="0,2,0,0" Text="H"/>
|
||||
<TextBlock
|
||||
Grid.Row="6" Margin="0,2,0,0" Foreground="{u:BTSColor UI.default_text}" Text="H" />
|
||||
<Slider Grid.Column="1" Grid.Row="6" HorizontalAlignment="Stretch" Minimum="1" Maximum="359" TickFrequency="1" Value="{Binding hue, Mode=TwoWay}" ToolTip="{Binding hue_tool_tip}"/>
|
||||
<TextBox
|
||||
Grid.Column="2"
|
||||
@@ -275,8 +312,14 @@
|
||||
Height="20"
|
||||
Text="{Binding hue, Mode=TwoWay, StringFormat='0.###'}"
|
||||
/>
|
||||
|
||||
<!--S-->
|
||||
<TextBlock Grid.Column="0" Grid.Row="7" VerticalAlignment="Center" Margin="0,2,0,0" Text="S"/>
|
||||
<TextBlock
|
||||
Grid.Row="7"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,2,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="S" />
|
||||
<Slider Grid.Column="1" Grid.Row="7" HorizontalAlignment="Stretch" Minimum="0.01" Maximum="0.99" TickFrequency="0.01" Value="{Binding saturation, Mode=TwoWay}" ToolTip="{Binding saturation_tool_tip}"/>
|
||||
<TextBox
|
||||
Grid.Column="2"
|
||||
@@ -286,8 +329,15 @@
|
||||
Height="20"
|
||||
Text="{Binding saturation, Mode=TwoWay, StringFormat='0.###'}"
|
||||
/>
|
||||
|
||||
<!--L-->
|
||||
<TextBlock Grid.Column="0" Grid.Row="8" VerticalAlignment="Center" Margin="0,2,0,0" Text="L"/>
|
||||
<TextBlock
|
||||
Grid.Column="0"
|
||||
Grid.Row="8"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,2,0,0"
|
||||
Foreground="{u:BTSColor UI.default_text}"
|
||||
Text="L" />
|
||||
<Slider Grid.Column="1" Grid.Row="8" HorizontalAlignment="Stretch" Minimum="0.01" Maximum="0.99" TickFrequency="0.01" Value="{Binding light, Mode=TwoWay}"/>
|
||||
<TextBox
|
||||
Grid.Column="2"
|
||||
|
||||
Loaded 100 of 189 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user