@Override public void setRevisionInformation(RevisionInformation info) { fRevisionPainter.setRevisionInformation(info); fRevisionPainter.setBackground(getBackground()); }
@Override public void setRevisionInformation(RevisionInformation info) { fRevisionPainter.setRevisionInformation(info); fRevisionPainter.setBackground(getBackground()); }
@Override public void setBackground(Color background) { fBackground= background; if (fCanvas != null && !fCanvas.isDisposed()) fCanvas.setBackground(getBackground()); fRevisionPainter.setBackground(background); fDiffPainter.setBackground(background); }
@Override public void setBackground(Color background) { fBackground= background; if (fCanvas != null && !fCanvas.isDisposed()) fCanvas.setBackground(getBackground()); fRevisionPainter.setBackground(background); fDiffPainter.setBackground(background); }
/** * Double buffer drawing. * * @param dest the GC to draw into */ private void doubleBufferPaint(GC dest) { Point size= fCanvas.getSize(); if (size.x <= 0 || size.y <= 0) return; if (fBuffer != null) { Rectangle r= fBuffer.getBounds(); if (r.width != size.x || r.height != size.y) { fBuffer.dispose(); fBuffer= null; } } if (fBuffer == null) fBuffer= new Image(fCanvas.getDisplay(), size.x, size.y); GC gc= new GC(fBuffer); gc.setFont(fCanvas.getFont()); try { gc.setBackground(getBackground()); gc.fillRectangle(0, 0, size.x, size.y); doPaint(gc); } finally { gc.dispose(); } dest.drawImage(fBuffer, 0, 0); }
fCanvas.setBackground(getBackground());
@Override public Control createControl(CompositeRuler parentRuler, Composite parentControl) { fParentRuler= parentRuler; fCachedTextViewer= parentRuler.getTextViewer(); fCachedTextWidget= fCachedTextViewer.getTextWidget(); fCanvas= new Canvas(parentControl, SWT.NONE); fCanvas.setBackground(getBackground()); fCanvas.addPaintListener(event -> { if (fCachedTextViewer != null) doubleBufferPaint(event.gc); }); fCanvas.addDisposeListener(e -> { handleDispose(); fCachedTextViewer= null; fCachedTextWidget= null; }); fCanvas.addMouseListener(fMouseHandler); fCanvas.addMouseMoveListener(fMouseHandler); if (fCachedTextViewer != null) { fCachedTextViewer.addViewportListener(fInternalListener); fCachedTextViewer.addTextListener(fInternalListener); } fRevisionPainter.setParentRuler(parentRuler); fDiffPainter.setParentRuler(parentRuler); return fCanvas; }
/** * Double buffer drawing. * * @param dest the GC to draw into */ private void doubleBufferPaint(GC dest) { Point size= fCanvas.getSize(); if (size.x <= 0 || size.y <= 0) return; if (fBuffer != null) { Rectangle r= fBuffer.getBounds(); if (r.width != size.x || r.height != size.y) { fBuffer.dispose(); fBuffer= null; } } if (fBuffer == null) fBuffer= new Image(fCanvas.getDisplay(), size.x, size.y); GC gc= new GC(fBuffer); gc.setFont(fCanvas.getFont()); try { gc.setBackground(getBackground()); gc.fillRectangle(0, 0, size.x, size.y); doPaint(gc); } finally { gc.dispose(); } dest.drawImage(fBuffer, 0, 0); }