annotate dwtx/ui/forms/widgets/FormToolkit.d @ 85:56fea7e5f0f9

Fix some runtime errors
author Frank Benoit <benoit@tionex.de>
date Fri, 20 Jun 2008 14:48:17 +0200
parents 5d489b9f966c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
75
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2000, 2007 IBM Corporation and others.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Michael Williamson (eclipse-bugs@magnaworks.com) - patch (see Bugzilla #92545)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * Port to the D programming language:
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 * Frank Benoit <benoit@tionex.de>
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 *******************************************************************************/
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14 module dwtx.ui.forms.widgets.FormToolkit;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwtx.ui.forms.widgets.Hyperlink;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 import dwtx.ui.forms.widgets.ImageHyperlink;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import dwtx.ui.forms.widgets.ExpandableComposite;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwtx.ui.forms.widgets.Form;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import dwtx.ui.forms.widgets.ScrolledPageBook;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwtx.ui.forms.widgets.ScrolledForm;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import dwtx.ui.forms.widgets.FormText;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import dwtx.ui.forms.widgets.Section;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import dwtx.ui.forms.widgets.LayoutComposite;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import dwt.DWT;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import dwt.custom.CCombo;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import dwt.custom.ScrolledComposite;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 import dwt.events.FocusAdapter;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 import dwt.events.FocusEvent;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 import dwt.events.KeyAdapter;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 import dwt.events.KeyEvent;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 import dwt.events.MouseAdapter;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 import dwt.events.MouseEvent;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 import dwt.events.PaintEvent;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 import dwt.events.PaintListener;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 import dwt.graphics.Color;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 import dwt.graphics.Font;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 import dwt.graphics.GC;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 import dwt.graphics.Point;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 import dwt.graphics.RGB;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 import dwt.graphics.Rectangle;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 import dwt.widgets.Button;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 import dwt.widgets.Composite;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 import dwt.widgets.Control;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 import dwt.widgets.Display;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 import dwt.widgets.Event;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 import dwt.widgets.Label;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 import dwt.widgets.Listener;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 import dwt.widgets.Table;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 import dwt.widgets.Text;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 import dwt.widgets.Tree;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 import dwt.widgets.Widget;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 import dwtx.jface.resource.JFaceResources;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 import dwtx.jface.window.Window;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 import dwtx.ui.forms.FormColors;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 import dwtx.ui.forms.HyperlinkGroup;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 import dwtx.ui.forms.IFormColors;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 import dwtx.ui.internal.forms.widgets.FormFonts;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 import dwtx.ui.internal.forms.widgets.FormUtil;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 import dwt.dwthelper.utils;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 * The toolkit is responsible for creating DWT controls adapted to work in
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 * Eclipse forms. In addition to changing their presentation properties (fonts,
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 * colors etc.), various listeners are attached to make them behave correctly in
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 * the form context.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 * <p>
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 * In addition to being the control factory, the toolkit is also responsible for
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 * painting flat borders for select controls, managing hyperlink groups and
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 * control colors.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 * <p>
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 * The toolkit creates some of the most common controls used to populate Eclipse
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 * forms. Controls that must be created using their constructors,
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 * <code>adapt()</code> method is available to change its properties in the
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 * same way as with the supported toolkit controls.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 * <p>
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 * Typically, one toolkit object is created per workbench part (for example, an
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 * editor or a form wizard). The toolkit is disposed when the part is disposed.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 * To conserve resources, it is possible to create one color object for the
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 * entire plug-in and share it between several toolkits. The plug-in is
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 * responsible for disposing the colors (disposing the toolkit that uses shared
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 * color object will not dispose the colors).
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 * <p>
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 * FormToolkit is normally instantiated, but can also be subclassed if some of
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 * the methods needs to be modified. In those cases, <code>super</code> must
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 * be called to preserve normal behaviour.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 * @since 3.0
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 public class FormToolkit {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 public static const String KEY_DRAW_BORDER = "FormWidgetFactory.drawBorder"; //$NON-NLS-1$
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 public static const String TREE_BORDER = "treeBorder"; //$NON-NLS-1$
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 public static const String TEXT_BORDER = "textBorder"; //$NON-NLS-1$
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 private int borderStyle = DWT.NULL;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 private FormColors colors;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 private int orientation;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 // private KeyListener deleteListener;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 private BorderPainter borderPainter;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 private BoldFontHolder boldFontHolder;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 private HyperlinkGroup hyperlinkGroup;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 /* default */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 VisibilityHandler visibilityHandler;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 /* default */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 KeyboardHandler keyboardHandler;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 private class BorderPainter : PaintListener {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 public void paintControl(PaintEvent event) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 Composite composite = cast(Composite) event.widget;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 Control[] children = composite.getChildren();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 for (int i = 0; i < children.length; i++) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 Control c = children[i];
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 bool inactiveBorder = false;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 bool textBorder = false;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 if (!c.isVisible())
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 continue;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 /*
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 * if (c.getEnabled() is false && !(c instanceof CCombo))
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 * continue;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 if (null !is cast(Hyperlink)c )
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 continue;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 Object flag = c.getData(KEY_DRAW_BORDER);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 if (flag !is null) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 if (flag.opEquals(Boolean.FALSE))
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 continue;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 if (flag.opEquals(stringcast(TREE_BORDER)))
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 inactiveBorder = true;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 else if (flag.opEquals(stringcast(TEXT_BORDER)))
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 textBorder = true;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 if (getBorderStyle() is DWT.BORDER) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 if (!inactiveBorder && !textBorder) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 continue;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 if (null !is cast(Text)c || null !is cast(Table)c
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 || null !is cast(Tree)c )
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 continue;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 if (!inactiveBorder
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 && (null !is cast(Text)c || null !is cast(CCombo)c || textBorder)) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 Rectangle b = c.getBounds();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 GC gc = event.gc;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 gc.setForeground(c.getBackground());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1,
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 b.height + 1);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 // gc.setForeground(getBorderStyle() is DWT.BORDER ? colors
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 // .getBorderColor() : colors.getForeground());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 gc.setForeground(colors.getBorderColor());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 if (null !is cast(CCombo)c )
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1,
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 b.height + 1);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 else
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 gc.drawRectangle(b.x - 1, b.y - 2, b.width + 1,
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 b.height + 3);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 } else if (inactiveBorder || null !is cast(Table)c
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 || null !is cast(Tree)c ) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 Rectangle b = c.getBounds();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 GC gc = event.gc;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 gc.setForeground(colors.getBorderColor());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1,
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 b.height + 1);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 private static class VisibilityHandler : FocusAdapter {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 public void focusGained(FocusEvent e) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 Widget w = e.widget;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 if (null !is cast(Control)w ) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 FormUtil.ensureVisible(cast(Control) w);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 private static class KeyboardHandler : KeyAdapter {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 public void keyPressed(KeyEvent e) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 Widget w = e.widget;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 if (null !is cast(Control)w ) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 if (e.doit)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 FormUtil.processKey(e.keyCode, cast(Control) w);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 private class BoldFontHolder {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 private Font normalFont;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201 private Font boldFont;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 public this() {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 public Font getBoldFont(Font font) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 createBoldFont(font);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 return boldFont;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 private void createBoldFont(Font font) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 if (normalFont is null || !normalFont.opEquals(font)) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 normalFont = font;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 dispose();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216 if (boldFont is null) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217 boldFont = FormFonts.getInstance().getBoldFont(colors.getDisplay(),
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 normalFont);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 public void dispose() {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 if (boldFont !is null) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224 FormFonts.getInstance().markFinished(boldFont);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225 boldFont = null;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231 * Creates a toolkit that is self-sufficient (will manage its own colors).
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234 public this(Display display) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235 this(new FormColors(display));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239 * Creates a toolkit that will use the provided (shared) colors. The toolkit
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 * will dispose the colors if and only if they are <b>not</b> marked as
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241 * shared via the <code>markShared()</code> method.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 * @param colors
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 * the shared colors
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 public this(FormColors colors) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247 orientation = Window.getDefaultOrientation();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248 this.colors = colors;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249 initialize();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
250 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
251
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
252 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253 * Creates a button as a part of the form.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
255 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
256 * the button parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
257 * @param text
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258 * an optional text for the button (can be <code>null</code>)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
259 * @param style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260 * the button style (for example, <code>DWT.PUSH</code>)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 * @return the button widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
263 public Button createButton(Composite parent, String text, int style) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 Button button = new Button(parent, style | DWT.FLAT | orientation);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
265 if (text !is null)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
266 button.setText(text);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
267 adapt(button, true, true);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
268 return button;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
269 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
270
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
271 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
272 * Creates the composite as a part of the form.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
273 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
274 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
275 * the composite parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
276 * @return the composite widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
277 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
278 public Composite createComposite(Composite parent) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
279 return createComposite(parent, DWT.NULL);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
280 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
281
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
282 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
283 * Creates the composite as part of the form using the provided style.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
284 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
285 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
286 * the composite parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
287 * @param style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
288 * the composite style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
289 * @return the composite widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
290 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
291 public Composite createComposite(Composite parent, int style) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
292 Composite composite = new LayoutComposite(parent, style | orientation);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
293 adapt(composite);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
294 return composite;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
295 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
296
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
297 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
298 * Creats the composite that can server as a separator between various parts
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
299 * of a form. Separator height should be controlled by setting the height
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
300 * hint on the layout data for the composite.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
301 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
302 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
303 * the separator parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
304 * @return the separator widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
305 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
306 public Composite createCompositeSeparator(Composite parent) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
307 final Composite composite = new Composite(parent, orientation);
85
56fea7e5f0f9 Fix some runtime errors
Frank Benoit <benoit@tionex.de>
parents: 75
diff changeset
308 // DWT FIXME: problem with DMD and anonclass/nested func
56fea7e5f0f9 Fix some runtime errors
Frank Benoit <benoit@tionex.de>
parents: 75
diff changeset
309 composite.addListener(DWT.Paint, dgListener( &dwtWorkaround, composite));
56fea7e5f0f9 Fix some runtime errors
Frank Benoit <benoit@tionex.de>
parents: 75
diff changeset
310 if (null !is cast(Section)parent )
56fea7e5f0f9 Fix some runtime errors
Frank Benoit <benoit@tionex.de>
parents: 75
diff changeset
311 (cast(Section) parent).setSeparatorControl(composite);
56fea7e5f0f9 Fix some runtime errors
Frank Benoit <benoit@tionex.de>
parents: 75
diff changeset
312 return composite;
56fea7e5f0f9 Fix some runtime errors
Frank Benoit <benoit@tionex.de>
parents: 75
diff changeset
313 }
56fea7e5f0f9 Fix some runtime errors
Frank Benoit <benoit@tionex.de>
parents: 75
diff changeset
314 // DWT FIXME: problem with DMD and anonclass/nested func
56fea7e5f0f9 Fix some runtime errors
Frank Benoit <benoit@tionex.de>
parents: 75
diff changeset
315 private void dwtWorkaround (Event e, Composite composite) {
75
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
316 if (composite.isDisposed())
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
317 return;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
318 Rectangle bounds = composite.getBounds();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
319 GC gc = e.gc;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
320 gc.setForeground(colors.getColor(IFormColors.SEPARATOR));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
321 if (colors.getBackground() !is null)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
322 gc.setBackground(colors.getBackground());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
323 gc.fillGradientRectangle(0, 0, bounds.width, bounds.height,
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
324 false);
85
56fea7e5f0f9 Fix some runtime errors
Frank Benoit <benoit@tionex.de>
parents: 75
diff changeset
325 }
75
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
326 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
327 * Creates a label as a part of the form.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
328 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
329 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
330 * the label parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
331 * @param text
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
332 * the label text
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
333 * @return the label widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
334 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
335 public Label createLabel(Composite parent, String text) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
336 return createLabel(parent, text, DWT.NONE);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
337 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
338
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
339 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
340 * Creates a label as a part of the form.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
341 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
342 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
343 * the label parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
344 * @param text
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
345 * the label text
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
346 * @param style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
347 * the label style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
348 * @return the label widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
349 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
350 public Label createLabel(Composite parent, String text, int style) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
351 Label label = new Label(parent, style | orientation);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
352 if (text !is null)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
353 label.setText(text);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
354 adapt(label, false, false);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
355 return label;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
356 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
357
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
358 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
359 * Creates a hyperlink as a part of the form. The hyperlink will be added to
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
360 * the hyperlink group that belongs to this toolkit.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
361 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
362 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
363 * the hyperlink parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
364 * @param text
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
365 * the text of the hyperlink
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
366 * @param style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
367 * the hyperlink style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
368 * @return the hyperlink widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
369 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
370 public Hyperlink createHyperlink(Composite parent, String text, int style) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
371 Hyperlink hyperlink = new Hyperlink(parent, style | orientation);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
372 if (text !is null)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
373 hyperlink.setText(text);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
374 hyperlink.addFocusListener(visibilityHandler);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
375 hyperlink.addKeyListener(keyboardHandler);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
376 hyperlinkGroup.add(hyperlink);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
377 return hyperlink;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
378 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
379
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
380 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
381 * Creates an image hyperlink as a part of the form. The hyperlink will be
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
382 * added to the hyperlink group that belongs to this toolkit.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
383 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
384 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
385 * the hyperlink parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
386 * @param style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
387 * the hyperlink style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
388 * @return the image hyperlink widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
389 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
390 public ImageHyperlink createImageHyperlink(Composite parent, int style) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
391 ImageHyperlink hyperlink = new ImageHyperlink(parent, style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
392 | orientation);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
393 hyperlink.addFocusListener(visibilityHandler);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
394 hyperlink.addKeyListener(keyboardHandler);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
395 hyperlinkGroup.add(hyperlink);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
396 return hyperlink;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
397 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
398
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
399 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
400 * Creates a rich text as a part of the form.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
401 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
402 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
403 * the rich text parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
404 * @param trackFocus
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
405 * if <code>true</code>, the toolkit will monitor focus
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
406 * transfers to ensure that the hyperlink in focus is visible in
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
407 * the form.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
408 * @return the rich text widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
409 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
410 public FormText createFormText(Composite parent, bool trackFocus) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
411 FormText engine = new FormText(parent, DWT.WRAP | orientation);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
412 engine.marginWidth = 1;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
413 engine.marginHeight = 0;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
414 engine.setHyperlinkSettings(getHyperlinkGroup());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
415 adapt(engine, trackFocus, true);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
416 engine.setMenu(parent.getMenu());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
417 return engine;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
418 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
419
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
420 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
421 * Adapts a control to be used in a form that is associated with this
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
422 * toolkit. This involves adjusting colors and optionally adding handlers to
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
423 * ensure focus tracking and keyboard management.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
424 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
425 * @param control
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
426 * a control to adapt
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
427 * @param trackFocus
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
428 * if <code>true</code>, form will be scrolled horizontally
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
429 * and/or vertically if needed to ensure that the control is
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
430 * visible when it gains focus. Set it to <code>false</code> if
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
431 * the control is not capable of gaining focus.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
432 * @param trackKeyboard
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
433 * if <code>true</code>, the control that is capable of
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
434 * gaining focus will be tracked for certain keys that are
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
435 * important to the underlying form (for example, PageUp,
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
436 * PageDown, ScrollUp, ScrollDown etc.). Set it to
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
437 * <code>false</code> if the control is not capable of gaining
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
438 * focus or these particular key event are already used by the
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
439 * control.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
440 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
441 public void adapt(Control control, bool trackFocus, bool trackKeyboard) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
442 control.setBackground(colors.getBackground());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
443 control.setForeground(colors.getForeground());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
444 if (null !is cast(ExpandableComposite)control ) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
445 ExpandableComposite ec = cast(ExpandableComposite) control;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
446 if (ec.toggle_package !is null) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
447 if (trackFocus)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
448 ec.toggle_package.addFocusListener(visibilityHandler);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
449 if (trackKeyboard)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
450 ec.toggle_package.addKeyListener(keyboardHandler);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
451 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
452 if (ec.textLabel_package !is null) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
453 if (trackFocus)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
454 ec.textLabel_package.addFocusListener(visibilityHandler);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
455 if (trackKeyboard)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
456 ec.textLabel_package.addKeyListener(keyboardHandler);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
457 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
458 return;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
459 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
460 if (trackFocus)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
461 control.addFocusListener(visibilityHandler);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
462 if (trackKeyboard)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
463 control.addKeyListener(keyboardHandler);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
464 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
465
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
466 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
467 * Adapts a composite to be used in a form associated with this toolkit.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
468 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
469 * @param composite
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
470 * the composite to adapt
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
471 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
472 public void adapt(Composite composite) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
473 composite.setBackground(colors.getBackground());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
474 composite.addMouseListener(new class MouseAdapter {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
475 public void mouseDown(MouseEvent e) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
476 (cast(Control) e.widget).setFocus();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
477 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
478 });
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
479 composite.setMenu(composite.getParent().getMenu());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
480 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
481
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
482 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
483 * A helper method that ensures the provided control is visible when
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
484 * ScrolledComposite is somewhere in the parent chain. If scroll bars are
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
485 * visible and the control is clipped, the client of the scrolled composite
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
486 * will be scrolled to reveal the control.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
487 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
488 * @param c
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
489 * the control to reveal
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
490 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
491 public static void ensureVisible(Control c) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
492 FormUtil.ensureVisible(c);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
493 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
494
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
495 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
496 * Creates a section as a part of the form.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
497 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
498 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
499 * the section parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
500 * @param sectionStyle
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
501 * the section style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
502 * @return the section widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
503 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
504 public Section createSection(Composite parent, int sectionStyle) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
505 Section section = new Section(parent, orientation, sectionStyle);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
506 section.setMenu(parent.getMenu());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
507 adapt(section, true, true);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
508 if (section.toggle_package !is null) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
509 section.toggle_package.setHoverDecorationColor(colors
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
510 .getColor(IFormColors.TB_TOGGLE_HOVER));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
511 section.toggle_package.setDecorationColor(colors
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
512 .getColor(IFormColors.TB_TOGGLE));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
513 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
514 section.setFont(boldFontHolder.getBoldFont(parent.getFont()));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
515 if ((sectionStyle & Section.TITLE_BAR) !is 0
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
516 || (sectionStyle & Section.SHORT_TITLE_BAR) !is 0) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
517 colors.initializeSectionToolBarColors();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
518 section.setTitleBarBackground(colors.getColor(IFormColors.TB_BG));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
519 section.setTitleBarBorderColor(colors
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
520 .getColor(IFormColors.TB_BORDER));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
521 section.setTitleBarForeground(colors
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
522 .getColor(IFormColors.TB_TOGGLE));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
523 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
524 return section;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
525 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
526
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
527 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
528 * Creates an expandable composite as a part of the form.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
529 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
530 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
531 * the expandable composite parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
532 * @param expansionStyle
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
533 * the expandable composite style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
534 * @return the expandable composite widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
535 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
536 public ExpandableComposite createExpandableComposite(Composite parent,
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
537 int expansionStyle) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
538 ExpandableComposite ec = new ExpandableComposite(parent, orientation,
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
539 expansionStyle);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
540 ec.setMenu(parent.getMenu());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
541 adapt(ec, true, true);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
542 ec.setFont(boldFontHolder.getBoldFont(ec.getFont()));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
543 return ec;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
544 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
545
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
546 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
547 * Creates a separator label as a part of the form.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
548 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
549 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
550 * the separator parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
551 * @param style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
552 * the separator style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
553 * @return the separator label
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
554 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
555 public Label createSeparator(Composite parent, int style) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
556 Label label = new Label(parent, DWT.SEPARATOR | style | orientation);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
557 label.setBackground(colors.getBackground());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
558 label.setForeground(colors.getBorderColor());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
559 return label;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
560 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
561
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
562 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
563 * Creates a table as a part of the form.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
564 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
565 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
566 * the table parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
567 * @param style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
568 * the table style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
569 * @return the table widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
570 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
571 public Table createTable(Composite parent, int style) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
572 Table table = new Table(parent, style | borderStyle | orientation);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
573 adapt(table, false, false);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
574 // hookDeleteListener(table);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
575 return table;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
576 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
577
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
578 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
579 * Creates a text as a part of the form.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
580 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
581 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
582 * the text parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
583 * @param value
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
584 * the text initial value
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
585 * @return the text widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
586 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
587 public Text createText(Composite parent, String value) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
588 return createText(parent, value, DWT.SINGLE);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
589 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
590
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
591 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
592 * Creates a text as a part of the form.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
593 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
594 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
595 * the text parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
596 * @param value
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
597 * the text initial value
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
598 * @param style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
599 * the text style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
600 * @return the text widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
601 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
602 public Text createText(Composite parent, String value, int style) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
603 Text text = new Text(parent, borderStyle | style | orientation);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
604 if (value !is null)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
605 text.setText(value);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
606 text.setForeground(colors.getForeground());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
607 text.setBackground(colors.getBackground());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
608 text.addFocusListener(visibilityHandler);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
609 return text;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
610 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
611
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
612 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
613 * Creates a tree widget as a part of the form.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
614 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
615 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
616 * the tree parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
617 * @param style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
618 * the tree style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
619 * @return the tree widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
620 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
621 public Tree createTree(Composite parent, int style) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
622 Tree tree = new Tree(parent, borderStyle | style | orientation);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
623 adapt(tree, false, false);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
624 // hookDeleteListener(tree);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
625 return tree;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
626 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
627
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
628 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
629 * Creates a scrolled form widget in the provided parent. If you do not
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
630 * require scrolling because there is already a scrolled composite up the
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
631 * parent chain, use 'createForm' instead.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
632 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
633 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
634 * the scrolled form parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
635 * @return the form that can scroll itself
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
636 * @see #createForm
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
637 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
638 public ScrolledForm createScrolledForm(Composite parent) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
639 ScrolledForm form = new ScrolledForm(parent, DWT.V_SCROLL
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
640 | DWT.H_SCROLL | orientation);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
641 form.setExpandHorizontal(true);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
642 form.setExpandVertical(true);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
643 form.setBackground(colors.getBackground());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
644 form.setForeground(colors.getColor(IFormColors.TITLE));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
645 form.setFont(JFaceResources.getHeaderFont());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
646 return form;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
647 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
648
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
649 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
650 * Creates a form widget in the provided parent. Note that this widget does
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
651 * not scroll its content, so make sure there is a scrolled composite up the
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
652 * parent chain. If you require scrolling, use 'createScrolledForm' instead.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
653 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
654 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
655 * the form parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
656 * @return the form that does not scroll
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
657 * @see #createScrolledForm
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
658 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
659 public Form createForm(Composite parent) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
660 Form formContent = new Form(parent, orientation);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
661 formContent.setBackground(colors.getBackground());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
662 formContent.setForeground(colors.getColor(IFormColors.TITLE));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
663 formContent.setFont(JFaceResources.getHeaderFont());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
664 return formContent;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
665 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
666
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
667 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
668 * Takes advantage of the gradients and other capabilities to decorate the
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
669 * form heading using colors computed based on the current skin and
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
670 * operating system.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
671 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
672 * @since 3.3
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
673 * @param form
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
674 * the form to decorate
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
675 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
676
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
677 public void decorateFormHeading(Form form) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
678 Color top = colors.getColor(IFormColors.H_GRADIENT_END);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
679 Color bot = colors.getColor(IFormColors.H_GRADIENT_START);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
680 form.setTextBackground([ top, bot ], [ 100 ],
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
681 true);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
682 form.setHeadColor(IFormColors.H_BOTTOM_KEYLINE1, colors
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
683 .getColor(IFormColors.H_BOTTOM_KEYLINE1));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
684 form.setHeadColor(IFormColors.H_BOTTOM_KEYLINE2, colors
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
685 .getColor(IFormColors.H_BOTTOM_KEYLINE2));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
686 form.setHeadColor(IFormColors.H_HOVER_LIGHT, colors
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
687 .getColor(IFormColors.H_HOVER_LIGHT));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
688 form.setHeadColor(IFormColors.H_HOVER_FULL, colors
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
689 .getColor(IFormColors.H_HOVER_FULL));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
690 form.setHeadColor(IFormColors.TB_TOGGLE, colors
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
691 .getColor(IFormColors.TB_TOGGLE));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
692 form.setHeadColor(IFormColors.TB_TOGGLE_HOVER, colors
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
693 .getColor(IFormColors.TB_TOGGLE_HOVER));
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
694 form.setSeparatorVisible(true);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
695 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
696
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
697 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
698 * Creates a scrolled page book widget as a part of the form.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
699 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
700 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
701 * the page book parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
702 * @param style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
703 * the text style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
704 * @return the scrolled page book widget
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
705 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
706 public ScrolledPageBook createPageBook(Composite parent, int style) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
707 ScrolledPageBook book = new ScrolledPageBook(parent, style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
708 | orientation);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
709 adapt(book, true, true);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
710 book.setMenu(parent.getMenu());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
711 return book;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
712 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
713
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
714 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
715 * Disposes the toolkit.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
716 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
717 public void dispose() {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
718 if (colors.isShared() is false) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
719 colors.dispose();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
720 colors = null;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
721 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
722 boldFontHolder.dispose();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
723 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
724
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
725 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
726 * Returns the hyperlink group that manages hyperlinks for this toolkit.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
727 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
728 * @return the hyperlink group
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
729 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
730 public HyperlinkGroup getHyperlinkGroup() {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
731 return hyperlinkGroup;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
732 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
733
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
734 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
735 * Sets the background color for the entire toolkit. The method delegates
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
736 * the call to the FormColors object and also updates the hyperlink group so
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
737 * that hyperlinks and other objects are in sync.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
738 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
739 * @param bg
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
740 * the new background color
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
741 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
742 public void setBackground(Color bg) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
743 hyperlinkGroup.setBackground(bg);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
744 colors.setBackground(bg);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
745 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
746
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
747 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
748 * Refreshes the hyperlink colors by loading from JFace settings.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
749 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
750 public void refreshHyperlinkColors() {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
751 hyperlinkGroup.initializeDefaultForegrounds(colors.getDisplay());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
752 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
753
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
754 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
755 * Paints flat borders for widgets created by this toolkit within the
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
756 * provided parent. Borders will not be painted if the global border style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
757 * is DWT.BORDER (i.e. if native borders are used). Call this method during
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
758 * creation of a form composite to get the borders of its children painted.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
759 * Care should be taken when selection layout margins. At least one pixel
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
760 * pargin width and height must be chosen to allow the toolkit to paint the
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
761 * border on the parent around the widgets.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
762 * <p>
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
763 * Borders are painted for some controls that are selected by the toolkit by
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
764 * default. If a control needs a border but is not on its list, it is
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
765 * possible to force border in the following way:
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
766 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
767 * <pre>
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
768 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
769 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
770 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
771 * widget.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TREE_BORDER);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
772 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
773 * or
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
774 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
775 * widget.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
776 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
777 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
778 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
779 * </pre>
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
780 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
781 * @param parent
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
782 * the parent that owns the children for which the border needs
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
783 * to be painted.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
784 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
785 public void paintBordersFor(Composite parent) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
786 // if (borderStyle is DWT.BORDER)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
787 // return;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
788 if (borderPainter is null)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
789 borderPainter = new BorderPainter();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
790 parent.addPaintListener(borderPainter);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
791 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
792
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
793 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
794 * Returns the colors used by this toolkit.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
795 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
796 * @return the color object
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
797 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
798 public FormColors getColors() {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
799 return colors;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
800 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
801
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
802 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
803 * Returns the border style used for various widgets created by this
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
804 * toolkit. The intent of the toolkit is to create controls with styles that
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
805 * yield a 'flat' appearance. On systems where the native borders are
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
806 * already flat, we set the style to DWT.BORDER and don't paint the borders
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
807 * ourselves. Otherwise, the style is set to DWT.NULL, and borders are
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
808 * painted by the toolkit.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
809 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
810 * @return the global border style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
811 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
812 public int getBorderStyle() {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
813 return borderStyle;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
814 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
815
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
816 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
817 * Returns the margin required around the children whose border is being
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
818 * painted by the toolkit using {@link #paintBordersFor(Composite)}. Since
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
819 * the border is painted around the controls on the parent, a number of
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
820 * pixels needs to be reserved for this border. For windowing systems where
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
821 * the native border is used, this margin is 0.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
822 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
823 * @return the margin in the parent when children have their border painted
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
824 * @since 3.3
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
825 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
826 public int getBorderMargin() {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
827 return getBorderStyle() is DWT.BORDER ? 0 : 2;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
828 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
829
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
830 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
831 * Sets the border style to be used when creating widgets. The toolkit
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
832 * chooses the correct style based on the platform but this value can be
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
833 * changed using this method.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
834 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
835 * @param style
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
836 * <code>DWT.BORDER</code> or <code>DWT.NULL</code>
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
837 * @see #getBorderStyle
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
838 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
839 public void setBorderStyle(int style) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
840 this.borderStyle = style;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
841 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
842
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
843 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
844 * A utility method that ensures that the control is visible in the scrolled
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
845 * composite. The prerequisite for this method is that the control has a
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
846 * class that extends ScrolledComposite somewhere in the parent chain. If
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
847 * the control is partially or fully clipped, the composite is scrolled to
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
848 * set by setting the origin to the control origin.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
849 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
850 * @param c
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
851 * the control to make visible
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
852 * @param verticalOnly
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
853 * if <code>true</code>, the scrolled composite will be
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
854 * scrolled only vertically if needed. Otherwise, the scrolled
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
855 * composite origin will be set to the control origin.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
856 * @since 3.1
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
857 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
858 public static void setControlVisible(Control c, bool verticalOnly) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
859 ScrolledComposite scomp = FormUtil.getScrolledComposite(c);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
860 if (scomp is null)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
861 return;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
862 Point location = FormUtil.getControlLocation(scomp, c);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
863 scomp.setOrigin(location);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
864 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
865
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
866 private void initialize() {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
867 initializeBorderStyle();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
868 hyperlinkGroup = new HyperlinkGroup(colors.getDisplay());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
869 hyperlinkGroup.setBackground(colors.getBackground());
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
870 visibilityHandler = new VisibilityHandler();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
871 keyboardHandler = new KeyboardHandler();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
872 boldFontHolder = new BoldFontHolder();
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
873 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
874
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
875 private void initializeBorderStyle() {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
876 String osname = System.getProperty("os.name"); //$NON-NLS-1$
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
877 String osversion = System.getProperty("os.version"); //$NON-NLS-1$
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
878 if (osname.startsWith("Windows") && "5.1".compareTo(osversion) <= 0) { //$NON-NLS-1$ //$NON-NLS-2$
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
879 // Skinned widgets used on newer Windows (e.g. XP (5.1), Vista
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
880 // (6.0))
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
881 // Check for Windows Classic. If not used, set the style to BORDER
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
882 RGB rgb = colors.getSystemColor(DWT.COLOR_WIDGET_BACKGROUND);
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
883 if (rgb.red !is 212 || rgb.green !is 208 || rgb.blue !is 200)
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
884 borderStyle = DWT.BORDER;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
885 } else if (osname.startsWith("Mac")) //$NON-NLS-1$
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
886 borderStyle = DWT.BORDER;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
887 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
888
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
889 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
890 * Returns the orientation that all the widgets created by this toolkit will
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
891 * inherit, if set. Can be <code>DWT.NULL</code>,
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
892 * <code>DWT.LEFT_TO_RIGHT</code> and <code>DWT.RIGHT_TO_LEFT</code>.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
893 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
894 * @return orientation style for this toolkit, or <code>DWT.NULL</code> if
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
895 * not set. The default orientation is inherited from the Window
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
896 * default orientation.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
897 * @see dwtx.jface.window.Window#getDefaultOrientation()
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
898 * @since 3.1
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
899 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
900
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
901 public int getOrientation() {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
902 return orientation;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
903 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
904
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
905 /**
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
906 * Sets the orientation that all the widgets created by this toolkit will
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
907 * inherit. Can be <code>DWT.NULL</code>, <code>DWT.LEFT_TO_RIGHT</code>
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
908 * and <code>DWT.RIGHT_TO_LEFT</code>.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
909 *
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
910 * @param orientation
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
911 * style for this toolkit.
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
912 * @since 3.1
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
913 */
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
914
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
915 public void setOrientation(int orientation) {
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
916 this.orientation = orientation;
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
917 }
5d489b9f966c Fix continue porting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
918 }