Esempio n. 1
0
        public void OnUpdateTrayIcon(object sender, SensorWorkerRunner.SensorResultsChangedEventArgs e)
        {
            Platform.ApplicationInvoke(() => {
                if (e.SensorResults.Count <= 0)
                {
                    TrayIconStrip.Update(new Action <ITrayIcon>[] { trayIcon => {
                                                                        trayIcon.ToolTipText = Globals.ApplicationName;
                                                                        trayIcon.Icon        = Globals.ApplicationIcon.ToBitmap();
                                                                        trayIcon.ContextMenu = ContextMenu;
                                                                        trayIcon.OnActivate  = OnToggleConfigWindow;
                                                                        if (!trayIcon.Visible)
                                                                        {
                                                                            trayIcon.Visible = true;
                                                                        }
                                                                    } });
                    return;
                }

                TrayIconStrip.Update(e.SensorResults.Select(result => new Action <ITrayIcon> (trayIcon => {
                    var icon = TextIconRenderer.Render(result.Value, Color.White);

                    if (Log.IsDebugEnabled)
                    {
                        using (var fs = File.Create("trayIcon.png")) {
                            icon.Save(fs, ImageFormat.Png);
                        }
                    }

                    trayIcon.ToolTipText = $"{result.ValueName} ({result.SensorName})";
                    trayIcon.Icon        = icon;
                    trayIcon.ContextMenu = ContextMenu;
                    trayIcon.OnActivate  = OnToggleConfigWindow;
                    if (!trayIcon.Visible)
                    {
                        trayIcon.Visible = true;
                    }
                })));
            });
        }