diff snippets/tree/Snippet220.d @ 85:fa286c85e7b8

Fix Snippet111 and add jive to Snippet220
author Frank Benoit <benoit@tionex.de>
date Sat, 17 May 2008 23:26:35 +0200
parents 398aa64a7243
children 4095b64d16f5
line wrap: on
line diff
--- a/snippets/tree/Snippet220.d	Sat May 17 13:06:43 2008 +0900
+++ b/snippets/tree/Snippet220.d	Sat May 17 23:26:35 2008 +0200
@@ -37,66 +37,69 @@
 import tango.util.Convert;
 
 import tango.io.Stdout;
+version(JIVE){
+    import jive.stacktrace;
+}
 
 void main() {
-	Display display = new Display();
-	Shell shell = new Shell(display);
-	shell.setBounds(10, 10, 350, 200);
-	Image xImage = new Image (display, 16, 16);
-	GC gc = new GC(xImage);
-	gc.setForeground(display.getSystemColor(DWT.COLOR_RED));
-	gc.drawLine(1, 1, 14, 14);
-	gc.drawLine(1, 14, 14, 1);
-	gc.drawOval(2, 2, 11, 11);
-	gc.dispose();
-	const int IMAGE_MARGIN = 2;
-	final Tree tree = new Tree(shell, DWT.CHECK);
-	tree.setBounds(10, 10, 300, 150);
-	TreeItem item = new TreeItem(tree, DWT.NONE);
-	item.setText("root item");
-	for (int i = 0; i < 4; i++) {
-		TreeItem newItem = new TreeItem(item, DWT.NONE);
-		newItem.setText("descendent " ~ to!(char[])(i));
-		if (i % 2 == 0) newItem.setData(xImage);
-		item.setExpanded(true);
-		item = newItem;
-	}
+    Display display = new Display();
+    Shell shell = new Shell(display);
+    shell.setBounds(10, 10, 350, 200);
+    Image xImage = new Image (display, 16, 16);
+    GC gc = new GC(xImage);
+    gc.setForeground(display.getSystemColor(DWT.COLOR_RED));
+    gc.drawLine(1, 1, 14, 14);
+    gc.drawLine(1, 14, 14, 1);
+    gc.drawOval(2, 2, 11, 11);
+    gc.dispose();
+    const int IMAGE_MARGIN = 2;
+    final Tree tree = new Tree(shell, DWT.CHECK);
+    tree.setBounds(10, 10, 300, 150);
+    TreeItem item = new TreeItem(tree, DWT.NONE);
+    item.setText("root item");
+    for (int i = 0; i < 4; i++) {
+        TreeItem newItem = new TreeItem(item, DWT.NONE);
+        newItem.setText("descendent " ~ to!(char[])(i));
+        if (i % 2 == 0) newItem.setData(xImage);
+        item.setExpanded(true);
+        item = newItem;
+    }
 
-	/*
-	 * NOTE: MeasureItem and PaintItem are called repeatedly.  Therefore it is
-	 * critical for performance that these methods be as efficient as possible.
-	 */
-	tree.addListener(DWT.MeasureItem, new class Listener {
-		public void handleEvent(Event event) {
+    /*
+     * NOTE: MeasureItem and PaintItem are called repeatedly.  Therefore it is
+     * critical for performance that these methods be as efficient as possible.
+     */
+    tree.addListener(DWT.MeasureItem, new class Listener {
+        public void handleEvent(Event event) {
             Stdout("measure").newline;
-			TreeItem item = cast(TreeItem)event.item;
-			Image trailingImage = cast(Image)item.getData();
-			if (trailingImage !is null) {
+            TreeItem item = cast(TreeItem)event.item;
+            Image trailingImage = cast(Image)item.getData();
+            if (trailingImage !is null) {
                 Stdout(" - measure image").newline;
-				event.width += trailingImage.getBounds().width + IMAGE_MARGIN;
-			}
-		}
-	});
-	tree.addListener(DWT.PaintItem, new class Listener {
-		public void handleEvent(Event event) {
+                event.width += trailingImage.getBounds().width + IMAGE_MARGIN;
+            }
+        }
+    });
+    tree.addListener(DWT.PaintItem, new class Listener {
+        public void handleEvent(Event event) {
             Stdout("paint").newline;
-			TreeItem item = cast(TreeItem)event.item;
-			Image trailingImage = cast(Image)item.getData();
-			if (trailingImage !is null) {
+            TreeItem item = cast(TreeItem)event.item;
+            Image trailingImage = cast(Image)item.getData();
+            if (trailingImage !is null) {
                 Stdout(" - draw image").newline;
-				int x = event.x + event.width + IMAGE_MARGIN;
-				int itemHeight = tree.getItemHeight();
-				int imageHeight = trailingImage.getBounds().height;
-				int y = event.y + (itemHeight - imageHeight) / 2;
-				event.gc.drawImage(trailingImage, x, y);
-			}
-		}
-	});
+                int x = event.x + event.width + IMAGE_MARGIN;
+                int itemHeight = tree.getItemHeight();
+                int imageHeight = trailingImage.getBounds().height;
+                int y = event.y + (itemHeight - imageHeight) / 2;
+                event.gc.drawImage(trailingImage, x, y);
+            }
+        }
+    });
 
-	shell.open();
-	while (!shell.isDisposed()) {
-		if (!display.readAndDispatch()) display.sleep();
-	}
-	xImage.dispose();
-	display.dispose();
+    shell.open();
+    while (!shell.isDisposed()) {
+        if (!display.readAndDispatch()) display.sleep();
+    }
+    xImage.dispose();
+    display.dispose();
 }