private void UpdateVolume(double volume, bool muted)
        {
            var info = BuildInfoText(volume, muted);

            this.muted = muted;

            Button.ToolTip       = info;
            Text.Text            = info;
            Volume.ValueChanged -= Volume_ValueChanged;
            Volume.Value         = Math.Round(volume * 100);
            Volume.ValueChanged += Volume_ValueChanged;

            if (muted)
            {
                ButtonIcon.Content = IconResourceLoader.Load(MutedIcon);
                MuteButton.ToolTip = text.Get(TextKey.SystemControl_AudioDeviceUnmuteTooltip);
                PopupIcon.Content  = IconResourceLoader.Load(MutedIcon);
            }
            else
            {
                ButtonIcon.Content = LoadIcon(volume);
                MuteButton.ToolTip = text.Get(TextKey.SystemControl_AudioDeviceMuteTooltip);
                PopupIcon.Content  = LoadIcon(volume);
            }
        }
        private void InitializeApplicationControl()
        {
            var originalBrush = Button.Background;

            application.WindowsChanged += Application_WindowsChanged;

            Button.Click      += Button_Click;
            Button.Content     = IconResourceLoader.Load(application.Icon);
            Button.MouseEnter += (o, args) => WindowPopup.IsOpen = WindowStackPanel.Children.Count > 0;
            Button.MouseLeave += (o, args) => Task.Delay(250).ContinueWith(_ => Dispatcher.Invoke(() => WindowPopup.IsOpen = WindowPopup.IsMouseOver));
            Button.ToolTip     = application.Tooltip;
            WindowPopup.CustomPopupPlacementCallback = new CustomPopupPlacementCallback(WindowPopup_PlacementCallback);
            WindowPopup.MouseLeave += (o, args) => Task.Delay(250).ContinueWith(_ => Dispatcher.Invoke(() => WindowPopup.IsOpen = IsMouseOver));

            WindowPopup.Opened += (o, args) =>
            {
                Background        = Brushes.LightGray;
                Button.Background = Brushes.LightGray;
            };

            WindowPopup.Closed += (o, args) =>
            {
                Background        = originalBrush;
                Button.Background = originalBrush;
            };
        }
        private void LoadIcon()
        {
            var uri      = new Uri("pack://application:,,,/SafeExamBrowser.UserInterface.Desktop;component/Images/ShutDown.xaml");
            var resource = new XamlIconResource(uri);

            Button.Content = IconResourceLoader.Load(resource);
        }
        private void InitializeApplicationControl()
        {
            var originalBrush = Button.Background;

            application.InstanceStarted += Application_InstanceStarted;

            Button.Click             += Button_Click;
            Button.Content            = IconResourceLoader.Load(application.Info.IconResource);
            Button.MouseEnter        += (o, args) => InstancePopup.IsOpen = InstanceStackPanel.Children.Count > 1;
            Button.MouseLeave        += (o, args) => Task.Delay(250).ContinueWith(_ => Dispatcher.Invoke(() => InstancePopup.IsOpen = InstancePopup.IsMouseOver));
            Button.ToolTip            = application.Info.Tooltip;
            InstancePopup.MouseLeave += (o, args) => Task.Delay(250).ContinueWith(_ => Dispatcher.Invoke(() => InstancePopup.IsOpen = IsMouseOver));

            InstancePopup.Opened += (o, args) =>
            {
                Background        = Brushes.LightGray;
                Button.Background = Brushes.LightGray;
            };

            InstancePopup.Closed += (o, args) =>
            {
                Background        = originalBrush;
                Button.Background = originalBrush;
            };
        }
        private void InitializeAudioControl()
        {
            var originalBrush = Grid.Background;

            audio.VolumeChanged += Audio_VolumeChanged;
            Button.Click        += (o, args) => Popup.IsOpen = !Popup.IsOpen;
            Button.MouseLeave   += (o, args) => Task.Delay(250).ContinueWith(_ => Dispatcher.Invoke(() => Popup.IsOpen = Popup.IsMouseOver));
            MuteButton.Click    += MuteButton_Click;
            MutedIcon            = new XamlIconResource {
                Uri = new Uri("pack://application:,,,/SafeExamBrowser.UserInterface.Mobile;component/Images/Audio_Muted.xaml")
            };
            NoDeviceIcon = new XamlIconResource {
                Uri = new Uri("pack://application:,,,/SafeExamBrowser.UserInterface.Mobile;component/Images/Audio_Light_NoDevice.xaml")
            };
            Popup.MouseLeave    += (o, args) => Task.Delay(250).ContinueWith(_ => Dispatcher.Invoke(() => Popup.IsOpen = IsMouseOver));
            Popup.Opened        += (o, args) => Grid.Background = Brushes.Gray;
            Popup.Closed        += (o, args) => Grid.Background = originalBrush;
            Volume.ValueChanged += Volume_ValueChanged;

            if (audio.HasOutputDevice)
            {
                AudioDeviceName.Text = audio.DeviceFullName;
                Button.IsEnabled     = true;
                UpdateVolume(audio.OutputVolume, audio.OutputMuted);
            }
            else
            {
                AudioDeviceName.Text = text.Get(TextKey.SystemControl_AudioDeviceNotFound);
                Button.IsEnabled     = false;
                Button.ToolTip       = text.Get(TextKey.SystemControl_AudioDeviceNotFound);
                ButtonIcon.Content   = IconResourceLoader.Load(NoDeviceIcon);
            }
        }
        private UIElement GetIcon(int signalStrength)
        {
            var icon     = signalStrength > 66 ? "100" : (signalStrength > 33 ? "66" : (signalStrength > 0 ? "33" : "0"));
            var uri      = new Uri($"pack://application:,,,/SafeExamBrowser.UserInterface.Desktop;component/Images/WiFi_Light_{icon}.xaml");
            var resource = new XamlIconResource(uri);

            return(IconResourceLoader.Load(resource));
        }
Esempio n. 7
0
        private UIElement LoadIcon(double volume)
        {
            var icon     = volume > 0.66 ? "100" : (volume > 0.33 ? "66" : "33");
            var uri      = new Uri($"pack://application:,,,/SafeExamBrowser.UserInterface.Desktop;component/Images/Audio_Light_{icon}.xaml");
            var resource = new XamlIconResource(uri);

            return(IconResourceLoader.Load(resource));
        }
        private void InitializeControl()
        {
            var uri      = new Uri("pack://application:,,,/SafeExamBrowser.UserInterface.Desktop;component/Images/ShutDown.xaml");
            var resource = new XamlIconResource(uri);

            Icon.Content  = IconResourceLoader.Load(resource);
            Button.Click += (o, args) => Clicked?.Invoke(new CancelEventArgs());
        }
Esempio n. 9
0
 private void InitializeControl()
 {
     Icon.Content         = IconResourceLoader.Load(window.Icon);
     IsVisibleChanged    += TaskViewWindowControl_IsVisibleChanged;
     Loaded              += (o, args) => Update();
     Title.Text           = window.Title;
     window.IconChanged  += Window_IconChanged;
     window.TitleChanged += Window_TitleChanged;
 }
Esempio n. 10
0
 private void InitializeApplicationInstanceButton()
 {
     Button.Click        += Button_Click;
     Button.ToolTip       = window.Title;
     Icon.Content         = IconResourceLoader.Load(window.Icon);
     window.IconChanged  += Instance_IconChanged;
     window.TitleChanged += Window_TitleChanged;
     Text.Text            = window.Title;
 }
        private void InitializeApplicationInstanceButton()
        {
            Icon.Content   = IconResourceLoader.Load(info.IconResource);
            Text.Text      = instance.Name;
            Button.ToolTip = instance.Name;

            instance.IconChanged += Instance_IconChanged;
            instance.NameChanged += Instance_NameChanged;
        }
        private void InitializeApplicationInstanceButton()
        {
            Icon.Content   = IconResourceLoader.Load(window?.Icon ?? application.Icon);
            Text.Text      = window?.Title ?? application.Name;
            Button.Click  += (o, args) => Clicked?.Invoke(this, EventArgs.Empty);
            Button.ToolTip = window?.Title ?? application.Tooltip;

            if (window != null)
            {
                window.IconChanged  += Window_IconChanged;
                window.TitleChanged += Window_TitleChanged;
            }
        }
Esempio n. 13
0
        private void InitializeApplicationInstanceButton()
        {
            Icon.Content   = IconResourceLoader.Load(info.IconResource);
            Text.Text      = instance?.Name ?? info.Name;
            Button.Click  += (o, args) => Clicked?.Invoke(this, EventArgs.Empty);
            Button.ToolTip = instance?.Name ?? info.Tooltip;

            if (instance != null)
            {
                instance.IconChanged += Instance_IconChanged;
                instance.NameChanged += Instance_NameChanged;
            }
        }
Esempio n. 14
0
 private void Instance_IconChanged(IconResource icon)
 {
     Dispatcher.InvokeAsync(() => Icon.Content = IconResourceLoader.Load(icon));
 }
Esempio n. 15
0
 private void Window_IconChanged(IconResource icon)
 {
     Dispatcher.InvokeAsync(() => Icon.Content = IconResourceLoader.Load(window.Icon));
 }
Esempio n. 16
0
 private void UpdateNotification()
 {
     IconButton.ToolTip = notification.Tooltip;
     IconButton.Content = IconResourceLoader.Load(notification.IconResource);
 }
Esempio n. 17
0
 private void InitializeNotificationIcon(INotificationInfo info)
 {
     IconButton.ToolTip = info.Tooltip;
     IconButton.Content = IconResourceLoader.Load(info.IconResource);
 }