protected override GrowlPopup CreatePopup()
        {
            var popup = new TranslucentDarkPopup();
            var settings = new TranslucentDarkSettings(SettingsCollection);
            popup.NotificationWidth = settings.FixedWidth;
            popup.IconSize = settings.IconSize;
            popup.TextColor = WfColorToWpfColor(settings.TextColor);
            popup.ContainerColor = WfColorToWpfColor(settings.ContainerColor);
            popup.ShowIcon = settings.ShowIcon;
            popup.ShowTitle = settings.ShowTitle;
            popup.ShowDescription = settings.ShowDescription;

            popup.TitleFontFamily = GetFontFamily(settings.TitleFontFamily);
            popup.TitleFontSize = settings.TitleFontSize;
            popup.DescriptionFontFamily = GetFontFamily(settings.DescriptionFontFamily);
            popup.DescriptionFontSize = settings.DescriptionFontSize;

            popup.UseFadeAnimation = settings.UseFadeAnimation;
            popup.DontCloseOnMouseOver = settings.DontCloseOnMouseOver;

            PopupDocker.SetDockHorizontal(popup, settings.HorizontalPlacement);
            PopupDocker.SetDockVertical(popup, settings.VerticalPlacement);
            PopupDocker.SetDockedScreen(popup, settings.Screen);

            popup.Initialize();
            return popup;
        }
        private void PendingTimerCallback(object state)
        {
            var settings = new TranslucentDarkSettings(SettingsCollection);

            if (settings.PauseOnFullscreen && FullscreenDetector.IsFullscreen())
            {
                return;
            }
            IList <GrowlNotification> pendingNotifications;

            lock (PendingNotifications)
            {
                _pendingTimer.Dispose();
                _pendingTimer = null;

                pendingNotifications = new List <GrowlNotification>(PendingNotifications);
                PendingNotifications.Clear();
            }

            Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
            {
                foreach (GrowlNotification notification in pendingNotifications)
                {
                    OpenNotification(notification);
                }
            }));
        }
        protected override GrowlPopup CreatePopup()
        {
            var popup    = new TranslucentDarkPopup();
            var settings = new TranslucentDarkSettings(SettingsCollection);

            popup.NotificationWidth = settings.FixedWidth;
            popup.IconSize          = settings.IconSize;
            popup.TextColor         = WfColorToWpfColor(settings.TextColor);
            popup.ContainerColor    = WfColorToWpfColor(settings.ContainerColor);
            popup.ShowIcon          = settings.ShowIcon;
            popup.ShowTitle         = settings.ShowTitle;
            popup.ShowDescription   = settings.ShowDescription;

            popup.TitleFontFamily       = GetFontFamily(settings.TitleFontFamily);
            popup.TitleFontSize         = settings.TitleFontSize;
            popup.DescriptionFontFamily = GetFontFamily(settings.DescriptionFontFamily);
            popup.DescriptionFontSize   = settings.DescriptionFontSize;

            popup.UseFadeAnimation     = settings.UseFadeAnimation;
            popup.DontCloseOnMouseOver = settings.DontCloseOnMouseOver;

            PopupDocker.SetDockHorizontal(popup, settings.HorizontalPlacement);
            PopupDocker.SetDockVertical(popup, settings.VerticalPlacement);
            PopupDocker.SetDockedScreen(popup, settings.Screen);

            popup.Initialize();
            return(popup);
        }
        protected override void OpenNotification(GrowlNotification notification)
        {
            var settings = new TranslucentDarkSettings(SettingsCollection);

            if (settings.PauseOnFullscreen && FullscreenDetector.IsFullscreen())
            {
                QueueNotification(notification);
            }
            else
            {
                base.OpenNotification(notification);
            }
        }
 protected override void OpenNotification(GrowlNotification notification)
 {
     var settings = new TranslucentDarkSettings(SettingsCollection);
     if (settings.PauseOnFullscreen && FullscreenDetector.IsFullscreen())
     {
         QueueNotification(notification);
     }
     else
     {
         base.OpenNotification(notification);
     }
 }
        private void PendingTimerCallback(object state)
        {
            var settings = new TranslucentDarkSettings(SettingsCollection);
            if (settings.PauseOnFullscreen && FullscreenDetector.IsFullscreen())
                return;
            IList<GrowlNotification> pendingNotifications;
            lock (PendingNotifications)
            {
                _pendingTimer.Dispose();
                _pendingTimer = null;

                pendingNotifications = new List<GrowlNotification>(PendingNotifications);
                PendingNotifications.Clear();
            }

            Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
                                                                                             {
                                                                                                 foreach (GrowlNotification notification in pendingNotifications)
                                                                                                     OpenNotification(notification);
                                                                                             }));
        }