# HG changeset patch # User Jesse Phillips # Date 1204235952 28800 # Node ID 49188ccea1d1c79b82f61a6dcce47c6718ce6e11 # Parent 7b7a54b047e1bbc7755b37a1895c2a97d0d8121e changed tabs to spaces in clipboard. diff -r 7b7a54b047e1 -r 49188ccea1d1 dwtexamples/clipboard/ClipboardExample.d --- 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~" 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~"Hello World"); - 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~" 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~" 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~"Hello World"); + 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~" 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" );