aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ButtonStyle.xaml
blob: f30adc85d629add8d41488841914c87168b5108e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:local="clr-namespace:Tango.Scripting.IDE.Themes">

    <Style x:Key="FocusVisual">
        <Setter Property="Control.Template">
            <Setter.Value>
                <ControlTemplate>
                    <Rectangle Margin="2" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <Style x:Key="TangoButtonStyle" TargetType="{x:Type Button}">
        <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
        <Setter Property="Background" Value="{DynamicResource Button.Static.Background}"/>
        <Setter Property="BorderBrush" Value="{DynamicResource Button.Static.Border}"/>
        <Setter Property="Foreground" Value="{DynamicResource ControlForegroundKey}"/>
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="HorizontalContentAlignment" Value="Center"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="Padding" Value="1"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
                        <ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsDefaulted" Value="true">
                            <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.MouseOver.Border}"/>
                        </Trigger>
                        <Trigger Property="IsMouseOver" Value="true">
                            <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.MouseOver.Border}"/>
                        </Trigger>
                        <Trigger Property="IsPressed" Value="true">
                            <Setter Property="Background" TargetName="border" Value="{DynamicResource Button.Pressed.Background}"/>
                            <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.Pressed.Border}"/>
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter Property="Background" TargetName="border" Value="{DynamicResource Button.Disabled.Background}"/>
                            <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.Disabled.Border}"/>
                            <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{DynamicResource Button.Disabled.Foreground}"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <Style x:Key="TangoToolBarButtonStyle" TargetType="{x:Type Button}">
        <Setter Property="Width" Value="26"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
                        <Grid>
                            <Rectangle x:Name="background"  Fill="Transparent" Opacity="1"/>
                            <ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                        </Grid>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsDefaulted" Value="true">
                            <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
                        </Trigger>
                        <Trigger Property="IsMouseOver" Value="true">
                            <Setter Property="Fill" TargetName="background" Value="{DynamicResource Toolbar.Button.MaouseMove.Background}"/>
                        </Trigger>
                        <Trigger Property="IsPressed" Value="true">
                            <Setter Property="Fill" TargetName="background" Value="{DynamicResource ControlBrushColorKey}"/>
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter Property="Background" TargetName="border" Value="{DynamicResource Button.Disabled.Background}"/>
                            <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.Disabled.Border}"/>
                            <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{DynamicResource Button.Disabled.Foreground}"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>
s="k">using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Windows.Threading; using Tango.DragAndDrop; using Tango.BL.Entities; using Tango.MachineStudio.Developer.Converters; using Tango.MachineStudio.Developer.ViewModels; using Tango.BL; using Tango.Settings; using Tango.Core; using Tango.SharedUI.Editors; using static Tango.MachineStudio.Developer.DeveloperModuleSettings; using static Tango.SharedUI.Controls.NavigationControl; namespace Tango.MachineStudio.Developer.Views { /// <summary> /// Interaction logic for JobView.xaml /// </summary> public partial class JobView : UserControl, INavigationView { private MainViewVM _vm; private DispatcherTimer _jobBrushTimer; public DraggingSurface DraggingSurface { get { return (DraggingSurface)GetValue(DraggingSurfaceProperty); } set { SetValue(DraggingSurfaceProperty, value); } } public static readonly DependencyProperty DraggingSurfaceProperty = DependencyProperty.Register("DraggingSurface", typeof(DraggingSurface), typeof(JobView), new PropertyMetadata(null)); public JobView() { InitializeComponent(); DraggingSurface = draggingSurface; this.Loaded += (x, y) => { _vm = DataContext as MainViewVM; }; _jobBrushTimer = new DispatcherTimer(); _jobBrushTimer.Interval = TimeSpan.FromSeconds(1); _jobBrushTimer.Tick += _jobBrushTimer_Tick; _jobBrushTimer.Start(); } private void _jobBrushTimer_Tick(object sender, EventArgs e) { if (_vm != null && _vm.ActiveJob != null) { //List<Segment> segments = new List<Segment>(); //foreach (var s in _vm.ActiveJob.OrderedSegments) //{ // segments.Add(s); // if (_vm.ActiveJob.EnableInterSegment && _vm.ActiveJob.OrderedSegments.IndexOf(s) != _vm.ActiveJob.OrderedSegments.Count - 1) // { // segments.Add(new Segment() // { // Length = _vm.ActiveJob.InterSegmentLength, // BrushStops = new SynchronizedObservableCollection<BrushStop>() // { // new BrushStop() // { // ColorSpace = new ColorSpace(), // Color = Colors.White, // } // }, // }); // } //} //jobBrushList.ItemsSource = segments; UpdateGradientBrushDisplay(); } } private void Offset_Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) { UpdateGradientBrushDisplay(); } private void UpdateGradientBrushDisplay() { if (_vm != null && _vm.SelectedSegment != null) { SegmentToGradientStopsConverter converter = new SegmentToGradientStopsConverter(); GradientStopCollection stops = converter.Convert(_vm.SelectedSegment, null, null, null) as GradientStopCollection; gradientBrush.GradientStops = stops; } else { if (gradientBrush != null) { gradientBrush.GradientStops = new GradientStopCollection(); } } } private void OnBrushStopBorderDrop(object sender, DropEventArgs e) { if (e.Draggable.DataContext is BrushStop) { _vm.OnDropBrushStop(e.Draggable.DataContext as BrushStop, e.Droppable.DataContext as BrushStop); } } private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { UpdateGradientBrushDisplay(); } private void OnJobStartClick(object sender, RoutedEventArgs e) { } private void HiveColorPickerControl_SelectedColorChanged(object sender, Color color) { UpdateGradientBrushDisplay(); } private void Popup_MouseDown(object sender, MouseButtonEventArgs e) { e.Handled = true; } private void OnSegmentDrop(object sender, DropEventArgs e) { _vm.OnDropSegment(e.Draggable.DataContext as Segment, e.Droppable.DataContext as Segment); } private async void TextBox_GotFocus(object sender, RoutedEventArgs e) { await Task.Delay(200); TextBox txtBox = sender as TextBox; txtBox.SelectAll(); } private void TextBox_PreviewMouseUp(object sender, MouseButtonEventArgs e) { e.Handled = true; } private void OnProcessParameterDropped(object sender, DropEventArgs e) { ParameterItem draggedItem = e.Draggable.DataContext as ParameterItem; ParameterItem droppedItem = e.Droppable.DataContext as ParameterItem; if (draggedItem != null && droppedItem != null && draggedItem.ParameterizedObject == droppedItem.ParameterizedObject) { var settings = SettingsManager.Default.GetOrCreate<DeveloperModuleSettings>(); var parameters = draggedItem.ParameterizedObject.Parameters; var draggedSettingItem = settings.ProcessParametersIndices.FirstOrDefault(x => x.Name == draggedItem.Name); var droppedSettingItem = settings.ProcessParametersIndices.FirstOrDefault(x => x.Name == droppedItem.Name); if (draggedSettingItem != null && droppedSettingItem != null) { if (draggedSettingItem.Index > droppedSettingItem.Index) { draggedSettingItem.Index = droppedSettingItem.Index - 1; } else { draggedSettingItem.Index = droppedSettingItem.Index + 1; } int index = 1; foreach (var settingItem in settings.ProcessParametersIndices.OrderBy(x => x.Index)) { settingItem.Index = index++; } } settings.Save(); } var editor = e.Draggable.FindAncestor<ParameterizedEditor>(); if (editor != null) { editor.ParameterizedObject = null; editor.ParameterizedObject = draggedItem.ParameterizedObject; } } private void PopupButton_Checked(object sender, RoutedEventArgs e) { _vm.OnHivePopupOpened(); } private void BrushPicker_ColorChanged(object sender, BrushPicker.ColorChangedEventArgs e) { } private void ColorCanvas_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs<Color?> e) { if (e.NewValue.HasValue) { _vm.OnSelectedBrushColorChanged((Color)e.NewValue); } } private void PopupButton_Unchecked(object sender, RoutedEventArgs e) { _vm.OnHivePopupClosed(); } public void OnNavigatedTo() { _vm.IsJobVisible = true; } public void OnNavigatedFrom() { _vm.IsJobVisible = false; } private void ListBoxItem_PreviewMouseDown(object sender, MouseButtonEventArgs e) { listBoxSegments.SelectedItem = (sender as ListBoxItem).DataContext; } private void listBoxSegments_PreviewMouseDown(object sender, MouseButtonEventArgs e) { } private void listBoxSegments_MouseEnter(object sender, MouseEventArgs e) { Keyboard.ClearFocus(); listBoxSegments.Focus(); } private void OnBrushStopFieldValueChanged(object sender, RoutedPropertyChangedEventArgs<double?> e) { try { BrushStop stop = null; var dataContext = (sender as FrameworkElement).DataContext; if (dataContext != null) { if (dataContext is BrushStop) { stop = dataContext as BrushStop; } else { stop = (dataContext as LiquidVolume).BrushStop; } _vm.OnBrushStopFieldValueChanged(stop); } } catch { } } private void OnBrushStopMouseDown(object sender, MouseButtonEventArgs e) { listStops.SelectedItem = (sender as ListBoxItem).DataContext; } private void OnBrushStopColorSpace_SelectionChanged(object sender, SelectionChangedEventArgs e) { _vm.OnBrushStopColorSpaceChanged((sender as ComboBox).DataContext as BrushStop); } } }