Index:
ChangeLog =================================================================== RCS
file: /home/tools/org.eclipse.cdt.debug.ui/ChangeLog,v retrieving revision
1.61 diff -u -r1.61 ChangeLog --- ChangeLog 19 Dec 2002 18:32:18
-0000 1.61 +++ ChangeLog 19 Dec 2002 19:16:56 -0000 @@ -1,4 +1,9
@@ 2002-12-19 Mikhail Khodjaiants + Added new utility class -
SWTUtil + * SWTUtil.java + *
AttachSourceLocationBlock.java + +2002-12-19 Mikhail
Khodjaiants Added new utility class -
PixelConverter * PixelCoverter.java *
AttachSourceLocationBlock.java Index:
SWTUtil.java =================================================================== RCS
file: SWTUtil.java diff -N SWTUtil.java --- /dev/null 1 Jan 1970
00:00:00 -0000 +++ SWTUtil.java 19 Dec 2002 19:17:11 -0000 @@ -0,0
+1,103 @@ +/* + * (c) Copyright IBM Corp. 2000, 2001. + * All Rights
Reserved. + */ +package org.eclipse.cdt.debug.internal.ui; + +import
org.eclipse.swt.SWT; +import org.eclipse.swt.dnd.DragSource; +import
org.eclipse.swt.dnd.DropTarget; +import
org.eclipse.swt.layout.GridData; +import
org.eclipse.swt.widgets.Button; +import
org.eclipse.swt.widgets.Caret; +import
org.eclipse.swt.widgets.Control; +import
org.eclipse.swt.widgets.Display; +import
org.eclipse.swt.widgets.Menu; +import
org.eclipse.swt.widgets.ScrollBar; +import
org.eclipse.swt.widgets.Shell; +import
org.eclipse.swt.widgets.Widget; + +import
org.eclipse.jface.dialogs.IDialogConstants; +import
org.eclipse.jface.util.Assert; + +/** + * Utility class to simplify
access to some SWT resources. + */ +public class
SWTUtil +{ + + /** + * Returns the standard display to be
used. The method first checks, if + * the thread calling this method
has an associated disaply. If so, this + * display is returned.
Otherwise the method returns the default display. + */ + public
static Display getStandardDisplay() + { + Display
display; + display = Display.getCurrent(); + if (
display == null ) + display =
Display.getDefault(); + return
display; + } + + /** + * Returns the shell for the
given widget. If the widget doesn't represent + * a SWT object that
manage a shell, <code>null</code> is returned. + *
+ * @return the shell for the given widget +
*/ + public static Shell getShell( Widget widget
) + { + if ( widget instanceof Control
) + return ((Control) widget).getShell(); + if
( widget instanceof Caret ) + return ((Caret)
widget).getParent().getShell(); + if ( widget instanceof
DragSource ) + return ((DragSource)
widget).getControl().getShell(); + if ( widget instanceof
DropTarget ) + return ((DropTarget)
widget).getControl().getShell(); + if ( widget instanceof Menu
) + return ((Menu)
widget).getParent().getShell(); + if ( widget instanceof ScrollBar
) + return ((ScrollBar)
widget).getParent().getShell(); + + return
null; + } + + /** + * Returns a width hint for a
button control. + */ + public static int getButtonWidthHint(
Button button ) + { + PixelConverter converter = new
PixelConverter( button ); + int widthHint =
converter.convertHorizontalDLUsToPixels( IDialogConstants.BUTTON_WIDTH
); + return Math.max( widthHint, button.computeSize( SWT.DEFAULT,
SWT.DEFAULT, true ).x ); + } + + /** + * Returns a
height hint for a button control. + */ + public static int
getButtonHeigthHint( Button button ) + { + PixelConverter
converter = new PixelConverter( button ); + return
converter.convertVerticalDLUsToPixels( IDialogConstants.BUTTON_HEIGHT
); + } + + /** + * Sets width and height hint for
the button control. + * <b>Note:</b> This is a NOP if the
button's layout data is not + * an instance of
<code>GridData</code>. + * + * @param the
button for which to set the dimension hint + */ + public static
void setButtonDimensionHint( Button button
) + { + Assert.isNotNull( button ); + Object
gd = button.getLayoutData(); + if ( gd instanceof GridData
) + { + ((GridData) gd).heightHint =
getButtonHeigthHint( button ); + ((GridData) gd).widthHint =
getButtonWidthHint( button ); + } + } +} Index:
AttachSourceLocationBlock.java =================================================================== RCS
file:
/home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/sourcelookup/AttachSourceLocationBlock.java,v retrieving
revision 1.3 diff -u -r1.3 AttachSourceLocationBlock.java ---
AttachSourceLocationBlock.java 19 Dec 2002 18:32:18 -0000 1.3 +++
AttachSourceLocationBlock.java 19 Dec 2002 19:17:26 -0000 @@ -6,8 +6,8
@@ package
org.eclipse.cdt.debug.ui.sourcelookup; import
org.eclipse.cdt.debug.internal.ui.PixelConverter; +import
org.eclipse.cdt.debug.internal.ui.SWTUtil; import
org.eclipse.core.runtime.IPath; -import
org.eclipse.jface.dialogs.IDialogConstants; import
org.eclipse.jface.resource.JFaceResources; import
org.eclipse.swt.SWT; import
org.eclipse.swt.events.SelectionAdapter; @@ -93,7 +93,7
@@ composite.setLayoutData( data
); fLocationText = new Text( composite, SWT.SINGLE |
SWT.BORDER ); fLocationText.setLayoutData( new GridData(
GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL ) ); - Button
button = createButton( composite, "&Browse...", converter
); + Button button = createButton( composite, "&Browse..."
); button.addSelectionListener( new SelectionAdapter()
{ /*
(non-Javadoc) @@ -148,15 +148,13
@@ fAssociationText.setText( ""
); } - protected Button createButton( Composite
parent, String label, PixelConverter pc ) + protected Button
createButton( Composite parent, String label
) { Button button = new Button( parent,
SWT.PUSH ); button.setText( label
); GridData data = "" GridData( GridData.END
); - data.heightHint = pc.convertVerticalDLUsToPixels(
IDialogConstants.BUTTON_HEIGHT ); - int widthHint =
pc.convertHorizontalDLUsToPixels( IDialogConstants.BUTTON_WIDTH
); - data.widthHint = Math.max( widthHint, button.computeSize(
SWT.DEFAULT, SWT.DEFAULT, true ).x ); button.setLayoutData(
data ); + SWTUtil.setButtonDimensionHint( button
); button.setFont( parent.getFont()
); return button;
|