Mercurial > projects > dwt2
annotate org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet128.d @ 112:9f4c18c268b2
Update to compile and execute with dmd 2.052.
author | kntroh |
---|---|
date | Wed, 16 Mar 2011 21:53:53 +0900 |
parents | ed96ea2a2764 |
children | 536e43f63c81 |
rev | line source |
---|---|
28 | 1 /******************************************************************************* |
2 * Copyright (c) 2000, 2004 IBM Corporation and others. | |
3 * All rights reserved. This program and the accompanying materials | |
4 * are made available under the terms of the Eclipse Public License v1.0 | |
5 * which accompanies this distribution, and is available at | |
6 * http://www.eclipse.org/legal/epl-v10.html | |
7 * | |
8 * Contributors: | |
9 * IBM Corporation - initial API and implementation | |
10 * Ported to the D Programming Language: | |
11 * by John Reimer | |
12 *******************************************************************************/ | |
13 module Snippet128; | |
14 | |
15 /* | |
16 * Browser example snippet: bring up a browser | |
17 * | |
18 * For a list of all SWT example snippets see | |
19 * http://www.eclipse.org/swt/snippets/ | |
20 * | |
21 * @since 3.0 | |
22 */ | |
23 | |
24 version(linux) | |
25 { | |
26 version(build) | |
27 { | |
28 pragma(link,"stdc++"); | |
29 pragma(link,"xpcomglue"); | |
30 } | |
31 } | |
32 | |
33 import java.lang.all; | |
34 | |
35 import org.eclipse.swt.SWT; | |
29
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
36 import org.eclipse.swt.SWTError; |
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
37 import org.eclipse.swt.SWTException; |
28 | 38 |
39 import org.eclipse.swt.browser.Browser; | |
40 import org.eclipse.swt.browser.ProgressEvent; | |
41 import org.eclipse.swt.browser.ProgressListener; | |
42 import org.eclipse.swt.browser.StatusTextEvent; | |
43 import org.eclipse.swt.browser.StatusTextListener; | |
44 import org.eclipse.swt.browser.LocationEvent; | |
45 import org.eclipse.swt.browser.LocationListener; | |
46 | |
47 import org.eclipse.swt.layout.GridLayout; | |
48 import org.eclipse.swt.layout.GridData; | |
49 | |
50 import org.eclipse.swt.widgets.Shell; | |
51 import org.eclipse.swt.widgets.Display; | |
52 import org.eclipse.swt.widgets.ToolBar; | |
53 import org.eclipse.swt.widgets.ToolItem; | |
54 import org.eclipse.swt.widgets.Label; | |
55 import org.eclipse.swt.widgets.Text; | |
56 import org.eclipse.swt.widgets.ProgressBar; | |
57 import org.eclipse.swt.widgets.Listener; | |
58 import org.eclipse.swt.widgets.Event; | |
59 | |
60 public static void main(String [] args) { | |
44
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
61 Display display = new Display(); |
112 | 62 Shell shell = new Shell(display); |
44
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
63 GridLayout gridLayout = new GridLayout(); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
64 gridLayout.numColumns = 3; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
65 shell.setLayout(gridLayout); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
66 ToolBar toolbar = new ToolBar(shell, SWT.NONE); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
67 ToolItem itemBack = new ToolItem(toolbar, SWT.PUSH); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
68 itemBack.setText("Back"); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
69 ToolItem itemForward = new ToolItem(toolbar, SWT.PUSH); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
70 itemForward.setText("Forward"); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
71 ToolItem itemStop = new ToolItem(toolbar, SWT.PUSH); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
72 itemStop.setText("Stop"); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
73 ToolItem itemRefresh = new ToolItem(toolbar, SWT.PUSH); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
74 itemRefresh.setText("Refresh"); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
75 ToolItem itemGo = new ToolItem(toolbar, SWT.PUSH); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
76 itemGo.setText("Go"); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
77 |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
78 GridData data = new GridData(); |
28 | 79 data.horizontalSpan = 3; |
44
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
80 toolbar.setLayoutData(data); |
28 | 81 |
44
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
82 Label labelAddress = new Label(shell, SWT.NONE); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
83 labelAddress.setText("Address"); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
84 |
112 | 85 Text location = new Text(shell, SWT.BORDER); |
44
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
86 data = new GridData(); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
87 data.horizontalAlignment = GridData.FILL; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
88 data.horizontalSpan = 2; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
89 data.grabExcessHorizontalSpace = true; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
90 location.setLayoutData(data); |
28 | 91 |
44
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
92 Browser browser; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
93 try { |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
94 browser = new Browser(shell, SWT.NONE); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
95 } catch (SWTError e) { |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
96 getDwtLogger().error ( __FILE__, __LINE__, "Could not instantiate Browser: " ~ e.getMessage()); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
97 return; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
98 } |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
99 data = new GridData(); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
100 data.horizontalAlignment = GridData.FILL; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
101 data.verticalAlignment = GridData.FILL; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
102 data.horizontalSpan = 3; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
103 data.grabExcessHorizontalSpace = true; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
104 data.grabExcessVerticalSpace = true; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
105 browser.setLayoutData(data); |
28 | 106 |
44
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
107 Label status = new Label(shell, SWT.NONE); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
108 data = new GridData(GridData.FILL_HORIZONTAL); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
109 data.horizontalSpan = 2; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
110 status.setLayoutData(data); |
28 | 111 |
44
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
112 ProgressBar progressBar = new ProgressBar(shell, SWT.NONE); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
113 data = new GridData(); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
114 data.horizontalAlignment = GridData.END; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
115 progressBar.setLayoutData(data); |
28 | 116 |
44
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
117 /* event handling */ |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
118 Listener listener = new class() Listener { |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
119 public void handleEvent(Event event) { |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
120 ToolItem item = cast(ToolItem)event.widget; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
121 String string = item.getText(); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
122 if (string.equals("Back")) browser.back(); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
123 else if (string.equals("Forward")) browser.forward(); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
124 else if (string.equals("Stop")) browser.stop(); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
125 else if (string.equals("Refresh")) browser.refresh(); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
126 else if (string.equals("Go")) browser.setUrl(location.getText()); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
127 } |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
128 }; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
129 browser.addProgressListener(new class() ProgressListener { |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
130 public void changed(ProgressEvent event) { |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
131 if (event.total == 0) return; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
132 int ratio = event.current * 100 / event.total; |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
133 progressBar.setSelection(ratio); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
134 } |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
135 public void completed(ProgressEvent event) { |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
136 progressBar.setSelection(0); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
137 } |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
138 }); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
139 browser.addStatusTextListener(new class() StatusTextListener { |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
140 public void changed(StatusTextEvent event) { |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
141 status.setText(event.text); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
142 } |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
143 }); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
144 browser.addLocationListener(new class() LocationListener { |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
145 public void changed(LocationEvent event) { |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
146 if (event.top) location.setText(event.location); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
147 } |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
148 public void changing(LocationEvent event) { |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
149 } |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
150 }); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
151 itemBack.addListener(SWT.Selection, listener); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
152 itemForward.addListener(SWT.Selection, listener); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
153 itemStop.addListener(SWT.Selection, listener); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
154 itemRefresh.addListener(SWT.Selection, listener); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
155 itemGo.addListener(SWT.Selection, listener); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
156 location.addListener(SWT.DefaultSelection, new class() Listener { |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
157 public void handleEvent(Event e) { |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
158 browser.setUrl(location.getText()); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
159 } |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
160 }); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
161 |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
162 shell.open(); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
163 browser.setUrl("http://eclipse.org"); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
164 |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
165 while (!shell.isDisposed()) { |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
166 if (!display.readAndDispatch()) |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
167 display.sleep(); |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
168 } |
ed96ea2a2764
First swt win snippets are buiding with d2+phobos
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
169 display.dispose(); |
28 | 170 } |
171 |