annotate dwt/widgets/Dialog.d @ 259:c0d810de7093

Update SWT 3.4M7 to 3.4
author Frank Benoit <benoit@tionex.de>
date Sun, 29 Jun 2008 14:33:38 +0200
parents 5a30aa9820f3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
122
45921f44a4b2 Fix: stack access from listener in AddressBook example
Frank Benoit <benoit@tionex.de>
parents: 108
diff changeset
1 /*******************************************************************************
259
c0d810de7093 Update SWT 3.4M7 to 3.4
Frank Benoit <benoit@tionex.de>
parents: 255
diff changeset
2 * Copyright (c) 2000, 2008 IBM Corporation and others.
77
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
108
0f12f6bb9739 author notice
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
10 * Port to the D programming language:
0f12f6bb9739 author notice
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
11 * Frank Benoit <benoit@tionex.de>
77
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 module dwt.widgets.Dialog;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14
238
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 122
diff changeset
15 import dwt.dwthelper.utils;
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 122
diff changeset
16
77
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import dwt.DWT;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwt.DWTException;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import dwt.widgets.Shell;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwt.widgets.Display;
240
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
22 import dwt.widgets.Widget;
77
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 /**
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 * This class is the abstract superclass of the classes
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 * that represent the built in platform dialogs.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 * A <code>Dialog</code> typically contains other widgets
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 * that are not accessible. A <code>Dialog</code> is not
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 * a <code>Widget</code>.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 * <p>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 * This class can also be used as the abstract superclass
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 * for user-designed dialogs. Such dialogs usually consist
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 * of a Shell with child widgets. The basic template for a
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 * user-defined dialog typically looks something like this:
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 * <pre><code>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 * public class MyDialog extends Dialog {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 * Object result;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 * public MyDialog (Shell parent, int style) {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 * super (parent, style);
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 * }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 * public MyDialog (Shell parent) {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 * this (parent, 0); // your default style bits go here (not the Shell's style bits)
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 * }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 * public Object open () {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 * Shell parent = getParent();
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 * Shell shell = new Shell(parent, DWT.DIALOG_TRIM | DWT.APPLICATION_MODAL);
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 * shell.setText(getText());
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 * // Your code goes here (widget creation, set result, etc).
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 * shell.open();
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 * Display display = parent.getDisplay();
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 * while (!shell.isDisposed()) {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 * if (!display.readAndDispatch()) display.sleep();
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 * }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 * return result;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 * }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 * }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 * </pre></code>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 * <p>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 * Note: The <em>modality</em> styles supported by this class
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 * are treated as <em>HINT</em>s, because not all are supported
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 * by every subclass on every platform. If a modality style is
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 * not supported, it is "upgraded" to a more restrictive modality
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 * style that is supported. For example, if <code>PRIMARY_MODAL</code>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 * is not supported by a particular dialog, it would be upgraded to
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 * <code>APPLICATION_MODAL</code>. In addition, as is the case
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 * for shells, the window manager for the desktop on which the
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 * instance is visible has ultimate control over the appearance
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 * and behavior of the instance, including its modality.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 * <dl>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 * <dt><b>Styles:</b></dt>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 * <dd>APPLICATION_MODAL, PRIMARY_MODAL, SYSTEM_MODAL</dd>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 * <dt><b>Events:</b></dt>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 * <dd>(none)</dd>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 * </dl>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 * <p>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 * Note: Only one of the styles APPLICATION_MODAL, PRIMARY_MODAL,
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 * and SYSTEM_MODAL may be specified.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 * </p>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 * @see Shell
259
c0d810de7093 Update SWT 3.4M7 to 3.4
Frank Benoit <benoit@tionex.de>
parents: 255
diff changeset
82 * @see <a href="http://www.eclipse.org/swt/examples.php">DWT Example: ControlExample</a>
c0d810de7093 Update SWT 3.4M7 to 3.4
Frank Benoit <benoit@tionex.de>
parents: 255
diff changeset
83 * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>
77
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 */
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 public abstract class Dialog {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 int style;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 Shell parent;
238
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 122
diff changeset
89 String title;
77
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 /**
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 * Constructs a new instance of this class given only its
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 * parent.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 * @param parent a shell which will be the parent of the new instance
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 * @exception IllegalArgumentException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 * <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 */
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 public this (Shell parent) {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 this (parent, DWT.PRIMARY_MODAL);
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 /**
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 * Constructs a new instance of this class given its parent
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 * and a style value describing its behavior and appearance.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 * <p>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 * The style value is either one of the style constants defined in
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 * class <code>DWT</code> which is applicable to instances of this
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 * class, or must be built by <em>bitwise OR</em>'ing together
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 * (that is, using the <code>int</code> "|" operator) two or more
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 * of those <code>DWT</code> style constants. The class description
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 * lists the style constants that are applicable to the class.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 * Style bits are also inherited from superclasses.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 * @param parent a shell which will be the parent of the new instance
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 * @param style the style of dialog to construct
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 * @exception IllegalArgumentException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 * <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 * @see DWT#PRIMARY_MODAL
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 * @see DWT#APPLICATION_MODAL
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 * @see DWT#SYSTEM_MODAL
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 */
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 public this (Shell parent, int style) {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 checkParent (parent);
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 this.parent = parent;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 this.style = style;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 title = "";
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 /**
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 * Checks that this class can be subclassed.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 * <p>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 * IMPORTANT: See the comment in <code>Widget.checkSubclass()</code>.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 * </p>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 * <li>ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 * @see Widget#checkSubclass
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 */
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 protected void checkSubclass () {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 //PORTING_TODO: implement Display.isValidClass and Class?
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 /+if (!Display.isValidClass (getClass ())) {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 error (DWT.ERROR_INVALID_SUBCLASS);
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 }+/
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 /**
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 * Throws an exception if the specified widget can not be
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 * used as a parent for the receiver.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 * @exception IllegalArgumentException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 * <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 * <li>ERROR_INVALID_ARGUMENT - if the parent is disposed</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 */
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 void checkParent (Shell parent) {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 if (parent is null) error (DWT.ERROR_NULL_ARGUMENT);
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 parent.checkWidget ();
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176
240
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
177 static int checkStyle (Shell parent, int style) {
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
178 if ((style & (DWT.PRIMARY_MODAL | DWT.APPLICATION_MODAL | DWT.SYSTEM_MODAL)) is 0) {
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
179 style |= DWT.APPLICATION_MODAL;
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
180 }
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
181 style &= ~DWT.MIRRORED;
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
182 if ((style & (DWT.LEFT_TO_RIGHT | DWT.RIGHT_TO_LEFT)) is 0) {
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
183 if (parent !is null) {
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
184 if ((parent.style & DWT.LEFT_TO_RIGHT) !is 0) style |= DWT.LEFT_TO_RIGHT;
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
185 if ((parent.style & DWT.RIGHT_TO_LEFT) !is 0) style |= DWT.RIGHT_TO_LEFT;
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
186 }
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
187 }
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
188 return Widget.checkBits (style, DWT.LEFT_TO_RIGHT, DWT.RIGHT_TO_LEFT, 0, 0, 0, 0);
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
189 }
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
190
77
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 /**
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 * Does whatever dialog specific cleanup is required, and then
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 * uses the code in <code>DWTError.error</code> to handle the error.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 * @param code the descriptive error code
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 * @see DWT#error(int)
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 */
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 void error (int code) {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200 DWT.error(code);
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 /**
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204 * Returns the receiver's parent, which must be a <code>Shell</code>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 * or null.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 * @return the receiver's parent
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 */
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 public Shell getParent () {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 return parent;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 /**
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219 * Returns the receiver's style information.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 * <p>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 * Note that, the value which is returned by this method <em>may
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 * not match</em> the value which was provided to the constructor
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 * when the receiver was created.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224 * </p>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226 * @return the style bits
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232 */
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233 public int getStyle () {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234 return style;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237 /**
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 * Returns the receiver's text, which is the string that the
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239 * window manager will typically display as the receiver's
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 * <em>title</em>. If the text has not previously been set,
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241 * returns an empty string.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 * @return the text
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249 */
238
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 122
diff changeset
250 public String getText () {
77
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
251 return title;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
252 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 /**
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
255 * Sets the receiver's text, which is the string that the
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
256 * window manager will typically display as the receiver's
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
257 * <em>title</em>, to the argument, which must not be null.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
259 * @param string the new text
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
263 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
265 */
238
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 122
diff changeset
266 public void setText (String string) {
255
5a30aa9820f3 removed tango.stdc.stringz imports and allow null for arrays and string arguments.
Frank Benoit <benoit@tionex.de>
parents: 240
diff changeset
267 // DWT extension: allow null for zero length string
5a30aa9820f3 removed tango.stdc.stringz imports and allow null for arrays and string arguments.
Frank Benoit <benoit@tionex.de>
parents: 240
diff changeset
268 //if (string is null) error (DWT.ERROR_NULL_ARGUMENT);
77
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
269 title = string;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
270 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
271
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
272 }