Mercurial > projects > dwt-samples
diff novocode/InternalShellExample.d @ 174:c58389a70da3
Added novocode internal shell example, thanks WasserDragoon
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sun, 26 Oct 2008 14:53:47 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/novocode/InternalShellExample.d Sun Oct 26 14:53:47 2008 +0100 @@ -0,0 +1,48 @@ +module InternalShellExample; + +import dwt.std; +import dwt.dwthelper.ByteArrayInputStream; +import dwtx.novocode.ScaledImage; +import dwtx.novocode.ishell.DesktopForm; +import dwtx.novocode.ishell.InternalShell; + +const char[] res_prefix = "novocode.InternalShellExample."; +void main() { + Display display = new Display(); + Shell shell = new Shell( display ); + shell.setLayout( new FillLayout() ); + shell.setImage( new Image( display, new ImageData( new ByteArrayInputStream( cast( byte[] ) import( res_prefix~"ishell.png" ) ) ) ) ); + shell.setText( "Internal Shell Example" ); + + DesktopForm desktop = new DesktopForm( shell, DWT.NONE ); + + ScaledImage si = new ScaledImage( desktop, DWT.NONE ); + si.setImage( new Image( display, new ImageData( new ByteArrayInputStream( cast( byte[] ) import( res_prefix~"bg.jpg" ) ) ) ) ); + si.setImagePlacement( ScaledImage.IMAGE_PLACEMENT_TILE ); + si.setLocation( 0, 0 ); + si.setSize( desktop.getSize() ); + + desktop.addListener( DWT.Resize, new class( si ) Listener { + ScaledImage si; + this( ScaledImage si ) { + this.si = si; + } + public void handleEvent(Event event) { + si.setSize(desktop.getSize()); + } + }); + + InternalShell ishell = new InternalShell( desktop, DWT.SHELL_TRIM ); + ishell.setText( "Internal Shell" ); + + shell.pack(); + shell.open(); + ishell.open(); + + while ( !shell.isDisposed ) { + if ( !display.readAndDispatch() ) + display.sleep(); + } + + display.dispose(); +} \ No newline at end of file