annotate dwt/widgets/Dialog.d @ 240:ce446666f5a2

Update to SWT 3.4M7
author Frank Benoit <benoit@tionex.de>
date Mon, 12 May 2008 19:13:01 +0200
parents 380bad9f6852
children 5a30aa9820f3
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 /*******************************************************************************
77
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2000, 2005 IBM Corporation and others.
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
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 */
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 public abstract class Dialog {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 int style;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 Shell parent;
238
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 122
diff changeset
87 String title;
77
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 /**
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 * Constructs a new instance of this class given only its
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 * parent.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 * @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
94 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 * @exception IllegalArgumentException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 * <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 * <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
100 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 */
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 public this (Shell parent) {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 this (parent, DWT.PRIMARY_MODAL);
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105
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 * Constructs a new instance of this class given its parent
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 * and a style value describing its behavior and appearance.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 * <p>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 * The style value is either one of the style constants defined in
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 * class <code>DWT</code> which is applicable to instances of this
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 * class, or must be built by <em>bitwise OR</em>'ing together
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 * (that is, using the <code>int</code> "|" operator) two or more
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 * of those <code>DWT</code> style constants. The class description
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 * lists the style constants that are applicable to the class.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 * Style bits are also inherited from superclasses.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 * @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
119 * @param style the style of dialog to construct
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 * @exception IllegalArgumentException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 * <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 * <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
126 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 * @see DWT#PRIMARY_MODAL
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 * @see DWT#APPLICATION_MODAL
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 * @see DWT#SYSTEM_MODAL
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 */
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 public this (Shell parent, int style) {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 checkParent (parent);
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 this.parent = parent;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 this.style = style;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 title = "";
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138
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 * Checks that this class can be subclassed.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 * <p>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 * IMPORTANT: See the comment in <code>Widget.checkSubclass()</code>.
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 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 * <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
147 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 * @see Widget#checkSubclass
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 protected void checkSubclass () {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 //PORTING_TODO: implement Display.isValidClass and Class?
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 /+if (!Display.isValidClass (getClass ())) {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 error (DWT.ERROR_INVALID_SUBCLASS);
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 }+/
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 }
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 * Throws an exception if the specified widget can not be
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 * used as a parent for the receiver.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 * @exception IllegalArgumentException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 * <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 * <li>ERROR_INVALID_ARGUMENT - if the parent is disposed</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 * <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
168 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 */
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 void checkParent (Shell parent) {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 if (parent is null) error (DWT.ERROR_NULL_ARGUMENT);
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 parent.checkWidget ();
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174
240
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
175 static int checkStyle (Shell parent, int style) {
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
176 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
177 style |= DWT.APPLICATION_MODAL;
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
178 }
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
179 style &= ~DWT.MIRRORED;
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
180 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
181 if (parent !is null) {
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
182 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
183 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
184 }
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
185 }
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
186 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
187 }
ce446666f5a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 238
diff changeset
188
77
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 /**
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 * Does whatever dialog specific cleanup is required, and then
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 * uses the code in <code>DWTError.error</code> to handle the error.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 * @param code the descriptive error code
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 * @see DWT#error(int)
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 void error (int code) {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 DWT.error(code);
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200
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 * Returns the receiver's parent, which must be a <code>Shell</code>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 * or null.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 * @return the receiver's parent
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 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 * <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
210 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 */
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 public Shell getParent () {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 return parent;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215
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 * Returns the receiver's style information.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 * <p>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219 * Note that, the value which is returned by this method <em>may
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 * not match</em> the value which was provided to the constructor
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 * when the receiver was created.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 * </p>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224 * @return the style bits
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 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 * <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
229 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230 */
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231 public int getStyle () {
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232 return style;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234
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 * Returns the receiver's text, which is the string that the
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237 * window manager will typically display as the receiver's
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 * <em>title</em>. If the text has not previously been set,
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239 * returns an empty string.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241 * @return the text
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 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245 * <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
246 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247 */
238
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 122
diff changeset
248 public String getText () {
77
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249 return title;
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
250 }
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
251
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 * Sets the receiver's text, which is the string that the
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 * window manager will typically display as the receiver's
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
255 * <em>title</em>, to the argument, which must not be null.
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
256 *
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
257 * @param string the new text
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 * @exception IllegalArgumentException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260 * <li>ERROR_NULL_ARGUMENT - if the text is null</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262 * @exception DWTException <ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
263 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 * <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
265 * </ul>
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
266 */
238
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 122
diff changeset
267 public void setText (String string) {
77
5f2f175327bc Dialog and ColorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
268 if (string is null) error (DWT.ERROR_NULL_ARGUMENT);
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 }