annotate dwt/widgets/Decorations.d @ 238:380bad9f6852

reverted char[] to String
author Frank Benoit <benoit@tionex.de>
date Mon, 05 May 2008 00:42:55 +0200
parents 08789b28bdf3
children 5a30aa9820f3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
72
5899e0b43e5d porting notice
Frank Benoit <benoit@tionex.de>
parents: 71
diff changeset
1 /*******************************************************************************
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2000, 2007 IBM Corporation and others.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
72
5899e0b43e5d porting notice
Frank Benoit <benoit@tionex.de>
parents: 71
diff changeset
10 * Port to the D programming language:
5899e0b43e5d porting notice
Frank Benoit <benoit@tionex.de>
parents: 71
diff changeset
11 * Frank Benoit <benoit@tionex.de>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 module dwt.widgets.Decorations;
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 import dwt.widgets.Control;
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwt.widgets.Menu;
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 import dwt.widgets.Composite;
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
19 import dwt.DWT;
37
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
20 import dwt.internal.gtk.OS;
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
21 //import dwt.graphics.;
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
22 import dwt.widgets.Canvas;
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
23 import dwt.graphics.Image;
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
24 import dwt.graphics.ImageData;
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
25 import dwt.widgets.Control;
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
26 import dwt.widgets.Display;
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
27 import dwt.widgets.Widget;
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
28 import dwt.widgets.Button;
200
08789b28bdf3 import dwt.dwthelper.utils now explicit
Frank Benoit <benoit@tionex.de>
parents: 189
diff changeset
29 import dwt.dwthelper.utils;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 * Instances of this class provide the appearance and
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 * behavior of <code>Shells</code>, but are not top
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 * level shells or dialogs. Class <code>Shell</code>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 * shares a significant amount of code with this class,
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 * and is a subclass.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 * <p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 * IMPORTANT: This class was intended to be abstract and
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 * should <em>never</em> be referenced or instantiated.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 * Instead, the class <code>Shell</code> should be used.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 * </p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 * <p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 * Instances are always displayed in one of the maximized,
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 * minimized or normal states:
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 * <ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 * <li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 * When an instance is marked as <em>maximized</em>, the
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 * window manager will typically resize it to fill the
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 * entire visible area of the display, and the instance
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 * is usually put in a state where it can not be resized
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 * (even if it has style <code>RESIZE</code>) until it is
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 * no longer maximized.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 * </li><li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 * When an instance is in the <em>normal</em> state (neither
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 * maximized or minimized), its appearance is controlled by
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 * the style constants which were specified when it was created
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 * and the restrictions of the window manager (see below).
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 * </li><li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 * When an instance has been marked as <em>minimized</em>,
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 * its contents (client area) will usually not be visible,
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 * and depending on the window manager, it may be
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 * "iconified" (that is, replaced on the desktop by a small
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 * simplified representation of itself), relocated to a
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 * distinguished area of the screen, or hidden. Combinations
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 * of these changes are also possible.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 * </li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 * </p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 * Note: The styles supported by this class must be treated
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 * as <em>HINT</em>s, since the window manager for the
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 * desktop on which the instance is visible has ultimate
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 * control over the appearance and behavior of decorations.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 * For example, some window managers only support resizable
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 * windows and will always assume the RESIZE style, even if
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 * it is not set.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 * <dl>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 * <dt><b>Styles:</b></dt>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 * <dd>BORDER, CLOSE, MIN, MAX, NO_TRIM, RESIZE, TITLE, ON_TOP, TOOL</dd>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 * <dt><b>Events:</b></dt>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 * <dd>(none)</dd>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 * </dl>
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
82 * Class <code>DWT</code> provides two "convenience constants"
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 * for the most commonly required style combinations:
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 * <dl>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 * <dt><code>SHELL_TRIM</code></dt>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 * <dd>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 * the result of combining the constants which are required
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 * to produce a typical application top level shell: (that
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 * is, <code>CLOSE | TITLE | MIN | MAX | RESIZE</code>)
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 * </dd>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 * <dt><code>DIALOG_TRIM</code></dt>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 * <dd>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 * the result of combining the constants which are required
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 * to produce a typical application dialog shell: (that
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 * is, <code>TITLE | CLOSE | BORDER</code>)
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 * </dd>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 * </dl>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 * <p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 * IMPORTANT: This class is intended to be subclassed <em>only</em>
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
100 * within the DWT implementation.
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 * </p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 * @see #getMinimized
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 * @see #getMaximized
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 * @see Shell
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
106 * @see DWT
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 */
37
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
108 public class Decorations : Canvas {
150
f2e04420fd6c reworked overrides and superclass aliases
Frank Benoit <benoit@tionex.de>
parents: 72
diff changeset
109
f2e04420fd6c reworked overrides and superclass aliases
Frank Benoit <benoit@tionex.de>
parents: 72
diff changeset
110 alias Canvas.sort sort;
f2e04420fd6c reworked overrides and superclass aliases
Frank Benoit <benoit@tionex.de>
parents: 72
diff changeset
111
238
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 200
diff changeset
112 String text;
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
113 Image image;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
114 Image [] images;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
115 bool minimized, maximized;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
116 Menu menuBar;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
117 Menu [] menus;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
118 Control savedFocus;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
119 Button defaultButton, saveDefault;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
120 GtkAccelGroup* accelGroup;
38
6e625fa1612d Shell, some code left
Frank Benoit <benoit@tionex.de>
parents: 37
diff changeset
121 GtkWidget* vboxHandle;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122
37
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
123 this () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
124 /* Do nothing */
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 * Constructs a new instance of this class given its parent
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 * and a style value describing its behavior and appearance.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 * <p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 * The style value is either one of the style constants defined in
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
132 * class <code>DWT</code> which is applicable to instances of this
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 * class, or must be built by <em>bitwise OR</em>'ing together
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 * (that is, using the <code>int</code> "|" operator) two or more
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
135 * of those <code>DWT</code> style constants. The class description
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 * lists the style constants that are applicable to the class.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 * Style bits are also inherited from superclasses.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 * </p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 * @param parent a composite control which will be the parent of the new instance (cannot be null)
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 * @param style the style of control to construct
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 * @exception IllegalArgumentException <ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 * <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 * </ul>
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
146 * @exception DWTException <ul>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 * <li>ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 *
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
151 * @see DWT#BORDER
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
152 * @see DWT#CLOSE
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
153 * @see DWT#MIN
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
154 * @see DWT#MAX
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
155 * @see DWT#RESIZE
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
156 * @see DWT#TITLE
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
157 * @see DWT#NO_TRIM
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
158 * @see DWT#SHELL_TRIM
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
159 * @see DWT#DIALOG_TRIM
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
160 * @see DWT#ON_TOP
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
161 * @see DWT#TOOL
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 * @see Widget#checkSubclass
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 * @see Widget#getStyle
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 */
37
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
165 public this (Composite parent, int style) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
166 super (parent, checkStyle (style));
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 static int checkStyle (int style) {
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
170 if ((style & DWT.NO_TRIM) !is 0) {
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
171 style &= ~(DWT.CLOSE | DWT.TITLE | DWT.MIN | DWT.MAX | DWT.RESIZE | DWT.BORDER);
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
172 }
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
173 if ((style & (DWT.MENU | DWT.MIN | DWT.MAX | DWT.CLOSE)) !is 0) {
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
174 style |= DWT.TITLE;
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
175 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
176 return style;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178
58
a5c274fa5af9 extended helloworld crashing
Frank Benoit <benoit@tionex.de>
parents: 38
diff changeset
179 override protected void checkSubclass () {
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
180 if (!isValidSubclass ()) error (DWT.ERROR_INVALID_SUBCLASS);
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 void _setImages (Image [] images) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
184 if (images !is null && images.length > 1) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
185 Image [] bestImages = new Image [images.length];
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
186 System.arraycopy (images, 0, bestImages, 0, images.length);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
187 sort (bestImages);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
188 images = bestImages;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
189 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
190 GList* pixbufs;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
191 if (images !is null) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
192 for (int i = 0; i < images.length; i++) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
193 Image image = images [i];
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
194 auto pixbuf = Display.createPixbuf (image);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
195 pixbufs = OS.g_list_append (pixbufs, pixbuf);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
196 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
197 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
198 OS.gtk_window_set_icon_list (cast(GtkWindow*)topHandle (), pixbufs);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
199 GList* data;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
200 auto temp = pixbufs;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
201 while (temp !is null) {
189
ac6ff7065cac Fix: pointer porting, thanks WasserDragon for the hint.
Frank Benoit <benoit@tionex.de>
parents: 150
diff changeset
202 data = *cast(GList**)temp;
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
203 OS.g_object_unref (data);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
204 temp = cast(GList*)OS.g_list_next (temp);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
205 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
206 if (pixbufs !is null) OS.g_list_free (pixbufs);
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 void addMenu (Menu menu) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
210 if (menus is null) menus = new Menu [4];
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
211 for (int i=0; i<menus.length; i++) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
212 if (menus [i] is null) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
213 menus [i] = menu;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
214 return;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
215 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
216 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
217 Menu [] newMenus = new Menu [menus.length + 4];
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
218 newMenus [menus.length] = menu;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
219 System.arraycopy (menus, 0, newMenus, 0, menus.length);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
220 menus = newMenus;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 int compare (ImageData data1, ImageData data2) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
224 if (data1.width is data2.width && data1.height is data2.height) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
225 int transparent1 = data1.getTransparencyType ();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
226 int transparent2 = data2.getTransparencyType ();
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
227 if (transparent1 is DWT.TRANSPARENCY_ALPHA) return -1;
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
228 if (transparent2 is DWT.TRANSPARENCY_ALPHA) return 1;
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
229 if (transparent1 is DWT.TRANSPARENCY_MASK) return -1;
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
230 if (transparent2 is DWT.TRANSPARENCY_MASK) return 1;
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
231 if (transparent1 is DWT.TRANSPARENCY_PIXEL) return -1;
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
232 if (transparent2 is DWT.TRANSPARENCY_PIXEL) return 1;
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
233 return 0;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
234 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
235 return data1.width > data2.width || data1.height > data2.height ? -1 : 1;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237
58
a5c274fa5af9 extended helloworld crashing
Frank Benoit <benoit@tionex.de>
parents: 38
diff changeset
238 override Control computeTabGroup () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
239 return this;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241
58
a5c274fa5af9 extended helloworld crashing
Frank Benoit <benoit@tionex.de>
parents: 38
diff changeset
242 override Control computeTabRoot () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
243 return this;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 void createAccelGroup () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
247 if (accelGroup !is null) return;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
248 accelGroup = OS.gtk_accel_group_new ();
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
249 if (accelGroup is null) DWT.error (DWT.ERROR_NO_HANDLES);
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
250 //FIXME - what should we do for Decorations
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
251 auto shellHandle = topHandle ();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
252 OS.gtk_window_add_accel_group (cast(GtkWindow*)shellHandle, accelGroup);
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254
58
a5c274fa5af9 extended helloworld crashing
Frank Benoit <benoit@tionex.de>
parents: 38
diff changeset
255 override void createWidget (int index) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
256 super.createWidget (index);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
257 text = "";
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
259
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260 void destroyAccelGroup () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
261 if (accelGroup is null) return;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
262 auto shellHandle = topHandle ();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
263 OS.gtk_window_remove_accel_group (cast(GtkWindow*)shellHandle, accelGroup);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
264 //TEMPORARY CODE
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
265 // OS.g_object_unref (accelGroup);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
266 accelGroup = null;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
267 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
268
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
269 void fixAccelGroup () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
270 if (menuBar is null) return;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
271 destroyAccelGroup ();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
272 createAccelGroup ();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
273 menuBar.addAccelerators (accelGroup);
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
274 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
275
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
276 void fixDecorations (Decorations newDecorations, Control control, Menu [] menus) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
277 if (this is newDecorations) return;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
278 if (control is savedFocus) savedFocus = null;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
279 if (control is defaultButton) defaultButton = null;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
280 if (control is saveDefault) saveDefault = null;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
281 if (menus is null) return;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
282 Menu menu = control.menu;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
283 if (menu !is null) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
284 int index = 0;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
285 while (index <menus.length) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
286 if (menus [index] is menu) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
287 control.setMenu (null);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
288 return;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
289 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
290 index++;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
291 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
292 menu.fixMenus (newDecorations);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
293 }
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
294 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
295
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
296 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
297 * Returns the receiver's default button if one had
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
298 * previously been set, otherwise returns null.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
299 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
300 * @return the default button or null
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
301 *
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
302 * @exception DWTException <ul>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
303 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
304 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
305 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
306 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
307 * @see #setDefaultButton(Button)
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
308 */
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
309 public Button getDefaultButton () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
310 checkWidget();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
311 return defaultButton !is null ? defaultButton : saveDefault;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
312 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
313
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
314 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
315 * Returns the receiver's image if it had previously been
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
316 * set using <code>setImage()</code>. The image is typically
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
317 * displayed by the window manager when the instance is
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
318 * marked as iconified, and may also be displayed somewhere
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
319 * in the trim when the instance is in normal or maximized
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
320 * states.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
321 * <p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
322 * Note: This method will return null if called before
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
323 * <code>setImage()</code> is called. It does not provide
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
324 * access to a window manager provided, "default" image
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
325 * even if one exists.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
326 * </p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
327 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
328 * @return the image
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
329 *
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
330 * @exception DWTException <ul>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
331 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
332 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
333 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
334 */
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
335 public Image getImage () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
336 checkWidget ();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
337 return image;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
338 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
339
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
340 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
341 * Returns the receiver's images if they had previously been
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
342 * set using <code>setImages()</code>. Images are typically
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
343 * displayed by the window manager when the instance is
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
344 * marked as iconified, and may also be displayed somewhere
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
345 * in the trim when the instance is in normal or maximized
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
346 * states. Depending where the icon is displayed, the platform
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
347 * chooses the icon with the "best" attributes. It is expected
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
348 * that the array will contain the same icon rendered at different
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
349 * sizes, with different depth and transparency attributes.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
350 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
351 * <p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
352 * Note: This method will return an empty array if called before
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
353 * <code>setImages()</code> is called. It does not provide
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
354 * access to a window manager provided, "default" image
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
355 * even if one exists.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
356 * </p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
357 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
358 * @return the images
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
359 *
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
360 * @exception DWTException <ul>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
361 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
362 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
363 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
364 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
365 * @since 3.0
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
366 */
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
367 public Image [] getImages () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
368 checkWidget ();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
369 if (images is null) return new Image [0];
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
370 Image [] result = new Image [images.length];
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
371 System.arraycopy (images, 0, result, 0, images.length);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
372 return result;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
373 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
374
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
375 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
376 * Returns <code>true</code> if the receiver is currently
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
377 * maximized, and false otherwise.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
378 * <p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
379 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
380 * @return the maximized state
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
381 *
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
382 * @exception DWTException <ul>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
383 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
384 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
385 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
386 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
387 * @see #setMaximized
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
388 */
37
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
389 public bool getMaximized () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
390 checkWidget();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
391 return maximized;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
392 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
393
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
394 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
395 * Returns the receiver's menu bar if one had previously
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
396 * been set, otherwise returns null.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
397 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
398 * @return the menu bar or null
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
399 *
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
400 * @exception DWTException <ul>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
401 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
402 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
403 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
404 */
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
405 public Menu getMenuBar () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
406 checkWidget();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
407 return menuBar;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
408 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
409
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
410 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
411 * Returns <code>true</code> if the receiver is currently
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
412 * minimized, and false otherwise.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
413 * <p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
414 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
415 * @return the minimized state
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
416 *
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
417 * @exception DWTException <ul>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
418 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
419 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
420 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
421 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
422 * @see #setMinimized
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
423 */
37
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
424 public bool getMinimized () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
425 checkWidget();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
426 return minimized;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
427 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
428
238
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 200
diff changeset
429 override String getNameText () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
430 return getText ();
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
431 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
432
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
433 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
434 * Returns the receiver's text, which is the string that the
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
435 * window manager will typically display as the receiver's
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
436 * <em>title</em>. If the text has not previously been set,
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
437 * returns an empty string.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
438 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
439 * @return the text
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
440 *
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
441 * @exception DWTException <ul>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
442 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
443 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
444 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
445 */
238
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 200
diff changeset
446 public String getText () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
447 checkWidget();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
448 return text;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
449 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
450
58
a5c274fa5af9 extended helloworld crashing
Frank Benoit <benoit@tionex.de>
parents: 38
diff changeset
451 override public bool isReparentable () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
452 checkWidget ();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
453 return false;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
454 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
455
58
a5c274fa5af9 extended helloworld crashing
Frank Benoit <benoit@tionex.de>
parents: 38
diff changeset
456 override bool isTabGroup () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
457 return true;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
458 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
459
58
a5c274fa5af9 extended helloworld crashing
Frank Benoit <benoit@tionex.de>
parents: 38
diff changeset
460 override bool isTabItem () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
461 return false;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
462 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
463
58
a5c274fa5af9 extended helloworld crashing
Frank Benoit <benoit@tionex.de>
parents: 38
diff changeset
464 override Decorations menuShell () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
465 return this;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
466 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
467
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
468 void removeMenu (Menu menu) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
469 if (menus is null) return;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
470 for (int i=0; i<menus.length; i++) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
471 if (menus [i] is menu) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
472 menus [i] = null;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
473 return;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
474 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
475 }
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
476 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
477
58
a5c274fa5af9 extended helloworld crashing
Frank Benoit <benoit@tionex.de>
parents: 38
diff changeset
478 override void releaseChildren (bool destroy) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
479 if (menuBar !is null) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
480 menuBar.release (false);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
481 menuBar = null;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
482 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
483 super.releaseChildren (destroy);
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
484 if (menus !is null) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
485 for (int i=0; i<menus.length; i++) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
486 Menu menu = menus [i];
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
487 if (menu !is null && !menu.isDisposed ()) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
488 menu.dispose ();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
489 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
490 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
491 menus = null;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
492 }
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
493 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
494
58
a5c274fa5af9 extended helloworld crashing
Frank Benoit <benoit@tionex.de>
parents: 38
diff changeset
495 override void releaseHandle () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
496 super.releaseHandle ();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
497 vboxHandle = null;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
498 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
499
58
a5c274fa5af9 extended helloworld crashing
Frank Benoit <benoit@tionex.de>
parents: 38
diff changeset
500 override void releaseWidget () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
501 super.releaseWidget ();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
502 image = null;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
503 images = null;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
504 savedFocus = null;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
505 defaultButton = saveDefault = null;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
506 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
507
37
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
508 bool restoreFocus () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
509 if (savedFocus !is null && savedFocus.isDisposed ()) savedFocus = null;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
510 bool restored = savedFocus !is null && savedFocus.setFocus ();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
511 savedFocus = null;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
512 /*
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
513 * This code is intentionally commented. When no widget
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
514 * has been given focus, some platforms give focus to the
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
515 * default button. Motif doesn't do this.
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
516 */
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
517 // if (restored) return true;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
518 // if (defaultButton !is null && !defaultButton.isDisposed ()) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
519 // if (defaultButton.setFocus ()) return true;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
520 // }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
521 // return false;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
522 return restored;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
523 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
524
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
525 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
526 * If the argument is not null, sets the receiver's default
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
527 * button to the argument, and if the argument is null, sets
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
528 * the receiver's default button to the first button which
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
529 * was set as the receiver's default button (called the
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
530 * <em>saved default button</em>). If no default button had
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
531 * previously been set, or the saved default button was
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
532 * disposed, the receiver's default button will be set to
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
533 * null.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
534 * <p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
535 * The default button is the button that is selected when
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
536 * the receiver is active and the user presses ENTER.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
537 * </p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
538 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
539 * @param button the new default button
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
540 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
541 * @exception IllegalArgumentException <ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
542 * <li>ERROR_INVALID_ARGUMENT - if the button has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
543 * <li>ERROR_INVALID_PARENT - if the control is not in the same widget tree</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
544 * </ul>
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
545 * @exception DWTException <ul>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
546 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
547 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
548 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
549 */
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
550 public void setDefaultButton (Button button) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
551 checkWidget();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
552 GtkWidget* buttonHandle;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
553 if (button !is null) {
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
554 if (button.isDisposed ()) error (DWT.ERROR_INVALID_ARGUMENT);
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
555 if (button.menuShell () !is this) error (DWT.ERROR_INVALID_PARENT);
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
556 buttonHandle = button.handle;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
557 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
558 saveDefault = defaultButton = button;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
559 OS.gtk_window_set_default (cast(GtkWindow*)topHandle (), buttonHandle);
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
560 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
561
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
562 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
563 * Sets the receiver's image to the argument, which may
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
564 * be null. The image is typically displayed by the window
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
565 * manager when the instance is marked as iconified, and
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
566 * may also be displayed somewhere in the trim when the
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
567 * instance is in normal or maximized states.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
568 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
569 * @param image the new image (or null)
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
570 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
571 * @exception IllegalArgumentException <ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
572 * <li>ERROR_INVALID_ARGUMENT - if the image has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
573 * </ul>
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
574 * @exception DWTException <ul>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
575 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
576 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
577 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
578 */
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
579 public void setImage (Image image) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
580 checkWidget ();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
581 this.image = image;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
582 _setImages (image !is null ? [image] : null);
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
583 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
584
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
585 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
586 * Sets the receiver's images to the argument, which may
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
587 * be an empty array. Images are typically displayed by the
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
588 * window manager when the instance is marked as iconified,
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
589 * and may also be displayed somewhere in the trim when the
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
590 * instance is in normal or maximized states. Depending where
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
591 * the icon is displayed, the platform chooses the icon with
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
592 * the "best" attributes. It is expected that the array will
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
593 * contain the same icon rendered at different sizes, with
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
594 * different depth and transparency attributes.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
595 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
596 * @param images the new image array
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
597 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
598 * @exception IllegalArgumentException <ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
599 * <li>ERROR_NULL_ARGUMENT - if the array of images is null</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
600 * <li>ERROR_INVALID_ARGUMENT - if one of the images is null or has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
601 * </ul>
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
602 * @exception DWTException <ul>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
603 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
604 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
605 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
606 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
607 * @since 3.0
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
608 */
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
609 public void setImages (Image [] images) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
610 checkWidget ();
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
611 if (images is null) error (DWT.ERROR_INVALID_ARGUMENT);
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
612 for (int i = 0; i < images.length; i++) {
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
613 if (images [i] is null || images [i].isDisposed ()) error (DWT.ERROR_INVALID_ARGUMENT);
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
614 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
615 this.images = images;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
616 _setImages (images);
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
617 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
618
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
619 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
620 * Sets the maximized state of the receiver.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
621 * If the argument is <code>true</code> causes the receiver
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
622 * to switch to the maximized state, and if the argument is
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
623 * <code>false</code> and the receiver was previously maximized,
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
624 * causes the receiver to switch back to either the minimized
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
625 * or normal states.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
626 * <p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
627 * Note: The result of intermixing calls to <code>setMaximized(true)</code>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
628 * and <code>setMinimized(true)</code> will vary by platform. Typically,
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
629 * the behavior will match the platform user's expectations, but not
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
630 * always. This should be avoided if possible.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
631 * </p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
632 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
633 * @param maximized the new maximized state
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
634 *
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
635 * @exception DWTException <ul>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
636 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
637 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
638 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
639 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
640 * @see #setMinimized
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
641 */
37
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
642 public void setMaximized (bool maximized) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
643 checkWidget();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
644 this.maximized = maximized;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
645 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
646
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
647 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
648 * Sets the receiver's menu bar to the argument, which
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
649 * may be null.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
650 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
651 * @param menu the new menu bar
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
652 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
653 * @exception IllegalArgumentException <ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
654 * <li>ERROR_INVALID_ARGUMENT - if the menu has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
655 * <li>ERROR_INVALID_PARENT - if the menu is not in the same widget tree</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
656 * </ul>
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
657 * @exception DWTException <ul>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
658 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
659 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
660 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
661 */
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
662 public void setMenuBar (Menu menu) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
663 checkWidget();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
664 if (menuBar is menu) return;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
665 if (menu !is null) {
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
666 if ((menu.style & DWT.BAR) is 0) error (DWT.ERROR_MENU_NOT_BAR);
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
667 if (menu.parent !is this) error (DWT.ERROR_INVALID_PARENT);
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
668 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
669 menuBar = menu;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
670 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
671
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
672 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
673 * Sets the minimized stated of the receiver.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
674 * If the argument is <code>true</code> causes the receiver
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
675 * to switch to the minimized state, and if the argument is
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
676 * <code>false</code> and the receiver was previously minimized,
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
677 * causes the receiver to switch back to either the maximized
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
678 * or normal states.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
679 * <p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
680 * Note: The result of intermixing calls to <code>setMaximized(true)</code>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
681 * and <code>setMinimized(true)</code> will vary by platform. Typically,
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
682 * the behavior will match the platform user's expectations, but not
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
683 * always. This should be avoided if possible.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
684 * </p>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
685 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
686 * @param minimized the new maximized state
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
687 *
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
688 * @exception DWTException <ul>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
689 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
690 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
691 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
692 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
693 * @see #setMaximized
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
694 */
37
c86fc3d50cfa Decorations
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
695 public void setMinimized (bool minimized) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
696 checkWidget();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
697 this.minimized = minimized;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
698 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
699
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
700 void setSavedFocus (Control control) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
701 if (this is control) return;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
702 savedFocus = control;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
703 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
704
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
705 /**
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
706 * Sets the receiver's text, which is the string that the
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
707 * window manager will typically display as the receiver's
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
708 * <em>title</em>, to the argument, which must not be null.
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
709 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
710 * @param string the new text
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
711 *
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
712 * @exception IllegalArgumentException <ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
713 * <li>ERROR_NULL_ARGUMENT - if the text is null</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
714 * </ul>
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
715 * @exception DWTException <ul>
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
716 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
717 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
718 * </ul>
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
719 */
238
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 200
diff changeset
720 public void setText (String string) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
721 checkWidget();
71
295b29fc7d13 Renamed SWT to DWT
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
722 if (string is null) error (DWT.ERROR_NULL_ARGUMENT);
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
723 text = string;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
724 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
725
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
726 void sort (Image [] images) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
727 /* Shell Sort from K&R, pg 108 */
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
728 int length = images.length;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
729 if (length <= 1) return;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
730 ImageData [] datas = new ImageData [length];
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
731 for (int i = 0; i < length; i++) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
732 datas [i] = images [i].getImageData ();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
733 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
734 for (int gap=length/2; gap>0; gap/=2) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
735 for (int i=gap; i<length; i++) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
736 for (int j=i-gap; j>=0; j-=gap) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
737 if (compare (datas [j], datas [j + gap]) >= 0) {
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
738 Image swap = images [j];
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
739 images [j] = images [j + gap];
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
740 images [j + gap] = swap;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
741 ImageData swapData = datas [j];
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
742 datas [j] = datas [j + gap];
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
743 datas [j + gap] = swapData;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
744 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
745 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
746 }
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
747 }
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
748 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
749
58
a5c274fa5af9 extended helloworld crashing
Frank Benoit <benoit@tionex.de>
parents: 38
diff changeset
750 override bool traverseItem (bool next) {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
751 return false;
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
752 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
753
58
a5c274fa5af9 extended helloworld crashing
Frank Benoit <benoit@tionex.de>
parents: 38
diff changeset
754 override bool traverseReturn () {
59
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
755 Button button = defaultButton !is null ? defaultButton: saveDefault;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
756 if (button is null || button.isDisposed ()) return false;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
757 /*
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
758 * Bug in GTK. When a default button that is disabled is
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
759 * activated using the Enter key, GTK GP's. The fix is to
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
760 * detect this case and stop GTK from processing the Enter
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
761 * key.
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
762 */
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
763 if (!button.isVisible () || !button.isEnabled ()) return true;
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
764 auto shellHandle = _getShell ().topHandle ();
8cec8f536af3 All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
Frank Benoit <benoit@tionex.de>
parents: 58
diff changeset
765 return cast(bool)OS.gtk_window_activate_default (cast(GtkWindow*)shellHandle);
30
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
766 }
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
767
5e5d1c9cffdb ATK, Control
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
768 }