Пример #1
0
        void AddToLog(string text)
        {
            var  maxVertOffset = LogScroller.ExtentHeight - LogScroller.ViewportHeight;
            bool wasAtBottom   = LogScroller.VerticalOffset >= maxVertOffset;

            log.Text += text;
            if (wasAtBottom)
            {
                LogScroller.ScrollToBottom();
            }
        }
Пример #2
0
        void LogMessage(UIElement messageElement)
        {
            int maxMessages = 128;

            if (Log.Children.Count >= maxMessages)
            {
                Log.Children.RemoveRange(0, Log.Children.Count - maxMessages + 1);
            }
            Log.Children.Add(messageElement);
            LogScroller.ScrollToBottom();
        }
Пример #3
0
        private void logEntryAdded(LogEntry logEntry)
        {
            if (tabs.SelectedIndex != 2 && (int)logEntry.Severity >= cbLogLevel.SelectedIndex)
            {
                unreadLogs++;
                logHeader.Text = "Log (" + unreadLogs + ")";
            }
            LogView logView = new LogView(logEntry);

            logView.checkSeverity(cbLogLevel.SelectedIndex);
            cbLogLevel.SelectionChanged += logView.LogLevelChanged;
            LogList.Children.Add(logView);
            if (cbAutoscrollLog.IsChecked == true)
            {
                LogScroller.ScrollToEnd();
            }
        }
Пример #4
0
        private void UpdateMessageList(JsonValue value)
        {
            if (value == null || value.ValueType != JsonValueType.Object)
            {
                return;
            }
            var valueObj  = value.GetObject();
            var eventsArr = valueObj.GetNamedArray("Events");
            var newEvents = new List <TraceEntry>();

            foreach (var evtValue in eventsArr)
            {
                if (evtValue.ValueType != JsonValueType.Object)
                {
                    continue;
                }
                var evtObj = evtValue.GetObject();
                if (!evtObj.ContainsKey("TaskName") || evtObj.GetNamedString("TaskName") != "Log")
                {
                    continue;
                }
                var fileTime  = evtObj.GetNamedNumber("Timestamp");
                var timeStamp = DateTime.FromFileTime((long)fileTime);
                newEvents.Add(new TraceEntry()
                {
                    TimeStamp = timeStamp.ToString("u"),
                    Level     = (TraceLevel)evtObj.GetNamedNumber("Level"),
                    Message   = evtObj.GetNamedString("msg").Trim('"'),
                });
            }

            var task = Dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
            {
                foreach (var item in newEvents)
                {
                    Items.Add(item);
                }

                LogScroller.UpdateLayout();
                LogScroller.ChangeView(0, LogScroller.ScrollableHeight, null);
            });
        }
Пример #5
0
 private void TextBoxBase_OnTextChanged(object sender, TextChangedEventArgs e)
 {
     LogScroller.ScrollToBottom();
 }
Пример #6
0
 private void LogBox_TextChanged(object sender, TextChangedEventArgs e)
 {
     LogScroller.ChangeView(0.0f, LogScroller.ExtentHeight, 1.0f);
 }
Пример #7
0
        private void MainWindow_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            try
            {
                Dispatcher.Invoke(() =>
                {
                    switch (e.PropertyName)
                    {
                    case "GPUs":
                        {
                            int n = _ViewModel.GPUs;
                            /*SetGPUs*/
                            {
                                GPUs.Children.Clear();
                                for (int i = 0; i < n; i++)
                                {
                                    Label Lb = new Label
                                    {
                                        Height = 26,
                                        HorizontalContentAlignment = HorizontalAlignment.Center,
                                        VerticalContentAlignment   = VerticalAlignment.Center,
                                        FontFamily = new FontFamily("Consolas"),
                                        FontSize   = 14,
                                        Content    = $"GPU{i}"
                                    };
                                    GPUs.Children.Add(Lb);
                                }
                            }
                            SetTextBoxes(PowerLimits, "PowerLimits", n);
                            SetLabels(InfPowerLimits, "InfPowerLimits", PLsLengthA, PLsLengthB, n);
                            SetLengths(ArrPowerLimits, PLsLengthA, PLsLengthB);

                            SetTextBoxes(CoreClocks, "CoreClocks", n);
                            SetLabels(InfCoreClocks, "InfCoreClocks", CoresLengthA, CoresLengthB, n);
                            SetLengths(ArrCoreClocks, CoresLengthA, CoresLengthB);

                            SetLabels(InfOHMCoreClocks, "InfOHMCoreClocks", null, null, n);

                            SetTextBoxes(MemoryClocks, "MemoryClocks", n);
                            SetLabels(InfMemoryClocks, "InfMemoryClocks", MemorysLengthA, MemorysLengthB, n);
                            SetLengths(ArrMemoryClocks, MemorysLengthA, MemorysLengthB);

                            SetLabels(InfOHMMemoryClocks, "InfOHMMemoryClocks", null, null, n);

                            SetTextBoxes(FanSpeeds, "FanSpeeds", n);
                            SetLabels(InfoFanSpeeds, "InfFanSpeeds", FansLengthA, FansLengthB, n);
                            SetLengths(ArrFanSpeeds, FansLengthA, FansLengthB);

                            SetLabels(InfTemps, "InfTemperatures", TempsLengthA, TempsLengthB, n);
                            SetLengths(ArrTemperatures, TempsLengthA, TempsLengthB);

                            SetLabels(InfHashrates, "InfHashrates", HashesLengthA, HashesLengthB, n, "0.00");
                            SetLengths(ArrHashrates, HashesLengthA, HashesLengthB);

                            SetLabels(LogTemperatures, "InfTemperatures", n, "0°C");
                            SetLabels(LogHashrates, "InfHashrates", n, "0.00");
                        }
                        break;

                    case "Indication":
                        OMGworking = _ViewModel.Indication;
                        break;

                    case "Log":
                        if (_ViewModel.LogAutoscroll)
                        {
                            LogScroller.ScrollToEnd();
                        }
                        break;

                    case "InfPowerLimits":
                        {
                            if (ArrPowerLimits != _ViewModel.InfPowerLimits)
                            {
                                ArrPowerLimits = _ViewModel.InfPowerLimits;
                                SetLengths(ArrPowerLimits, PLsLengthA, PLsLengthB);
                            }
                        }
                        break;

                    case "InfCoreClocks":
                        {
                            if (ArrCoreClocks != _ViewModel.InfCoreClocks)
                            {
                                ArrCoreClocks = _ViewModel.InfCoreClocks;
                                SetLengths(ArrCoreClocks, CoresLengthA, CoresLengthB);
                            }
                        }
                        break;

                    case "InfOHMCoreClocks":
                        {
                            if (ArrOHMCoreClocks != _ViewModel.InfOHMCoreClocks)
                            {
                                ArrOHMCoreClocks = _ViewModel.InfOHMCoreClocks;
                            }
                        }
                        break;

                    case "InfOHMMemoryClocks":
                        {
                            if (ArrOHMMemoryClocks != _ViewModel.InfOHMMemoryClocks)
                            {
                                ArrOHMMemoryClocks = _ViewModel.InfOHMMemoryClocks;
                            }
                        }
                        break;

                    case "InfMemoryClocks":
                        {
                            if (ArrMemoryClocks != _ViewModel.InfMemoryClocks)
                            {
                                ArrMemoryClocks = _ViewModel.InfMemoryClocks;
                                SetLengths(ArrMemoryClocks, MemorysLengthA, MemorysLengthB);
                            }
                        }
                        break;

                    case "InfFanSpeeds":
                        {
                            if (ArrFanSpeeds != _ViewModel.InfFanSpeeds)
                            {
                                ArrFanSpeeds = _ViewModel.InfFanSpeeds;
                                SetLengths(ArrFanSpeeds, FansLengthA, FansLengthB);
                            }
                        }
                        break;

                    case "InfTemperatures":
                        {
                            if (ArrTemperatures != _ViewModel.InfTemperatures)
                            {
                                ArrTemperatures = _ViewModel.InfTemperatures;
                                SetLengths(ArrTemperatures, TempsLengthA, TempsLengthB);
                            }
                        }
                        break;

                    case "InfHashrates":
                        {
                            if (ArrHashrates != _ViewModel.InfHashrates)
                            {
                                ArrHashrates = _ViewModel.InfHashrates;
                                SetLengths(ArrHashrates, HashesLengthA, HashesLengthB);
                            }
                        }
                        break;
                    }
                });
            }
            catch { }
        }
Пример #8
0
 private void LogBox_SizeChanged(object sender, SizeChangedEventArgs e) => LogScroller.ScrollToBottom();
 /// <summary>
 /// Writes the input string to the combat log
 /// </summary>
 /// <param name="message">The string to be written</param>
 private void WriteLog(string message)
 {
     Log.Log(message);
     LogScroller.ScrollToEnd();
 }