changeset 18:49188ccea1d1

changed tabs to spaces in clipboard.
author Jesse Phillips <Jesse.K.Phillips+D@gmail.com>
date Thu, 28 Feb 2008 13:59:12 -0800
parents 7b7a54b047e1
children 0f63eae37f35
files dwtexamples/clipboard/ClipboardExample.d
diffstat 1 files changed, 418 insertions(+), 418 deletions(-) [+]
line wrap: on
line diff
--- a/dwtexamples/clipboard/ClipboardExample.d	Wed Feb 27 16:24:17 2008 -0800
+++ b/dwtexamples/clipboard/ClipboardExample.d	Thu Feb 28 13:59:12 2008 -0800
@@ -61,426 +61,426 @@
     StyledText styledText;
     Label status;
     
-	public void open(Display display) {
-		 clipboard = new Clipboard(display);
-		 shell = new Shell (display);
-		 shell.setText("DWT Clipboard");
-		 shell.setLayout(new FillLayout());
-		 
-		 ScrolledComposite sc = new ScrolledComposite(shell, DWT.H_SCROLL | DWT.V_SCROLL);
-		 Composite parent = new Composite(sc, DWT.NONE);
-		 sc.setContent(parent);
-		 parent.setLayout(new GridLayout(2, true));
-		 
-		 Group copyGroup = new Group(parent, DWT.NONE);
-		 copyGroup.setText("Copy From:");
-		 GridData data = new GridData(GridData.FILL_BOTH);
-		 copyGroup.setLayoutData(data);
-		 copyGroup.setLayout(new GridLayout(3, false));
-		 
-		 Group pasteGroup = new Group(parent, DWT.NONE);
-		 pasteGroup.setText("Paste To:");
-		 data = new GridData(GridData.FILL_BOTH);
-		 pasteGroup.setLayoutData(data);
-		 pasteGroup.setLayout(new GridLayout(3, false));
-		 
-		 Group controlGroup = new Group(parent, DWT.NONE);
-		 controlGroup.setText("Control API:");
-		 data = new GridData(GridData.FILL_BOTH);
-		 data.horizontalSpan = 2;
-		 controlGroup.setLayoutData(data);
-		 controlGroup.setLayout(new GridLayout(5, false));
-		 
-		 /* Enable with Available Types *
-		 Group typesGroup = new Group(parent, DWT.NONE);
-		 typesGroup.setText("Available Types");
-		 data = new GridData(GridData.FILL_BOTH);
-		 data.horizontalSpan = 2;
-		 typesGroup.setLayoutData(data);
-		 typesGroup.setLayout(new GridLayout(2, false));
-		 /**/
-		 
-		 status = new Label(parent, DWT.BORDER);
-		 data = new GridData(GridData.FILL_HORIZONTAL);
-		 data.horizontalSpan = 2;
-		 data.heightHint = 60;
-		 status.setLayoutData(data);
-		 
-		 createTextTransfer(copyGroup, pasteGroup);
-		 //TODO: Doesn't work
-//		 createRTFTransfer(copyGroup, pasteGroup);
-		 createHTMLTransfer(copyGroup, pasteGroup);
-		 //TODO: Doesn't work
-//		 createFileTransfer(copyGroup, pasteGroup);
-		 createMyTransfer(copyGroup, pasteGroup);
-		 createControlTransfer(controlGroup);
-		 //TODO: Causes Segfault
-//		 createAvailableTypes(typesGroup);
-		 
-		 sc.setMinSize(parent.computeSize(DWT.DEFAULT, DWT.DEFAULT));
-		 sc.setExpandHorizontal(true);
-		 sc.setExpandVertical(true);
-		 
-		 Point size = shell.computeSize(DWT.DEFAULT, DWT.DEFAULT);
-		 Rectangle monitorArea = shell.getMonitor().getClientArea();
-		 shell.setSize(Math.min(size.x, monitorArea.width - 20), Math.min(size.y, monitorArea.height - 20));
-		 shell.open();
-		 while (!shell.isDisposed ()) {
-			  if (!display.readAndDispatch ()) display.sleep ();
-		 }
-		 clipboard.dispose();
-	}
-	void createTextTransfer(Composite copyParent, Composite pasteParent) {
-		 
-		 // TextTransfer
-		 Label l = new Label(copyParent, DWT.NONE);
-		 l.setText("TextTransfer:"); //$NON-NLS-1$
-		 copyText = new Text(copyParent, DWT.MULTI | DWT.BORDER | DWT.V_SCROLL | DWT.H_SCROLL);
-		 copyText.setText("some\nplain\ntext");
-		 GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		 data.heightHint = data.widthHint = SIZE;
-		 copyText.setLayoutData(data);
-		 Button b = new Button(copyParent, DWT.PUSH);
-		 b.setText("Copy");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					auto data = copyText.getText();
-					if (data.length > 0) {
-						 status.setText("");
-						 auto obj = new Object[1];
-						 auto trans = new TextTransfer[1];
-						 obj[0] = cast(Object) new ArrayWrapperString(data);
-						 trans[0] = TextTransfer.getInstance();
-						 clipboard.setContents(obj, trans);
-					} else {
-						 status.setText("nothing to copy");
-					}
-			  }
-		 });
-		 
-		 l = new Label(pasteParent, DWT.NONE);
-		 l.setText("TextTransfer:"); //$NON-NLS-1$
-		 pasteText = new Text(pasteParent, DWT.READ_ONLY | DWT.MULTI | DWT.BORDER | DWT.V_SCROLL | DWT.H_SCROLL);
-		 data = new GridData(GridData.FILL_HORIZONTAL);
-		 data.heightHint = data.widthHint = SIZE;
-		 pasteText.setLayoutData(data);
-		 b = new Button(pasteParent, DWT.PUSH);
-		 b.setText("Paste");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					auto data = cast(ArrayWrapperString) clipboard.getContents(TextTransfer.getInstance());
-					if (data !is null) {
-						status.setText("");
-						 pasteText.setText("begin paste>"~data.array~"<end paste");
-					} else {
-						 status.setText("nothing to paste");
-					}
-			  }
-		 });
-	}
-	void createRTFTransfer(Composite copyParent, Composite pasteParent){
-		 //  RTF Transfer
-		 Label l = new Label(copyParent, DWT.NONE);
-		 l.setText("RTFTransfer:"); //$NON-NLS-1$
-		 copyRtfText = new Text(copyParent, DWT.MULTI | DWT.BORDER | DWT.V_SCROLL | DWT.H_SCROLL);
-		 copyRtfText.setText("some\nrtf\ntext");
-		 GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		 data.heightHint = data.widthHint = SIZE;
-		 copyRtfText.setLayoutData(data);
-		 Button b = new Button(copyParent, DWT.PUSH);
-		 b.setText("Copy");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					auto data = copyRtfText.getText();
-					if (data.length > 0) {
-						 status.setText("");
-						 data = "{\\rtf1{\\colortbl;\\red255\\green0\\blue0;}\\uc1\\b\\i " ~ data ~ "}";
-						 auto obj = new Object[1];
-						 auto trans = new Transfer[1];
-						 obj[0] = cast(Object) new ArrayWrapperString(data);
-						 trans[0] = RTFTransfer.getInstance();
-						 clipboard.setContents(obj, trans);
-					} else {
-						 status.setText("nothing to copy");
-					}
-			  }
-		 });
-			
-		 l = new Label(pasteParent, DWT.NONE);
-		 l.setText("RTFTransfer:"); //$NON-NLS-1$
-		 pasteRtfText = new Text(pasteParent, DWT.READ_ONLY | DWT.MULTI | DWT.BORDER | DWT.V_SCROLL | DWT.H_SCROLL);
-		 data = new GridData(GridData.FILL_HORIZONTAL);
-		 data.heightHint = data.widthHint = SIZE;
-		 pasteRtfText.setLayoutData(data);
-		 b = new Button(pasteParent, DWT.PUSH);
-		 b.setText("Paste");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					auto data = cast(ArrayWrapperString) clipboard.getContents(RTFTransfer.getInstance());
-					if (data !is null) {
-						status.setText("");
-						pasteRtfText.setText("begin paste>"~data.array~"<end paste");
-					} else {
-						 status.setText("nothing to paste");
-					}
-			  }
-		 });
-	}
-	void createHTMLTransfer(Composite copyParent, Composite pasteParent){
-		 //  HTML Transfer
-		 Label l = new Label(copyParent, DWT.NONE);
-		 l.setText("HTMLTransfer:"); //$NON-NLS-1$
-		 copyHtmlText = new Text(copyParent, DWT.MULTI | DWT.BORDER | DWT.V_SCROLL | DWT.H_SCROLL);
-		 copyHtmlText.setText("<b>Hello World</b>");
-		 GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		 data.heightHint = data.widthHint = SIZE;
-		 copyHtmlText.setLayoutData(data);
-		 Button b = new Button(copyParent, DWT.PUSH);
-		 b.setText("Copy");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					auto data = copyHtmlText.getText();
-					if (data.length > 0) {
-						 status.setText("");
-						 auto obj = new Object[1];
-						 auto trans = new Transfer[1];
-						 obj[0] = cast(Object) new ArrayWrapperString(data);
-						 trans[0] = HTMLTransfer.getInstance();
-						 clipboard.setContents(obj, trans);
-					} else {
-						 status.setText("nothing to copy");
-					}
-			  }
-		 });
-			
-		 l = new Label(pasteParent, DWT.NONE);
-		 l.setText("HTMLTransfer:"); //$NON-NLS-1$
-		 pasteHtmlText = new Text(pasteParent, DWT.READ_ONLY | DWT.MULTI | DWT.BORDER | DWT.V_SCROLL | DWT.H_SCROLL);
-		 data = new GridData(GridData.FILL_HORIZONTAL);
-		 data.heightHint = data.widthHint = SIZE;
-		 pasteHtmlText.setLayoutData(data);
-		 b = new Button(pasteParent, DWT.PUSH);
-		 b.setText("Paste");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					auto data = cast(ArrayWrapperString) clipboard.getContents(HTMLTransfer.getInstance());
-					if (data !is null) {
-						 status.setText("");
-						 pasteHtmlText.setText("begin paste>"~data.array~"<end paste");
-					} else {
-						 status.setText("nothing to paste");
-					}
-			  }
-		 });
-	}
-	void createFileTransfer(Composite copyParent, Composite pasteParent){
-		 //File Transfer
-		 Label l = new Label(copyParent, DWT.NONE);
-		 l.setText("FileTransfer:"); //$NON-NLS-1$
-		 
-		 Composite c = new Composite(copyParent, DWT.NONE);
-		 c.setLayout(new GridLayout(2, false));
-		 GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		 c.setLayoutData(data);
-		 
-		 copyFileTable = new Table(c, DWT.MULTI | DWT.BORDER);
-		 data = new GridData(GridData.FILL_HORIZONTAL);
-		 data.heightHint = data.widthHint = SIZE;
-		 data.horizontalSpan = 2;
-		 copyFileTable.setLayoutData(data);
-		 
-		 Button b = new Button(c, DWT.PUSH);
-		 b.setText("Select file(s)");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					FileDialog dialog = new FileDialog(shell, DWT.OPEN | DWT.MULTI);
-					auto result = dialog.open();
-					if (result !is null && result.length > 0){
-						 //copyFileTable.removeAll();
-						 //This cannot be used
-						 //auto separator = System.getProperty("file.separator");
-						 version(linux) {
-						 	auto separator = "/";
-						 }
-						 version(win32) {
-						 	auto separator = "\\";
-						 }
-						 auto path = dialog.getFilterPath();
-						 auto names = dialog.getFileNames();
-						 for (int i = 0; i < names.length; i++) {
-							  TableItem item = new TableItem(copyFileTable, DWT.NONE);
-							  item.setText(path~separator~names[i]);
-						 }
-					}
-			  }
-		 });
-		 b = new Button(c, DWT.PUSH);
-		 b.setText("Select directory");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					DirectoryDialog dialog = new DirectoryDialog(shell, DWT.OPEN);
-					auto result = dialog.open();
-					if (result !is null && result.length > 0){
-						 //copyFileTable.removeAll();
-						 TableItem item = new TableItem(copyFileTable, DWT.NONE);
-						 item.setText(result);
-					}
-			  }
-		 });
-		 
-		 b = new Button(copyParent, DWT.PUSH);
-		 b.setText("Copy");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					TableItem[] items = copyFileTable.getItems();
-					if (items.length > 0){
-						 status.setText("");
-						 auto data = new char[][items.length];
-						 for (int i = 0; i < data.length; i++) {
-							  data[i] = items[i].getText();
-						 }
-						 auto obj = new Object[1];
-						 auto trans = new Transfer[1];
-						 obj[0] = cast(Object) new ArrayWrapperString2(data);
-						 trans[0] = FileTransfer.getInstance();
-						 clipboard.setContents(obj, trans);
-					} else {
-						 status.setText("nothing to copy");
-					}
-			  }
-		 });
-		 
-		 l = new Label(pasteParent, DWT.NONE);
-		 l.setText("FileTransfer:"); //$NON-NLS-1$
-		 pasteFileTable = new Table(pasteParent, DWT.MULTI | DWT.BORDER);
-		 data = new GridData(GridData.FILL_HORIZONTAL);
-		 data.heightHint = data.widthHint = SIZE;
-		 pasteFileTable.setLayoutData(data);
-		 b = new Button(pasteParent, DWT.PUSH);
-		 b.setText("Paste");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					auto data = cast(ArrayWrapperString2) clipboard.getContents(FileTransfer.getInstance());
-					if (data !is null && data.array.length > 0) {
-						 status.setText("");
-						 pasteFileTable.removeAll();
-						 foreach (s; data.array) {
-							  TableItem item = new TableItem(pasteFileTable, DWT.NONE);
-							  item.setText(s);
-						 }
-					} else {
-						 status.setText("nothing to paste");
-					}
-			  }
-		 });  
-	}
-	void createMyTransfer(Composite copyParent, Composite pasteParent){
-		 //  MyType Transfer
-		 // TODO
-	}
-	void createControlTransfer(Composite parent){
-		 Label l = new Label(parent, DWT.NONE);
-		 l.setText("Text:");
-		 Button b = new Button(parent, DWT.PUSH);
-		 b.setText("Cut");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					text.cut();
-			  }
-		 });
-		 b = new Button(parent, DWT.PUSH);
-		 b.setText("Copy");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					text.copy();
-			  }
-		 });
-		 b = new Button(parent, DWT.PUSH);
-		 b.setText("Paste");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					text.paste();
-			  }
-		 });
-		 text = new Text(parent, DWT.BORDER | DWT.MULTI | DWT.H_SCROLL | DWT.V_SCROLL);
-		 GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		 data.heightHint = data.widthHint = SIZE;
-		 text.setLayoutData(data);
-		 
-		 l = new Label(parent, DWT.NONE);
-		 l.setText("Combo:");
-		 b = new Button(parent, DWT.PUSH);
-		 b.setText("Cut");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					combo.cut();
-			  }
-		 });
-		 b = new Button(parent, DWT.PUSH);
-		 b.setText("Copy");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					combo.copy();
-			  }
-		 });
-		 b = new Button(parent, DWT.PUSH);
-		 b.setText("Paste");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					combo.paste();
-			  }
-		 });
-		 combo = new Combo(parent, DWT.NONE);
-		 char[][] str = new char[][4];
-		 str[0] = "Item 1";
-		 str[1] = "Item 2";
-		 str[2] = "Item 3";
-		 str[3] = "A longer Item";
-		 combo.setItems(str);
-		 
-		 l = new Label(parent, DWT.NONE);
-		 l.setText("StyledText:");
-		 l = new Label(parent, DWT.NONE);
-		 l.setVisible(false);
-		 b = new Button(parent, DWT.PUSH);
-		 b.setText("Copy");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					styledText.copy();
-			  }
-		 });
-		 b = new Button(parent, DWT.PUSH);
-		 b.setText("Paste");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					styledText.paste();
-			  }
-		 });
-		 styledText = new StyledText(parent, DWT.BORDER | DWT.MULTI | DWT.H_SCROLL | DWT.V_SCROLL);
-		 data = new GridData(GridData.FILL_HORIZONTAL);
-		 data.heightHint = data.widthHint = SIZE;
-		 styledText.setLayoutData(data);
-	}
-	void createAvailableTypes(Composite parent){
-		 final List list = new List(parent, DWT.BORDER | DWT.H_SCROLL | DWT.V_SCROLL);
-		 GridData data = new GridData(GridData.FILL_BOTH);
-		 data.heightHint = 100;
-		 list.setLayoutData(data);
-		 Button b = new Button(parent, DWT.PUSH);
-		 b.setText("Get Available Types");
-		 b.addSelectionListener(new class SelectionAdapter {
-			  public void widgetSelected(SelectionEvent e) {
-					list.removeAll();
-					auto names = clipboard.getAvailableTypeNames();
-					for (int i = 0; i < names.length; i++) {
-						 list.add(names[i]);
-					}
-			  }
-		 });
-	}
+    public void open(Display display) {
+         clipboard = new Clipboard(display);
+         shell = new Shell (display);
+         shell.setText("DWT Clipboard");
+         shell.setLayout(new FillLayout());
+         
+         ScrolledComposite sc = new ScrolledComposite(shell, DWT.H_SCROLL | DWT.V_SCROLL);
+         Composite parent = new Composite(sc, DWT.NONE);
+         sc.setContent(parent);
+         parent.setLayout(new GridLayout(2, true));
+         
+         Group copyGroup = new Group(parent, DWT.NONE);
+         copyGroup.setText("Copy From:");
+         GridData data = new GridData(GridData.FILL_BOTH);
+         copyGroup.setLayoutData(data);
+         copyGroup.setLayout(new GridLayout(3, false));
+         
+         Group pasteGroup = new Group(parent, DWT.NONE);
+         pasteGroup.setText("Paste To:");
+         data = new GridData(GridData.FILL_BOTH);
+         pasteGroup.setLayoutData(data);
+         pasteGroup.setLayout(new GridLayout(3, false));
+         
+         Group controlGroup = new Group(parent, DWT.NONE);
+         controlGroup.setText("Control API:");
+         data = new GridData(GridData.FILL_BOTH);
+         data.horizontalSpan = 2;
+         controlGroup.setLayoutData(data);
+         controlGroup.setLayout(new GridLayout(5, false));
+         
+         /* Enable with Available Types *
+         Group typesGroup = new Group(parent, DWT.NONE);
+         typesGroup.setText("Available Types");
+         data = new GridData(GridData.FILL_BOTH);
+         data.horizontalSpan = 2;
+         typesGroup.setLayoutData(data);
+         typesGroup.setLayout(new GridLayout(2, false));
+         /**/
+         
+         status = new Label(parent, DWT.BORDER);
+         data = new GridData(GridData.FILL_HORIZONTAL);
+         data.horizontalSpan = 2;
+         data.heightHint = 60;
+         status.setLayoutData(data);
+         
+         createTextTransfer(copyGroup, pasteGroup);
+         //TODO: Doesn't work
+//       createRTFTransfer(copyGroup, pasteGroup);
+         createHTMLTransfer(copyGroup, pasteGroup);
+         //TODO: Doesn't work
+//       createFileTransfer(copyGroup, pasteGroup);
+         createMyTransfer(copyGroup, pasteGroup);
+         createControlTransfer(controlGroup);
+         //TODO: Causes Segfault
+//       createAvailableTypes(typesGroup);
+         
+         sc.setMinSize(parent.computeSize(DWT.DEFAULT, DWT.DEFAULT));
+         sc.setExpandHorizontal(true);
+         sc.setExpandVertical(true);
+         
+         Point size = shell.computeSize(DWT.DEFAULT, DWT.DEFAULT);
+         Rectangle monitorArea = shell.getMonitor().getClientArea();
+         shell.setSize(Math.min(size.x, monitorArea.width - 20), Math.min(size.y, monitorArea.height - 20));
+         shell.open();
+         while (!shell.isDisposed ()) {
+              if (!display.readAndDispatch ()) display.sleep ();
+         }
+         clipboard.dispose();
+    }
+    void createTextTransfer(Composite copyParent, Composite pasteParent) {
+         
+         // TextTransfer
+         Label l = new Label(copyParent, DWT.NONE);
+         l.setText("TextTransfer:"); //$NON-NLS-1$
+         copyText = new Text(copyParent, DWT.MULTI | DWT.BORDER | DWT.V_SCROLL | DWT.H_SCROLL);
+         copyText.setText("some\nplain\ntext");
+         GridData data = new GridData(GridData.FILL_HORIZONTAL);
+         data.heightHint = data.widthHint = SIZE;
+         copyText.setLayoutData(data);
+         Button b = new Button(copyParent, DWT.PUSH);
+         b.setText("Copy");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    auto data = copyText.getText();
+                    if (data.length > 0) {
+                         status.setText("");
+                         auto obj = new Object[1];
+                         auto trans = new TextTransfer[1];
+                         obj[0] = cast(Object) new ArrayWrapperString(data);
+                         trans[0] = TextTransfer.getInstance();
+                         clipboard.setContents(obj, trans);
+                    } else {
+                         status.setText("nothing to copy");
+                    }
+              }
+         });
+         
+         l = new Label(pasteParent, DWT.NONE);
+         l.setText("TextTransfer:"); //$NON-NLS-1$
+         pasteText = new Text(pasteParent, DWT.READ_ONLY | DWT.MULTI | DWT.BORDER | DWT.V_SCROLL | DWT.H_SCROLL);
+         data = new GridData(GridData.FILL_HORIZONTAL);
+         data.heightHint = data.widthHint = SIZE;
+         pasteText.setLayoutData(data);
+         b = new Button(pasteParent, DWT.PUSH);
+         b.setText("Paste");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    auto data = cast(ArrayWrapperString) clipboard.getContents(TextTransfer.getInstance());
+                    if (data !is null) {
+                        status.setText("");
+                         pasteText.setText("begin paste>"~data.array~"<end paste");
+                    } else {
+                         status.setText("nothing to paste");
+                    }
+              }
+         });
+    }
+    void createRTFTransfer(Composite copyParent, Composite pasteParent){
+         //  RTF Transfer
+         Label l = new Label(copyParent, DWT.NONE);
+         l.setText("RTFTransfer:"); //$NON-NLS-1$
+         copyRtfText = new Text(copyParent, DWT.MULTI | DWT.BORDER | DWT.V_SCROLL | DWT.H_SCROLL);
+         copyRtfText.setText("some\nrtf\ntext");
+         GridData data = new GridData(GridData.FILL_HORIZONTAL);
+         data.heightHint = data.widthHint = SIZE;
+         copyRtfText.setLayoutData(data);
+         Button b = new Button(copyParent, DWT.PUSH);
+         b.setText("Copy");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    auto data = copyRtfText.getText();
+                    if (data.length > 0) {
+                         status.setText("");
+                         data = "{\\rtf1{\\colortbl;\\red255\\green0\\blue0;}\\uc1\\b\\i " ~ data ~ "}";
+                         auto obj = new Object[1];
+                         auto trans = new Transfer[1];
+                         obj[0] = cast(Object) new ArrayWrapperString(data);
+                         trans[0] = RTFTransfer.getInstance();
+                         clipboard.setContents(obj, trans);
+                    } else {
+                         status.setText("nothing to copy");
+                    }
+              }
+         });
+            
+         l = new Label(pasteParent, DWT.NONE);
+         l.setText("RTFTransfer:"); //$NON-NLS-1$
+         pasteRtfText = new Text(pasteParent, DWT.READ_ONLY | DWT.MULTI | DWT.BORDER | DWT.V_SCROLL | DWT.H_SCROLL);
+         data = new GridData(GridData.FILL_HORIZONTAL);
+         data.heightHint = data.widthHint = SIZE;
+         pasteRtfText.setLayoutData(data);
+         b = new Button(pasteParent, DWT.PUSH);
+         b.setText("Paste");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    auto data = cast(ArrayWrapperString) clipboard.getContents(RTFTransfer.getInstance());
+                    if (data !is null) {
+                        status.setText("");
+                        pasteRtfText.setText("begin paste>"~data.array~"<end paste");
+                    } else {
+                         status.setText("nothing to paste");
+                    }
+              }
+         });
+    }
+    void createHTMLTransfer(Composite copyParent, Composite pasteParent){
+         //  HTML Transfer
+         Label l = new Label(copyParent, DWT.NONE);
+         l.setText("HTMLTransfer:"); //$NON-NLS-1$
+         copyHtmlText = new Text(copyParent, DWT.MULTI | DWT.BORDER | DWT.V_SCROLL | DWT.H_SCROLL);
+         copyHtmlText.setText("<b>Hello World</b>");
+         GridData data = new GridData(GridData.FILL_HORIZONTAL);
+         data.heightHint = data.widthHint = SIZE;
+         copyHtmlText.setLayoutData(data);
+         Button b = new Button(copyParent, DWT.PUSH);
+         b.setText("Copy");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    auto data = copyHtmlText.getText();
+                    if (data.length > 0) {
+                         status.setText("");
+                         auto obj = new Object[1];
+                         auto trans = new Transfer[1];
+                         obj[0] = cast(Object) new ArrayWrapperString(data);
+                         trans[0] = HTMLTransfer.getInstance();
+                         clipboard.setContents(obj, trans);
+                    } else {
+                         status.setText("nothing to copy");
+                    }
+              }
+         });
+            
+         l = new Label(pasteParent, DWT.NONE);
+         l.setText("HTMLTransfer:"); //$NON-NLS-1$
+         pasteHtmlText = new Text(pasteParent, DWT.READ_ONLY | DWT.MULTI | DWT.BORDER | DWT.V_SCROLL | DWT.H_SCROLL);
+         data = new GridData(GridData.FILL_HORIZONTAL);
+         data.heightHint = data.widthHint = SIZE;
+         pasteHtmlText.setLayoutData(data);
+         b = new Button(pasteParent, DWT.PUSH);
+         b.setText("Paste");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    auto data = cast(ArrayWrapperString) clipboard.getContents(HTMLTransfer.getInstance());
+                    if (data !is null) {
+                         status.setText("");
+                         pasteHtmlText.setText("begin paste>"~data.array~"<end paste");
+                    } else {
+                         status.setText("nothing to paste");
+                    }
+              }
+         });
+    }
+    void createFileTransfer(Composite copyParent, Composite pasteParent){
+         //File Transfer
+         Label l = new Label(copyParent, DWT.NONE);
+         l.setText("FileTransfer:"); //$NON-NLS-1$
+         
+         Composite c = new Composite(copyParent, DWT.NONE);
+         c.setLayout(new GridLayout(2, false));
+         GridData data = new GridData(GridData.FILL_HORIZONTAL);
+         c.setLayoutData(data);
+         
+         copyFileTable = new Table(c, DWT.MULTI | DWT.BORDER);
+         data = new GridData(GridData.FILL_HORIZONTAL);
+         data.heightHint = data.widthHint = SIZE;
+         data.horizontalSpan = 2;
+         copyFileTable.setLayoutData(data);
+         
+         Button b = new Button(c, DWT.PUSH);
+         b.setText("Select file(s)");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    FileDialog dialog = new FileDialog(shell, DWT.OPEN | DWT.MULTI);
+                    auto result = dialog.open();
+                    if (result !is null && result.length > 0){
+                         //copyFileTable.removeAll();
+                         //This cannot be used
+                         //auto separator = System.getProperty("file.separator");
+                         version(linux) {
+                            auto separator = "/";
+                         }
+                         version(win32) {
+                            auto separator = "\\";
+                         }
+                         auto path = dialog.getFilterPath();
+                         auto names = dialog.getFileNames();
+                         for (int i = 0; i < names.length; i++) {
+                              TableItem item = new TableItem(copyFileTable, DWT.NONE);
+                              item.setText(path~separator~names[i]);
+                         }
+                    }
+              }
+         });
+         b = new Button(c, DWT.PUSH);
+         b.setText("Select directory");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    DirectoryDialog dialog = new DirectoryDialog(shell, DWT.OPEN);
+                    auto result = dialog.open();
+                    if (result !is null && result.length > 0){
+                         //copyFileTable.removeAll();
+                         TableItem item = new TableItem(copyFileTable, DWT.NONE);
+                         item.setText(result);
+                    }
+              }
+         });
+         
+         b = new Button(copyParent, DWT.PUSH);
+         b.setText("Copy");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    TableItem[] items = copyFileTable.getItems();
+                    if (items.length > 0){
+                         status.setText("");
+                         auto data = new char[][items.length];
+                         for (int i = 0; i < data.length; i++) {
+                              data[i] = items[i].getText();
+                         }
+                         auto obj = new Object[1];
+                         auto trans = new Transfer[1];
+                         obj[0] = cast(Object) new ArrayWrapperString2(data);
+                         trans[0] = FileTransfer.getInstance();
+                         clipboard.setContents(obj, trans);
+                    } else {
+                         status.setText("nothing to copy");
+                    }
+              }
+         });
+         
+         l = new Label(pasteParent, DWT.NONE);
+         l.setText("FileTransfer:"); //$NON-NLS-1$
+         pasteFileTable = new Table(pasteParent, DWT.MULTI | DWT.BORDER);
+         data = new GridData(GridData.FILL_HORIZONTAL);
+         data.heightHint = data.widthHint = SIZE;
+         pasteFileTable.setLayoutData(data);
+         b = new Button(pasteParent, DWT.PUSH);
+         b.setText("Paste");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    auto data = cast(ArrayWrapperString2) clipboard.getContents(FileTransfer.getInstance());
+                    if (data !is null && data.array.length > 0) {
+                         status.setText("");
+                         pasteFileTable.removeAll();
+                         foreach (s; data.array) {
+                              TableItem item = new TableItem(pasteFileTable, DWT.NONE);
+                              item.setText(s);
+                         }
+                    } else {
+                         status.setText("nothing to paste");
+                    }
+              }
+         });  
+    }
+    void createMyTransfer(Composite copyParent, Composite pasteParent){
+         //  MyType Transfer
+         // TODO
+    }
+    void createControlTransfer(Composite parent){
+         Label l = new Label(parent, DWT.NONE);
+         l.setText("Text:");
+         Button b = new Button(parent, DWT.PUSH);
+         b.setText("Cut");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    text.cut();
+              }
+         });
+         b = new Button(parent, DWT.PUSH);
+         b.setText("Copy");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    text.copy();
+              }
+         });
+         b = new Button(parent, DWT.PUSH);
+         b.setText("Paste");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    text.paste();
+              }
+         });
+         text = new Text(parent, DWT.BORDER | DWT.MULTI | DWT.H_SCROLL | DWT.V_SCROLL);
+         GridData data = new GridData(GridData.FILL_HORIZONTAL);
+         data.heightHint = data.widthHint = SIZE;
+         text.setLayoutData(data);
+         
+         l = new Label(parent, DWT.NONE);
+         l.setText("Combo:");
+         b = new Button(parent, DWT.PUSH);
+         b.setText("Cut");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    combo.cut();
+              }
+         });
+         b = new Button(parent, DWT.PUSH);
+         b.setText("Copy");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    combo.copy();
+              }
+         });
+         b = new Button(parent, DWT.PUSH);
+         b.setText("Paste");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    combo.paste();
+              }
+         });
+         combo = new Combo(parent, DWT.NONE);
+         char[][] str = new char[][4];
+         str[0] = "Item 1";
+         str[1] = "Item 2";
+         str[2] = "Item 3";
+         str[3] = "A longer Item";
+         combo.setItems(str);
+         
+         l = new Label(parent, DWT.NONE);
+         l.setText("StyledText:");
+         l = new Label(parent, DWT.NONE);
+         l.setVisible(false);
+         b = new Button(parent, DWT.PUSH);
+         b.setText("Copy");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    styledText.copy();
+              }
+         });
+         b = new Button(parent, DWT.PUSH);
+         b.setText("Paste");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    styledText.paste();
+              }
+         });
+         styledText = new StyledText(parent, DWT.BORDER | DWT.MULTI | DWT.H_SCROLL | DWT.V_SCROLL);
+         data = new GridData(GridData.FILL_HORIZONTAL);
+         data.heightHint = data.widthHint = SIZE;
+         styledText.setLayoutData(data);
+    }
+    void createAvailableTypes(Composite parent){
+         final List list = new List(parent, DWT.BORDER | DWT.H_SCROLL | DWT.V_SCROLL);
+         GridData data = new GridData(GridData.FILL_BOTH);
+         data.heightHint = 100;
+         list.setLayoutData(data);
+         Button b = new Button(parent, DWT.PUSH);
+         b.setText("Get Available Types");
+         b.addSelectionListener(new class SelectionAdapter {
+              public void widgetSelected(SelectionEvent e) {
+                    list.removeAll();
+                    auto names = clipboard.getAvailableTypeNames();
+                    for (int i = 0; i < names.length; i++) {
+                         list.add(names[i]);
+                    }
+              }
+         });
+    }
 }
 void main() {
-	 Stdout.formatln( "The ClipboardExample: still work left" );
+     Stdout.formatln( "The ClipboardExample: still work left" );
     Stdout.formatln( "todo: RTF, File Transfer, Available types");
     Stdout.formatln( "line 300, there might be a better way to do" );
     Stdout.formatln( "system independent path seperators in tango" );