Beispiel #1
0
        // Show variable type in row header and highlight AVGPR watches
        private void ReplaceDefaultRowHeaderBitmap(object sender, DataGridViewRowPostPaintEventArgs e)
        {
            if (e.RowIndex == _table.NewWatchRowIndex)
            {
                return;
            }

            var selectedWatch = VisualizerTable.GetRowWatchState(_table.Rows[e.RowIndex]);

            if (selectedWatch.IsAVGPR)
            {
                var highlightedRect = new Rectangle(e.RowBounds.Left + 3, e.RowBounds.Top + 3, _table.RowHeadersWidth - 6, e.RowBounds.Height - 6);
                e.Graphics.FillRectangle(_avgprColor, highlightedRect);
            }

            e.PaintHeader(
                DataGridViewPaintParts.Background
                | DataGridViewPaintParts.Border
                | DataGridViewPaintParts.Focus
                | DataGridViewPaintParts.SelectionBackground
                | DataGridViewPaintParts.ContentForeground
                );

            if (!selectedWatch.IsEmpty)
            {
                var typeTextPos = new PointF((float)e.RowBounds.Left + 7, (float)e.RowBounds.Top + 4);
                e.Graphics.DrawString(selectedWatch.Type.ShortName(),
                                      _table.RowHeadersDefaultCellStyle.Font,
                                      new SolidBrush(_table.RowHeadersDefaultCellStyle.ForeColor),
                                      typeTextPos);
            }
        }
Beispiel #2
0
 public void Setup(VisualizerTable table)
 {
     Child = table;
     using (var graphics = Graphics.FromHwnd(IntPtr.Zero))
     {
         var scaleFactor = graphics.DpiY / 96;
         table.ScaleControls(scaleFactor);
     }
 }
        public VisualizerControl(IToolWindowIntegration integration, ActivateWindow activateWindow)
        {
            _context = integration.GetVisualizerContext();
            _context.PropertyChanged    += ContextPropertyChanged;
            _context.GroupFetched       += GroupFetched;
            _context.GroupFetching      += SetupDataFetch;
            _context.CellSelectionEvent += CellSelected;
            DataContext = _context;
            InitializeComponent();

            _wavemap = new WavemapImage(HeaderHost.WavemapImage, _context);
            _wavemap.NavigationRequested += NavigateToWave;
            HeaderHost.WavemapSelector.Setup(_context, _wavemap);
            _activateWindow = activateWindow;

            _integration           = integration;
            _integration.AddWatch += AddWatch;
            PropertyChangedEventManager.AddHandler(_context.Options.VisualizerOptions, OptionsChanged, "");
            PropertyChangedEventManager.AddHandler(_context.Options.DebuggerOptions, OptionsChanged, "");
            PropertyChangedEventManager.AddHandler(_context.Options.VisualizerAppearance, OptionsChanged, "");
            PropertyChangedEventManager.AddHandler(_context.Options.VisualizerColumnStyling, VisualizerColumnStylingPropertyChanged, "");

            _fontAndColorProvider = new FontAndColorProvider();
            _fontAndColorProvider.FontAndColorInfoChanged += RefreshDataStyling;
            _table = new VisualizerTable(
                _context.Options,
                _fontAndColorProvider,
                getValidWatches: () => _context?.BreakData?.Watches);
            _table.WatchStateChanged += (newWatchState, invalidatedRows) =>
            {
                _context.Options.DebuggerOptions.Watches.Clear();
                _context.Options.DebuggerOptions.Watches.AddRange(newWatchState);
                if (invalidatedRows != null)
                {
                    foreach (var row in invalidatedRows)
                    {
                        SetRowContentsFromBreakState(row);
                    }
                }
            };
            _table.SetScalingMode(_context.Options.VisualizerAppearance.ScalingMode);
            TableHost.Setup(_table);
            RestoreSavedState();
        }
Beispiel #4
0
 public CustomTableGraphics(VisualizerTable table)
 {
     _table = table;
     _table.RowPostPaint += ReplaceDefaultRowHeaderBitmap;
 }