Mercurial > projects > dwt-samples
view user/drawingboard/DrawingBoard.d @ 179:89de7ff0752c default tip
Add JFace snippet Snippet054NativeControlsInViewers, thanks to WasserDragoon
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Wed, 29 Apr 2009 11:01:41 +0200 |
parents | b61e7baf0574 |
children |
line wrap: on
line source
/* * This example is meant to let the user have a area to draw simple shapes. * It uses the FillLayout layout manager. * For information on layout managers an excellent read is: * http://www.eclipse.org/articles/Article-Understanding-Layouts/Understanding-Layouts.htm * * Written by Jesse Phillips <Jesse.K.Phillips+D> gmail.com * All code is free with no restrictions */ module user.drawingboard.DrawingBoard; import dwt.DWT; import dwt.events.MouseListener; import dwt.events.MouseMoveListener; import dwt.events.PaintListener; import dwt.events.SelectionListener; import dwt.events.SelectionEvent; import dwt.layout.FillLayout; import dwt.widgets.Button; import dwt.widgets.Canvas; import dwt.widgets.Control; import dwt.widgets.Display; import dwt.widgets.Group; import dwt.widgets.Menu; import dwt.widgets.MenuItem; import dwt.widgets.Shell; import tango.io.Stdout; import user.drawingboard.MouseHandler; import user.drawingboard.PaintHandler; void main(){ try{ auto display = new Display(); auto shell = new Shell(display); auto layout = new FillLayout(); shell.setSize(500, 500); shell.setText("Draw window"); shell.setLayout(layout); auto menu = new Menu(shell, DWT.BAR); auto colorMenuHeader = new MenuItem(menu, DWT.CASCADE); colorMenuHeader.setText("&Color"); auto colorMenu = new Menu(shell, DWT.DROP_DOWN); colorMenuHeader.setMenu(colorMenu); MenuItem[3] colors; colors[0] = new MenuItem(colorMenu, DWT.RADIO); colors[0].setText("&Red"); colors[1] = new MenuItem(colorMenu, DWT.RADIO); colors[1].setText("&Green"); colors[2] = new MenuItem(colorMenu, DWT.RADIO); colors[2].setText("&Blue"); auto shapeMenuHeader = new MenuItem(menu, DWT.CASCADE); shapeMenuHeader.setText("&Shape"); auto shapeMenu = new Menu(shell, DWT.DROP_DOWN); shapeMenuHeader.setMenu(shapeMenu); MenuItem[3] shapes; shapes[0] = new MenuItem(shapeMenu, DWT.RADIO); shapes[0].setText("&Rectangle"); shapes[0].setSelection(true); shapes[1] = new MenuItem(shapeMenu, DWT.RADIO); shapes[1].setText("&Oval"); shapes[2] = new MenuItem(shapeMenu, DWT.RADIO); shapes[2].setText("S&quare"); MenuItem fill = new MenuItem(shapeMenu, DWT.CHECK); fill.setText("&Fill"); auto canvas = new Canvas(shell,DWT.NO_REDRAW_RESIZE); auto hPaint= new PaintHandler(canvas, display, colors, shapes, fill); auto hMouse = new MouseHandler(hPaint); canvas.addPaintListener(hPaint); canvas.addMouseListener(hMouse); canvas.addMouseMoveListener(hMouse); shell.setMenuBar(menu); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } } catch (Exception e) { Stdout.formatln (e.toString); } }