diff --git a/dvmconsole/Controls/ChannelBox.xaml.cs b/dvmconsole/Controls/ChannelBox.xaml.cs index 3a025c2..813ef97 100644 --- a/dvmconsole/Controls/ChannelBox.xaml.cs +++ b/dvmconsole/Controls/ChannelBox.xaml.cs @@ -30,13 +30,12 @@ namespace dvmconsole.Controls /// public partial class ChannelBox : UserControl, INotifyPropertyChanged { - public readonly static Brush DESELECTED_COLOR = Brushes.Gray; - public readonly static Brush SELECTED_COLOR = (Brush)new BrushConverter().ConvertFrom("#FF0B004B"); - public readonly static Brush PLYBK_SELECTED_COLOR = (Brush)new BrushConverter().ConvertFrom("#FFC90000"); - - public readonly static Brush RX_COLOR = (Brush)new BrushConverter().ConvertFrom("#FF00BC48"); - public readonly static Brush RX_ENC_COLOR = (Brush)new BrushConverter().ConvertFrom("#FFDEAF0A"); - + public readonly static LinearGradientBrush GRAY_GRADIENT; + public readonly static LinearGradientBrush DARK_GRAY_GRADIENT; // Delected/Disconnected Color + public readonly static LinearGradientBrush BLUE_GRADIENT; // Selected Channel Color + public readonly static LinearGradientBrush RED_GRADIENT; // Playback Selected Color + public readonly static LinearGradientBrush GREEN_GRADIENT; // Clear Rx Color + public readonly static LinearGradientBrush ORANGE_GRADIENT; // Encrypted Rx Color private readonly SelectedChannelsManager selectedChannelsManager; private readonly AudioManager audioManager; @@ -49,10 +48,6 @@ namespace dvmconsole.Controls private double volume = 1.0; private bool isSelected; - internal LinearGradientBrush grayGradient; - internal LinearGradientBrush redGradient; - internal LinearGradientBrush orangeGradient; - public FlashingBackgroundManager flashingBackgroundManager; public byte[] netLDU1 = new byte[9 * 25]; @@ -258,6 +253,66 @@ namespace dvmconsole.Controls ** Methods */ + /// + /// Static initialize for the + /// + static ChannelBox() + { + GRAY_GRADIENT = new LinearGradientBrush + { + StartPoint = new Point(0.5, 0), + EndPoint = new Point(0.5, 1) + }; + + GRAY_GRADIENT.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#F0F0F0F0"), 0.485)); + GRAY_GRADIENT.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#F0C2C2C2"), 0.517)); + + DARK_GRAY_GRADIENT = new LinearGradientBrush + { + StartPoint = new Point(0.5, 0), + EndPoint = new Point(0.5, 1) + }; + + DARK_GRAY_GRADIENT.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#F0979797"), 0.485)); + DARK_GRAY_GRADIENT.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#F0686767"), 0.517)); + + BLUE_GRADIENT = new LinearGradientBrush + { + StartPoint = new Point(0.5, 0), + EndPoint = new Point(0.5, 1) + }; + + BLUE_GRADIENT.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#F0150189"), 0.485)); + BLUE_GRADIENT.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#F00B004B"), 0.517)); + + RED_GRADIENT = new LinearGradientBrush + { + StartPoint = new Point(0.5, 0), + EndPoint = new Point(0.5, 1) + }; + + RED_GRADIENT.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#F0FF0000"), 0.485)); + RED_GRADIENT.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#F0C60000"), 0.517)); + + GREEN_GRADIENT = new LinearGradientBrush + { + StartPoint = new Point(0.5, 0), + EndPoint = new Point(0.5, 1) + }; + + GREEN_GRADIENT.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#F000AF00"), 0.485)); + GREEN_GRADIENT.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#F0008E00"), 0.517)); + + ORANGE_GRADIENT = new LinearGradientBrush + { + StartPoint = new Point(0.5, 0), + EndPoint = new Point(0.5, 1) + }; + + ORANGE_GRADIENT.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#F0FFAF00"), 0.485)); + ORANGE_GRADIENT.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#F0C68700"), 0.517)); + } + /// /// Initializes a new instance of the class. /// @@ -286,36 +341,9 @@ namespace dvmconsole.Controls MouseLeftButtonDown += ChannelBox_MouseLeftButtonDown; - grayGradient = new LinearGradientBrush - { - StartPoint = new Point(0.5, 0), - EndPoint = new Point(0.5, 1) - }; - - grayGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFF0F0F0"), 0.485)); - grayGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFDCDCDC"), 0.517)); - - redGradient = new LinearGradientBrush - { - StartPoint = new Point(0.5, 0), - EndPoint = new Point(0.5, 1) - }; - - redGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFFF0000"), 0.485)); - redGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFD50000"), 0.517)); - - orangeGradient = new LinearGradientBrush - { - StartPoint = new Point(0.5, 0), - EndPoint = new Point(0.5, 1) - }; - - orangeGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFFFAF00"), 0.485)); - orangeGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFEEA400"), 0.517)); - - PttButton.Background = grayGradient; - PageSelectButton.Background = grayGradient; - ChannelMarkerBtn.Background = grayGradient; + PttButton.Background = GRAY_GRADIENT; + PageSelectButton.Background = GRAY_GRADIENT; + ChannelMarkerBtn.Background = GRAY_GRADIENT; if (SystemName == MainWindow.PLAYBACKSYS || ChannelName == MainWindow.PLAYBACKCHNAME || DstId == MainWindow.PLAYBACKTG) { @@ -350,7 +378,7 @@ namespace dvmconsole.Controls return; IsSelected = !IsSelected; - ControlBorder.Background = IsSelected ? SELECTED_COLOR : DESELECTED_COLOR; + ControlBorder.Background = IsSelected ? BLUE_GRADIENT : DARK_GRAY_GRADIENT; if (IsSelected) selectedChannelsManager.AddSelectedChannel(this); @@ -367,9 +395,9 @@ namespace dvmconsole.Controls return; if (PttState) - PttButton.Background = redGradient; + PttButton.Background = RED_GRADIENT; else - PttButton.Background = grayGradient; + PttButton.Background = GRAY_GRADIENT; } /// @@ -381,9 +409,9 @@ namespace dvmconsole.Controls return; if (PageState) - PageSelectButton.Background = orangeGradient; + PageSelectButton.Background = ORANGE_GRADIENT; else - PageSelectButton.Background = grayGradient; + PageSelectButton.Background = GRAY_GRADIENT; } private void UpdateHoldColor() @@ -392,9 +420,9 @@ namespace dvmconsole.Controls return; if (HoldState) - ChannelMarkerBtn.Background = orangeGradient; + ChannelMarkerBtn.Background = ORANGE_GRADIENT; else - ChannelMarkerBtn.Background = grayGradient; + ChannelMarkerBtn.Background = GRAY_GRADIENT; } /// @@ -404,11 +432,11 @@ namespace dvmconsole.Controls { if (SystemName == MainWindow.PLAYBACKSYS || ChannelName == MainWindow.PLAYBACKCHNAME || DstId == MainWindow.PLAYBACKTG) { - ControlBorder.Background = IsSelected ? PLYBK_SELECTED_COLOR : DESELECTED_COLOR; + ControlBorder.Background = IsSelected ? RED_GRADIENT : DARK_GRAY_GRADIENT; return; } - ControlBorder.Background = IsSelected ? SELECTED_COLOR : DESELECTED_COLOR; + ControlBorder.Background = IsSelected ? BLUE_GRADIENT : DARK_GRAY_GRADIENT; } /// diff --git a/dvmconsole/Controls/SystemStatusBox.xaml.cs b/dvmconsole/Controls/SystemStatusBox.xaml.cs index 7ce1df2..e767a66 100644 --- a/dvmconsole/Controls/SystemStatusBox.xaml.cs +++ b/dvmconsole/Controls/SystemStatusBox.xaml.cs @@ -83,6 +83,8 @@ namespace dvmconsole.Controls { InitializeComponent(); DataContext = this; + + Background = ChannelBox.DARK_GRAY_GRADIENT; } /// /// Initializes a new instance of the class. diff --git a/dvmconsole/MainWindow.xaml.cs b/dvmconsole/MainWindow.xaml.cs index 25abe03..2b2676a 100644 --- a/dvmconsole/MainWindow.xaml.cs +++ b/dvmconsole/MainWindow.xaml.cs @@ -36,7 +36,6 @@ using fnecore; using fnecore.P25; using fnecore.P25.LC.TSBK; using fnecore.P25.KMM; -using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window; namespace dvmconsole { @@ -269,6 +268,8 @@ namespace dvmconsole double offsetX = 20; double offsetY = 20; + Cursor = Cursors.Wait; + if (Codeplug != null) { foreach (var system in Codeplug.Systems) @@ -311,18 +312,17 @@ namespace dvmconsole Trace.WriteLine("FNE Peer connected"); Dispatcher.Invoke(() => { - systemStatusBox.Background = (Brush)new BrushConverter().ConvertFrom("#FF00BC48"); + systemStatusBox.Background = ChannelBox.GREEN_GRADIENT; systemStatusBox.ConnectionState = "Connected"; }); }; - peer.peer.PeerDisconnected += (response) => { Trace.WriteLine("FNE Peer disconnected"); Dispatcher.Invoke(() => { - systemStatusBox.Background = new SolidColorBrush(Colors.DarkRed); + systemStatusBox.Background = ChannelBox.RED_GRADIENT; systemStatusBox.ConnectionState = "Disconnected"; }); }; @@ -431,6 +431,8 @@ namespace dvmconsole playbackChannelBox.MouseLeftButtonUp += ChannelBox_MouseLeftButtonUp; playbackChannelBox.MouseMove += ChannelBox_MouseMove; channelsCanvas.Children.Add(playbackChannelBox); + + Cursor = Cursors.Arrow; } /// @@ -715,7 +717,7 @@ namespace dvmconsole Dispatcher.Invoke(() => { //channel.PageState = false; // TODO: Investigate - channel.PageSelectButton.Background = channel.grayGradient; + channel.PageSelectButton.Background = ChannelBox.GRAY_GRADIENT; }); } } @@ -822,7 +824,7 @@ namespace dvmconsole Dispatcher.Invoke(() => { if (forHold) - channel.PttButton.Background = channel.grayGradient; + channel.PttButton.Background = ChannelBox.GRAY_GRADIENT; else channel.PageState = false; }); @@ -971,6 +973,8 @@ namespace dvmconsole offsetY = startPoint.Y - Canvas.GetTop(draggedElement); isDragging = true; + Cursor = Cursors.ScrollAll; + element.CaptureMouse(); } @@ -984,6 +988,8 @@ namespace dvmconsole if (!isEditMode || !isDragging || draggedElement == null) return; + Cursor = Cursors.Arrow; + isDragging = false; draggedElement.ReleaseMouseCapture(); draggedElement = null; @@ -1374,7 +1380,7 @@ namespace dvmconsole { Dispatcher.Invoke(() => { - btnGlobalPtt.Background = channel.redGradient; + btnGlobalPtt.Background = ChannelBox.RED_GRADIENT; channel.PttState = true; }); @@ -1384,7 +1390,7 @@ namespace dvmconsole { Dispatcher.Invoke(() => { - btnGlobalPtt.Background = channel.grayGradient; + btnGlobalPtt.Background = ChannelBox.GRAY_GRADIENT; channel.PttState = false; }); @@ -1410,7 +1416,7 @@ namespace dvmconsole Codeplug.Channel cpgChannel = Codeplug.GetChannelByName(channel.ChannelName); channel.IsSelected = selectAll; - channel.Background = channel.IsSelected ? ChannelBox.SELECTED_COLOR : ChannelBox.DESELECTED_COLOR; + channel.Background = channel.IsSelected ? ChannelBox.BLUE_GRADIENT : ChannelBox.DARK_GRAY_GRADIENT; if (channel.IsSelected) selectedChannelsManager.AddSelectedChannel(channel); @@ -1877,9 +1883,9 @@ namespace dvmconsole channel.LastSrcId = "Last: " + alias; if (channel.algId != P25Defines.P25_ALGO_UNENCRYPT) - channel.Background = ChannelBox.RX_ENC_COLOR; + channel.Background = ChannelBox.ORANGE_GRADIENT; else - channel.Background = ChannelBox.RX_COLOR; + channel.Background = ChannelBox.GREEN_GRADIENT; } // Is the call over? @@ -1888,7 +1894,7 @@ namespace dvmconsole channel.IsReceiving = false; TimeSpan callDuration = pktTime - slot.RxStart; Trace.WriteLine($"({system.Name}) P25D: Traffic *CALL END * PEER {e.PeerId} SRC_ID {e.SrcId} TGID {e.DstId} DUR {callDuration} [STREAM ID {e.StreamId}]"); - channel.Background = ChannelBox.SELECTED_COLOR; + channel.Background = ChannelBox.BLUE_GRADIENT; callHistoryWindow.ChannelUnkeyed(cpgChannel.Name, (int)e.SrcId); return; }