From 73c66134ef0eb41eacf5a71b402fc0969e6b208d Mon Sep 17 00:00:00 2001 From: Mikhail Khodjaiants Date: Fri, 18 Oct 2002 22:02:51 +0000 Subject: [PATCH] Implementation of the memory view. --- debug/org.eclipse.cdt.debug.ui/ChangeLog | 17 ++ .../icons/full/clcl16/autorefresh_mem.gif | Bin 0 -> 182 bytes .../icons/full/clcl16/memory_clear.gif | Bin 0 -> 162 bytes .../icons/full/clcl16/memory_update.gif | Bin 0 -> 568 bytes .../icons/full/clcl16/refresh_mem.gif | Bin 0 -> 237 bytes .../icons/full/dlcl16/autorefresh_mem.gif | Bin 0 -> 104 bytes .../icons/full/dlcl16/memory_clear.gif | Bin 0 -> 91 bytes .../icons/full/dlcl16/memory_update.gif | Bin 0 -> 363 bytes .../icons/full/dlcl16/refresh_mem.gif | Bin 0 -> 129 bytes .../icons/full/elcl16/autorefresh_mem.gif | Bin 0 -> 144 bytes .../icons/full/elcl16/memory_clear.gif | Bin 0 -> 122 bytes .../icons/full/elcl16/memory_update.gif | Bin 0 -> 568 bytes .../icons/full/elcl16/refresh_mem.gif | Bin 0 -> 170 bytes .../cdt/debug/internal/ui/CDebugImages.java | 4 + .../internal/ui/ICDebugHelpContextIds.java | 1 + .../ui/actions/RefreshMemoryAction.java | 41 +++++ .../ui/views/memory/MemoryControlArea.java | 17 +- .../ui/views/memory/MemoryPresentation.java | 158 ++++++++++++++---- .../internal/ui/views/memory/MemoryText.java | 31 +++- .../internal/ui/views/memory/MemoryView.java | 23 +++ .../ui/views/memory/MemoryViewer.java | 19 ++- .../cdt/debug/ui/ICDebugUIConstants.java | 11 ++ 22 files changed, 287 insertions(+), 35 deletions(-) create mode 100644 debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/autorefresh_mem.gif create mode 100644 debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/memory_clear.gif create mode 100644 debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/memory_update.gif create mode 100644 debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/refresh_mem.gif create mode 100644 debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/autorefresh_mem.gif create mode 100644 debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/memory_clear.gif create mode 100644 debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/memory_update.gif create mode 100644 debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/refresh_mem.gif create mode 100644 debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/autorefresh_mem.gif create mode 100644 debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/memory_clear.gif create mode 100644 debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/memory_update.gif create mode 100644 debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/refresh_mem.gif create mode 100644 debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RefreshMemoryAction.java diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog index 47a6e039e56..a6777fafd2f 100644 --- a/debug/org.eclipse.cdt.debug.ui/ChangeLog +++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog @@ -1,3 +1,20 @@ +2002-10-18 Mikhail Khodjaiants + Implementing the memory view support: + Images for the view's actions: + autorefresh_mem.gif (clcl, dlcl, elcl), + refresh_mem.gif (clcl, dlcl, elcl), + memory_save.gif (clcl, dlcl, elcl), + memory_clear.gif (clcl, dlcl, elcl). + * RefreshMemoryAction.java + * MemoryControlArea.java + * MemoryPresentation.java + * MemoryText.java + * MemoryView.java + * MemoryViewer.java + * CDebugImages.java + * ICDebugHelpContextIds.java + * ICDebugUIConstants.java + 2002-10-17 Mikhail Khodjaiants Implementing the memory view support: * MemoryControlArea.java diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/autorefresh_mem.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/autorefresh_mem.gif new file mode 100644 index 0000000000000000000000000000000000000000..a063c230aca909c805f6a97a93c524c89198cc6c GIT binary patch literal 182 zcmZ?wbhEHb6krfw*v!E2|G#~Gz5V?8@&EtNpFh8T|Ni;^@7vF>x4%E%zCPam|NsB{ zfkN}=0~ripp!k!8k%57iK?lSGnZdx4yy2uL^Ir3ap5|M3p71&;7@R&L;67QxL54l! zu*}gfQtm|zTcZ0WIjBgri1Vs5s`jxmIW;RhF|qP|cz{DfsHKg4$1sH2{nEMt%SQ literal 0 HcmV?d00001 diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/memory_clear.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/memory_clear.gif new file mode 100644 index 0000000000000000000000000000000000000000..255832653fde9e9748855347fe7bce013aa0a6c7 GIT binary patch literal 162 zcmZ?wbhEHb6krfw*v!Ci|Ni{?`uO?t>-X=UfB*je|NsB*2eRhRZ)j)$vKcUd;!hSv z1_n+B9gqyj3&>#;PFW3S?Ey~Z^d=Ib=Q)_ty((#Hu?(NPPIEQ wFt9a7JasYQt8+ZHp~C0XEcX|=2_;e6_wsD`%rk?zV@6`Fg@V`I3Kj-y0F-Mvy#N3J literal 0 HcmV?d00001 diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/memory_update.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/memory_update.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca4fe2b1cffbf525c3e18a0dc5df99262dbb07cd GIT binary patch literal 568 zcmZ?wbhEHb6krfwc*el+@BhCk+q>hJd8MuhC|Q%-xVE@$eP!p`y1or9({}Xu#JKOe zxpB&t&i%KyJ^lDFDJy>A>bZ|U+sPN{UAc1Q^5x4HFJ3%x;>59I$M){syM6oiO`A4t*sx*QvSmw_ELpT@QCnME zYiny$Q&U4jLv3wsb#--ld3jb=R%T{qMn*O3yXFJX~F4&V#0hvq8gf$CB*GqU778i zoH%W*&9xVbxVpJ9ySlh=+S^#JZ|7w`z{bkXVPvSMr?ZfoiHU`WQNYa9)Yw>mGQSen z?b~W5>U!>a>XYTC(Y0bA;|*8l(j literal 0 HcmV?d00001 diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/refresh_mem.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/clcl16/refresh_mem.gif new file mode 100644 index 0000000000000000000000000000000000000000..9eb88fa444abb52ef2c04d00fb1df664c959630d GIT binary patch literal 237 zcmZ?wbhEHb6krfwIKseSZ$IDOzTUomfBgLY_51hF2crA?|NpnIueYB+KmPxJpg{fo z`}6Mu1@GJc-)}#^-v0i4`}%nM|6ssC2q^w!VPs$sVbB371lh^Jnx&xHbs}S)a?m0j zqqRC)RXi5$F|2*FTX`Y(5k{p(i<-qu3miOui1BznNe>be=;vrwS{THj+@Qdi*|8_- zVgf^igP8gOhkyiOmQCdq2?8CQMH-AXEUh`rhRqF(OdW7V#-p6+p62A8hX#%((&f&p~kSoQ@lAs0`umnrq65; IV_>ib0D3tm>i_@% literal 0 HcmV?d00001 diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/memory_clear.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/memory_clear.gif new file mode 100644 index 0000000000000000000000000000000000000000..d873c49b8a062e80c486bbdbfc774e39efda345e GIT binary patch literal 91 zcmZ?wbhEHb6krfwn8?7efB*jZ^XLEn|DS<@LGdRGBLf2ygAR}llobH7b*A*M6nMM9 ur=k7m%r%FmD(4$qG3R=;t>IGGx|v!mI={Ak^l49jWfJhdgM*co!5RQ*^&sv5 literal 0 HcmV?d00001 diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/memory_update.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/memory_update.gif new file mode 100644 index 0000000000000000000000000000000000000000..42890d670544006af85d1a0675d133b93ba9a6bf GIT binary patch literal 363 zcmZ?wbhEHb6krfw_{zZW|NsB&?ChMJoQoGPzIyfQ&6_uW{`@H`D`Q|_`1|*7R#w*K z%a`}=-MeYirq!!gZ{NOs%a$!`)~vaC^XBWMAehzKVNDJcmG@biiD^78O-2Xh%{%%083uP?$Oq94r8 xxtyJiot2k`nS)t3m}%>_ZH!zTK}v3J9QzI)IOxK0?AQ_K<0p@vIpWA*4FCparELHJ literal 0 HcmV?d00001 diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/refresh_mem.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/dlcl16/refresh_mem.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8c1865c696814e85fac0219b047698dd0ee9918 GIT binary patch literal 129 zcmZ?wbhEHb6krfw_{6~Q|NsB{_wUc2KY#!J{XlkoeLVvhDE?$&1Tl0#1W2tDvm3{% zt^1r<*xIF>83H^0pH*gJJ(id(-o+Hi#`-5kES7bP?WAjd>vsDrd@99jCG+UiHBKKc Z?OvyZSD^-$7r9q^C)V;SC@?Zu0|3QBEa3nE literal 0 HcmV?d00001 diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/autorefresh_mem.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/autorefresh_mem.gif new file mode 100644 index 0000000000000000000000000000000000000000..919423d435727bf8525c777e1957a3606e413047 GIT binary patch literal 144 zcmZ?wbhEHb6krfwSj51vV8N3A|NrmbzkmMx`3(&X_4W1f@$o;`TCpqU&w2|E?-?aG4NgfMQsOz1$l*AvN>NfP-9h5WSHbs1QpXc+Sg;;DAkC=4 waKUj=FbBunhQtkfZ05p=4}w|!EUhi`1Wy{CNgTm}Yf0Og}O-v9sr literal 0 HcmV?d00001 diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/memory_clear.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/memory_clear.gif new file mode 100644 index 0000000000000000000000000000000000000000..6faf8d66fef6cedd9433f3730ae8b3aa3be2bdc9 GIT binary patch literal 122 zcmZ?wbhEHb6krfwSj50^|Nj2}|NrmbzkmMx`3(&X_4V~YE&~ID;!hSv1_m|;9UvR1 zQh;S~!Nz+|JdfpS%)^;nCAM3NeZ^m_zHBc3`19kZ aB?psxFMPf^sb4zrl!?vqscRG&8LR<>m@*gu literal 0 HcmV?d00001 diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/memory_update.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/memory_update.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca4fe2b1cffbf525c3e18a0dc5df99262dbb07cd GIT binary patch literal 568 zcmZ?wbhEHb6krfwc*el+@BhCk+q>hJd8MuhC|Q%-xVE@$eP!p`y1or9({}Xu#JKOe zxpB&t&i%KyJ^lDFDJy>A>bZ|U+sPN{UAc1Q^5x4HFJ3%x;>59I$M){syM6oiO`A4t*sx*QvSmw_ELpT@QCnME zYiny$Q&U4jLv3wsb#--ld3jb=R%T{qMn*O3yXFJX~F4&V#0hvq8gf$CB*GqU778i zoH%W*&9xVbxVpJ9ySlh=+S^#JZ|7w`z{bkXVPvSMr?ZfoiHU`WQNYa9)Yw>mGQSen z?b~W5>U!>a>XYTC(Y0bA;|*8l(j literal 0 HcmV?d00001 diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/refresh_mem.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/elcl16/refresh_mem.gif new file mode 100644 index 0000000000000000000000000000000000000000..d28167335d60fae06eea75aa64365028c17c869d GIT binary patch literal 170 zcmZ?wbhEHb6krfw*v!DNfB*dZ_xJz*|9?M_HGh6XLqmOieSCa8P=o;+Q2fcl$iTqC zpaYTwnZdvkF5sEDZ13feGrc$N7znT_)+kEOd0vpP#6hO@f#17^3U)>rbMJEoObUGZ zT}NCML`shPus*1<(|2LsYT(SXP9$)lxkloNMS+}Eiv659e)=afFTb8= 0 && pos < getAddressLength() ); + } + return false; + } + + private boolean isInAsciiArea( int offset ) + { + if ( displayASCII() && getRowLength() != 0 ) + { + int pos = offset % getRowLength(); + int asciiColumn = getAddressLength() + + INTERVAL_BETWEEN_ADDRESS_AND_DATA + + (getDataItemLength() + INTERVAL_BETWEEN_DATA_ITEMS ) * getNumberOfDataItems() + + INTERVAL_BETWEEN_DATA_AND_ASCII; + return ( pos >= asciiColumn && pos < getRowLength() - 1 ); + } + return false; + } + + private boolean isInDataArea( int offset ) + { + if ( getRowLength() != 0 ) + { + int pos = offset % getRowLength(); + int dataBegin = getAddressLength() + INTERVAL_BETWEEN_ADDRESS_AND_DATA; + int dataEnd = dataBegin + ((getDataItemLength() + INTERVAL_BETWEEN_DATA_ITEMS ) * getNumberOfDataItems()); + if ( pos >= dataBegin && pos < dataEnd ) + return isInDataItem( pos - dataBegin ); + } + return false; + } + + private boolean isInDataItem( int pos ) + { + for ( int i = 0; i < getNumberOfDataItems(); ++i ) + { + if ( pos < i * (getDataItemLength() + INTERVAL_BETWEEN_DATA_ITEMS) ) + return false; + if ( pos >= i * (getDataItemLength() + INTERVAL_BETWEEN_DATA_ITEMS) && + pos < (i * (getDataItemLength() + INTERVAL_BETWEEN_DATA_ITEMS)) + getDataItemLength() ) + return true; + } + return false; + } + private int getDataItemLength() { - int result = 0; - switch( getFormat() ) - { - case ICDebugUIInternalConstants.MEMORY_FORMAT_HEX: - result = 2 * getSize(); - break; - case ICDebugUIInternalConstants.MEMORY_FORMAT_BINARY: - result = 8 * getSize(); - break; - } - return result; + if ( getMemoryBlock() != null ) + return getMemoryBlock().getWordSize() * 2; + return 0; } private int getNumberOfDataItems() { - return getBytesPerRow() / getSize(); + if ( getMemoryBlock() != null ) + return getMemoryBlock().getNumberOfColumns(); + return 0; + } + + private boolean displayASCII() + { + if ( getMemoryBlock() != null ) + return getMemoryBlock().displayASCII(); + return false; + } + + private int getDataBytesPerRow() + { + if ( getMemoryBlock() != null ) + return getMemoryBlock().getNumberOfColumns() * getMemoryBlock().getWordSize(); + return 0; + } + + private boolean isValidValue( char ch ) + { + switch( getDataFormat() ) + { + case ICMemoryManager.MEMORY_FORMAT_HEX: + return isHexadecimal( ch ); + case ICMemoryManager.MEMORY_FORMAT_BINARY: + case ICMemoryManager.MEMORY_FORMAT_OCTAL: + case ICMemoryManager.MEMORY_FORMAT_SIGNED_DECIMAL: + case ICMemoryManager.MEMORY_FORMAT_UNSIGNED_DECIMAL: + case -1: + default: + return false; + } + } + + private boolean isHexadecimal( char ch ) + { + return ( Character.isDigit( ch ) || + ( ch >= 'a' && ch <= 'f' ) || + ( ch >= 'A' && ch <= 'F' ) ); + } + + private int getDataFormat() + { + if ( getMemoryBlock() != null ) + return getMemoryBlock().getFormat(); + return -1; } -*/ } diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryText.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryText.java index 8e7c533c032..090c6546499 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryText.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryText.java @@ -26,6 +26,7 @@ import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; /** * @@ -142,8 +143,19 @@ public class MemoryText if ( event.character == SWT.LF || event.character == SWT.CR || event.character == SWT.BS || - event.character == SWT.DEL || - !fPresentation.isAcceptable( event.character, fText.getCaretOffset() ) ) + event.character == SWT.DEL ) + { + event.doit = false; + return; + } + if ( Character.isISOControl( event.character ) ) + return; + if ( getSelectionCount() != 0 ) + { + event.doit = false; + return; + } + if ( !fPresentation.isAcceptable( event.character, fText.getCaretOffset() ) ) event.doit = false; } @@ -231,4 +243,19 @@ public class MemoryText getBackgroundColor() ) ); fText.setStyleRanges( (StyleRange[])list.toArray( new StyleRange[list.size()] ) ); } + + protected void setEditable( boolean editable ) + { + fText.setEditable( editable ); + } + + protected int getSelectionCount() + { + return fText.getSelectionCount(); + } + + protected Control getControl() + { + return fText; + } } diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryView.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryView.java index 240e192e280..9fba11528bd 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryView.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryView.java @@ -7,14 +7,17 @@ package org.eclipse.cdt.debug.internal.ui.views.memory; import org.eclipse.cdt.debug.core.ICMemoryManager; import org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds; +import org.eclipse.cdt.debug.internal.ui.actions.RefreshMemoryAction; import org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler; import org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandlerView; import org.eclipse.cdt.debug.internal.ui.views.IDebugExceptionHandler; import org.eclipse.cdt.debug.ui.CDebugUIPlugin; +import org.eclipse.cdt.debug.ui.ICDebugUIConstants; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.model.IDebugElement; import org.eclipse.debug.ui.IDebugModelPresentation; import org.eclipse.debug.ui.IDebugUIConstants; +import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.Separator; @@ -25,6 +28,7 @@ import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; import org.eclipse.ui.ISelectionListener; import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.IWorkbenchPart; @@ -64,6 +68,10 @@ public class MemoryView extends AbstractDebugEventHandlerView */ protected void createActions() { + IAction action = new RefreshMemoryAction( (MemoryViewer)getViewer() ); + action.setEnabled( false ); + setAction( "RefreshMemory", action ); //$NON-NLS-1$ + // set initial content here, as viewer has to be set setInitialContent(); } @@ -81,6 +89,10 @@ public class MemoryView extends AbstractDebugEventHandlerView */ protected void fillContextMenu( IMenuManager menu ) { + menu.add( new Separator( ICDebugUIConstants.EMPTY_MEMORY_GROUP ) ); + menu.add( new Separator( ICDebugUIConstants.MEMORY_GROUP ) ); + menu.add( getAction( "RefreshMemory" ) ); //$NON-NLS-1$ + menu.add( new Separator( IWorkbenchActionConstants.MB_ADDITIONS ) ); } @@ -89,6 +101,9 @@ public class MemoryView extends AbstractDebugEventHandlerView */ protected void configureToolBar( IToolBarManager tbm ) { + tbm.add( new Separator( this.getClass().getName() ) ); + tbm.add( new Separator( ICDebugUIConstants.MEMORY_GROUP ) ); + tbm.add( getAction( "RefreshMemory" ) ); //$NON-NLS-1$ } /* (non-Javadoc) @@ -192,4 +207,12 @@ public class MemoryView extends AbstractDebugEventHandlerView setViewerInput( null ); } } + + /* (non-Javadoc) + * @see org.eclipse.debug.ui.AbstractDebugView#createContextMenu(Control) + */ + protected void createContextMenu( Control menuControl ) + { + super.createContextMenu( ((MemoryControlArea)((MemoryViewer)getViewer()).getTabFolder().getSelection().getControl()).getMemoryText().getControl() ); + } } diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryViewer.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryViewer.java index 9aac4a6a48b..155e1163d21 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryViewer.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryViewer.java @@ -12,6 +12,8 @@ import org.eclipse.jface.viewers.ISelection; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; @@ -63,6 +65,16 @@ public class MemoryViewer extends ContentViewer fMemoryControlAreas[i] = new MemoryControlArea( fTabFolder, SWT.NONE, i ); tabItem.setControl( fMemoryControlAreas[i] ); } + fTabFolder.addSelectionListener( new SelectionListener() + { + public void widgetSelected( SelectionEvent e ) + { + } + + public void widgetDefaultSelected( SelectionEvent e ) + { + } + } ); fTabFolder.setSelection( 0 ); } return fControl; @@ -86,7 +98,7 @@ public class MemoryViewer extends ContentViewer /* (non-Javadoc) * @see org.eclipse.jface.viewers.Viewer#setSelection(ISelection, boolean) */ - public void setSelection(ISelection selection, boolean reveal) + public void setSelection( ISelection selection, boolean reveal ) { } @@ -103,4 +115,9 @@ public class MemoryViewer extends ContentViewer for ( int i = 0; i < fMemoryControlAreas.length; ++i ) fMemoryControlAreas[i].setInput( (ICMemoryManager)input ); } + + protected CTabFolder getTabFolder() + { + return fTabFolder; + } } diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/ICDebugUIConstants.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/ICDebugUIConstants.java index f9d859cad54..794f7b4d970 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/ICDebugUIConstants.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/ICDebugUIConstants.java @@ -48,4 +48,15 @@ public interface ICDebugUIConstants * Identifier for a register group in a menu (value "registerGroup"). */ public static final String REGISTER_GROUP = "registerGroup"; //$NON-NLS-1$ + + /** + * Identifier for an empty group preceeding a + * memory group in a menu (value "emptyMemoryGroup"). + */ + public static final String EMPTY_MEMORY_GROUP = "emptyMemoryGroup"; //$NON-NLS-1$ + + /** + * Identifier for a memory group in a menu (value "memoryGroup"). + */ + public static final String MEMORY_GROUP = "memoryGroup"; //$NON-NLS-1$ }