Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 52347 Details for
Bug 160904
FigureCanvas Transparency
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Snippet with workaround
FigureCanvasTransparency.java (text/plain), 4.38 KB, created by
E F
on 2006-10-19 16:45:23 EDT
(
hide
)
Description:
Snippet with workaround
Filename:
MIME Type:
Creator:
E F
Created:
2006-10-19 16:45:23 EDT
Size:
4.38 KB
patch
obsolete
>package standalone; > >import org.eclipse.draw2d.Figure; >import org.eclipse.draw2d.FigureCanvas; >import org.eclipse.draw2d.IFigure; >import org.eclipse.draw2d.RoundedRectangle; >import org.eclipse.draw2d.geometry.Rectangle; >import org.eclipse.swt.SWT; >import org.eclipse.swt.events.PaintEvent; >import org.eclipse.swt.events.PaintListener; >import org.eclipse.swt.graphics.Color; >import org.eclipse.swt.graphics.GC; >import org.eclipse.swt.layout.FillLayout; >import org.eclipse.swt.widgets.Display; >import org.eclipse.swt.widgets.Shell; > >public class FigureCanvasTransparency { > > private static int xStart = -1; > private static int yStart = -1; > private static int xEnd = -1; > private static int yEnd = -1; > private static boolean mouseDown = false; > private static FigureCanvas canvas; > private static FigureCanvasTransparency instance; > > public static void main(String[] args) { > instance = new FigureCanvasTransparency(); > final Display display = new Display(); > final Shell figurecanvasTransparencyTestShell = new Shell(); > figurecanvasTransparencyTestShell.setLayout(new FillLayout()); > figurecanvasTransparencyTestShell.setText("FigureCanvas Transparency Test"); > > canvas = new FigureCanvas(figurecanvasTransparencyTestShell, SWT.NONE); > IFigure root = new Figure(); > root.setOpaque(false); > root.setBounds(new Rectangle(0, 0, 575, 350)); > > RoundedRectangle rect1 = new RoundedRectangle(); > rect1.setBackgroundColor(Display.getCurrent().getSystemColor(SWT.COLOR_YELLOW)); > rect1.setFill(true); > rect1.setBounds(new Rectangle(100, 100, 200, 150)); > rect1.setOpaque(false); > root.add(rect1); > > RoundedRectangle rect2 = new RoundedRectangle(); > rect2.setBackgroundColor(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_BACKGROUND_GRADIENT)); > rect2.setFill(true); > rect2.setBounds(new Rectangle(250, 150, 200, 150)); > rect2.setOpaque(false); > root.add(rect2); > > canvas.setContents(root); > instance.createGesturePaintListener(); > instance.createGestureOnMouseMove(); > instance.createZoomGestureOnMouseClick(); > > figurecanvasTransparencyTestShell.setSize(600, 400); > figurecanvasTransparencyTestShell.open(); > figurecanvasTransparencyTestShell.layout(); > while (!figurecanvasTransparencyTestShell.isDisposed()) { > if (!display.readAndDispatch()) > display.sleep(); > } > } > > private void createZoomGestureOnMouseClick() { > canvas.addMouseListener(new org.eclipse.swt.events.MouseAdapter() { > public void mouseDown(org.eclipse.swt.events.MouseEvent event) { > doGestureOnMouseDown(event); > } > > public void mouseUp(org.eclipse.swt.events.MouseEvent event) { > doGestureOnMouseUp(event); > } > }); > } > > private void doGestureOnMouseDown(org.eclipse.swt.events.MouseEvent event) { > final org.eclipse.swt.events.MouseEvent e = event; > mouseDown = true; > xStart = e.x; > yStart = e.y; > } > > /** > * @param event > */ > private void doGestureOnMouseUp(org.eclipse.swt.events.MouseEvent event) { > final org.eclipse.swt.events.MouseEvent e = event; > mouseDown = false; > xEnd = e.x; > yEnd = e.y; > } > > private void createGestureOnMouseMove() { > canvas.addMouseMoveListener(new org.eclipse.swt.events.MouseMoveListener() { > public void mouseMove(org.eclipse.swt.events.MouseEvent e) { > if (!mouseDown) { > return; > } > xEnd = e.x; > yEnd = e.y; > canvas.redraw(); > } > }); > } > > /** > * > */ > private void createGesturePaintListener() { > canvas.addPaintListener(new PaintListener() { > public void paintControl(PaintEvent event) { > if (mouseDown) { > drawGesture(event.gc); > } > } > }); > } > > private void drawGesture(GC gc) { > gc.setAdvanced(true); > gc.setClipping(0, 0, 575, 350); > org.eclipse.swt.graphics.Rectangle mouseRect = new org.eclipse.swt.graphics.Rectangle( > Math.min(xEnd, xStart), Math.min(yEnd, yStart), > Math.abs(xEnd - xStart), Math.abs(yEnd - yStart)); > > // draw gesture rectangle > gc.setAlpha(192); > gc.setBackground(new Color(canvas.getDisplay(), 240, 240, 240)); > gc.setForeground(new Color(canvas.getDisplay(), 64, 64, 64)); > gc.fillRectangle(mouseRect); > gc.drawRectangle(mouseRect); > } > >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 160904
:
51963
|
51965
|
51966
| 52347 |
224200