diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog index 7a152d74f97..c5a1f0463e0 100644 --- a/debug/org.eclipse.cdt.debug.ui/ChangeLog +++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog @@ -1,3 +1,8 @@ +2004-04-28 Mikhail Khodjaiants + Added the overview ruler to the Disassembly view. + * DisassemblyView.java + * DisassemblyViewer.java + 2004-04-27 Mikhail Khodjaiants Breakpoints presentation in the Disassembly view. * HTML2TextReader.java: new diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyView.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyView.java index 5ee12775830..f1ad2535ccc 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyView.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyView.java @@ -36,9 +36,11 @@ import org.eclipse.jface.text.IRegion; import org.eclipse.jface.text.Position; import org.eclipse.jface.text.source.IAnnotationAccess; import org.eclipse.jface.text.source.IAnnotationModel; +import org.eclipse.jface.text.source.IOverviewRuler; import org.eclipse.jface.text.source.ISharedTextColors; import org.eclipse.jface.text.source.ISourceViewer; import org.eclipse.jface.text.source.IVerticalRuler; +import org.eclipse.jface.text.source.OverviewRuler; import org.eclipse.jface.text.source.SourceViewer; import org.eclipse.jface.text.source.VerticalRuler; import org.eclipse.jface.util.Assert; @@ -94,6 +96,11 @@ public class DisassemblyView extends AbstractDebugEventHandlerView * The vertical ruler. */ private IVerticalRuler fVerticalRuler; + + /** + * The overview ruler. + */ + private IOverviewRuler fOverviewRuler; /** * The last stack frame for which the disassembly storage has @@ -139,8 +146,9 @@ public class DisassemblyView extends AbstractDebugEventHandlerView */ protected Viewer createViewer( Composite parent ) { fVerticalRuler = createVerticalRuler(); + fOverviewRuler = createOverviewRuler( getSharedColors() ); - SourceViewer viewer = createSourceViewer( parent, fVerticalRuler ); + SourceViewer viewer = createSourceViewer( parent, fVerticalRuler, getOverviewRuler() ); viewer.configure( new DisassemblyViewerConfiguration() ); getSourceViewerDecorationSupport( viewer ); @@ -223,6 +231,17 @@ public class DisassemblyView extends AbstractDebugEventHandlerView return ruler; } + private IOverviewRuler createOverviewRuler( ISharedTextColors sharedColors ) { + IOverviewRuler ruler = new OverviewRuler( getAnnotationAccess(), VERTICAL_RULER_WIDTH, sharedColors ); + Iterator e = fAnnotationPreferences.getAnnotationPreferences().iterator(); + while( e.hasNext() ) { + AnnotationPreference preference = (AnnotationPreference)e.next(); + if ( preference.contributesToHeader() ) + ruler.addHeaderAnnotationType( preference.getAnnotationType() ); + } + return ruler; + } + /** * Creates the source viewer to be used by this view. * @@ -231,8 +250,8 @@ public class DisassemblyView extends AbstractDebugEventHandlerView * @param styles style bits * @return the source viewer */ - private SourceViewer createSourceViewer( Composite parent, IVerticalRuler ruler ) { - DisassemblyViewer viewer = new DisassemblyViewer( parent, ruler ); + private SourceViewer createSourceViewer( Composite parent, IVerticalRuler vertRuler, IOverviewRuler ovRuler ) { + DisassemblyViewer viewer = new DisassemblyViewer( parent, vertRuler, ovRuler ); viewer.setRangeIndicator( new DefaultRangeIndicator() ); return viewer; } @@ -445,7 +464,7 @@ public class DisassemblyView extends AbstractDebugEventHandlerView */ protected SourceViewerDecorationSupport getSourceViewerDecorationSupport( ISourceViewer viewer ) { if ( fSourceViewerDecorationSupport == null ) { - fSourceViewerDecorationSupport = new SourceViewerDecorationSupport( viewer, null, getAnnotationAccess(), getSharedColors() ); + fSourceViewerDecorationSupport = new SourceViewerDecorationSupport( viewer, getOverviewRuler(), getAnnotationAccess(), getSharedColors() ); configureSourceViewerDecorationSupport( fSourceViewerDecorationSupport ); } return fSourceViewerDecorationSupport; @@ -570,4 +589,15 @@ public class DisassemblyView extends AbstractDebugEventHandlerView selectionChanged( part, selection ); } } + + /** + * Returns the overview ruler. + * + * @return the overview ruler + */ + private IOverviewRuler getOverviewRuler() { + if ( fOverviewRuler == null ) + fOverviewRuler = createOverviewRuler( getSharedColors() ); + return fOverviewRuler; + } } diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyViewer.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyViewer.java index 1ea899dee06..835aa7f1ee8 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyViewer.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyViewer.java @@ -12,6 +12,7 @@ package org.eclipse.cdt.debug.internal.ui.views.disassembly; import org.eclipse.cdt.debug.internal.ui.IInternalCDebugUIConstants; import org.eclipse.jface.resource.JFaceResources; +import org.eclipse.jface.text.source.IOverviewRuler; import org.eclipse.jface.text.source.IVerticalRuler; import org.eclipse.jface.text.source.SourceViewer; import org.eclipse.swt.SWT; @@ -35,8 +36,8 @@ public class DisassemblyViewer extends SourceViewer { * @param ruler * @param styles */ - public DisassemblyViewer( Composite parent, IVerticalRuler ruler ) { - super( parent, ruler, SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION ); + public DisassemblyViewer( Composite parent, IVerticalRuler vertRuler, IOverviewRuler ovRuler ) { + super( parent, vertRuler, ovRuler, true, SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION ); getTextWidget().setFont( JFaceResources.getFont( IInternalCDebugUIConstants.DISASSEMBLY_FONT ) ); setEditable( false ); GridData gd = new GridData( GridData.FILL_BOTH );