mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Added new utility class - SWTUtil.
This commit is contained in:
parent
963d4de52b
commit
5ccf0b609f
3 changed files with 112 additions and 6 deletions
|
@ -1,3 +1,8 @@
|
|||
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
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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 @@ public class AttachSourceLocationBlock
|
|||
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 @@ public class AttachSourceLocationBlock
|
|||
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 = new 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;
|
||||
|
|
Loading…
Add table
Reference in a new issue