annotate dwtexamples/controlexample/SashTab.d @ 0:052c3aebd1d3

initial import
author Frank Benoit <benoit@tionex.de>
date Fri, 01 Feb 2008 21:46:26 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2000, 2007 IBM Corporation and others.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Port to the D programming language:
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * Frank Benoit <benoit@tionex.de>
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 module dwtexamples.controlexample.SashTab;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 import dwt.DWT;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import dwt.events.ControlAdapter;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwt.events.ControlEvent;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import dwt.events.SelectionAdapter;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwt.events.SelectionEvent;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import dwt.graphics.Rectangle;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import dwt.layout.FillLayout;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import dwt.layout.GridData;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import dwt.widgets.Button;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import dwt.widgets.Composite;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import dwt.widgets.Group;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import dwt.widgets.List;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 import dwt.widgets.Sash;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 import dwt.widgets.Text;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 import dwt.widgets.Widget;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 import dwtexamples.controlexample.Tab;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 import dwtexamples.controlexample.ControlExample;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 class SashTab : Tab {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 /* Example widgets and groups that contain them */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 Sash hSash, vSash;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 Composite sashComp;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 Group sashGroup;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 List list1, list2, list3;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 Text text;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 Button smoothButton;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 static char[] [] ListData0;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 static char[] [] ListData1;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 /* Constants */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 static final int SASH_WIDTH = 3;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 static final int SASH_LIMIT = 20;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 /**
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 * Creates the Tab within a given instance of ControlExample.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 this(ControlExample instance) {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 super(instance);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 if( ListData0.length is 0 ){
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 ListData0 = [
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 ControlExample.getResourceString("ListData0_0"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 ControlExample.getResourceString("ListData0_1"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 ControlExample.getResourceString("ListData0_2"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 ControlExample.getResourceString("ListData0_3"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 ControlExample.getResourceString("ListData0_4"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 ControlExample.getResourceString("ListData0_5"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 ControlExample.getResourceString("ListData0_6"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 ControlExample.getResourceString("ListData0_7"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 ControlExample.getResourceString("ListData0_8")];
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 if( ListData1.length is 0 ){
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 ListData1 = [
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 ControlExample.getResourceString("ListData1_0"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 ControlExample.getResourceString("ListData1_1"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 ControlExample.getResourceString("ListData1_2"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 ControlExample.getResourceString("ListData1_3"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 ControlExample.getResourceString("ListData1_4"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 ControlExample.getResourceString("ListData1_5"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 ControlExample.getResourceString("ListData1_6"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 ControlExample.getResourceString("ListData1_7"),
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 ControlExample.getResourceString("ListData1_8")];
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 /**
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 * Creates the "Example" group.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 void createExampleGroup () {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 super.createExampleGroup ();
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 exampleGroup.setLayoutData (new GridData (DWT.FILL, DWT.FILL, true, true));
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 exampleGroup.setLayout(new FillLayout());
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 /* Create a group for the sash widgets */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 sashGroup = new Group (exampleGroup, DWT.NONE);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 FillLayout layout = new FillLayout();
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 layout.marginHeight = layout.marginWidth = 5;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 sashGroup.setLayout(layout);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 sashGroup.setText ("Sash");
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 /**
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 * Creates the "Example" widgets.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 void createExampleWidgets () {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 /*
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 * Create the page. This example does not use layouts.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 sashComp = new Composite(sashGroup, DWT.BORDER);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 /* Create the list and text widgets */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 list1 = new List (sashComp, DWT.V_SCROLL | DWT.H_SCROLL | DWT.BORDER);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 list1.setItems (ListData0);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 list2 = new List (sashComp, DWT.V_SCROLL | DWT.H_SCROLL | DWT.BORDER);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 list2.setItems (ListData1);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 text = new Text (sashComp, DWT.MULTI | DWT.BORDER);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 text.setText (ControlExample.getResourceString("Multi_line"));
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 /* Create the sashes */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 int style = getDefaultStyle();
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 if (smoothButton.getSelection()) style |= DWT.SMOOTH;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 vSash = new Sash (sashComp, DWT.VERTICAL | style);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 hSash = new Sash (sashComp, DWT.HORIZONTAL | style);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 /* Add the listeners */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 hSash.addSelectionListener (new class() SelectionAdapter {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 public void widgetSelected (SelectionEvent event) {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 Rectangle rect = vSash.getParent().getClientArea();
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 event.y = Math.min (Math.max (event.y, SASH_LIMIT), rect.height - SASH_LIMIT);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 if (event.detail !is DWT.DRAG) {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 hSash.setBounds (event.x, event.y, event.width, event.height);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 layout ();
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 });
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 vSash.addSelectionListener (new class() SelectionAdapter {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 public void widgetSelected (SelectionEvent event) {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 Rectangle rect = vSash.getParent().getClientArea();
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 event.x = Math.min (Math.max (event.x, SASH_LIMIT), rect.width - SASH_LIMIT);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 if (event.detail !is DWT.DRAG) {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 vSash.setBounds (event.x, event.y, event.width, event.height);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 layout ();
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 });
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 sashComp.addControlListener (new class() ControlAdapter {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 public void controlResized (ControlEvent event) {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 resized ();
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 });
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 /**
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 * Creates the "Size" group. The "Size" group contains
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 * controls that allow the user to change the size of
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 * the example widgets.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 void createSizeGroup () {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 /**
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 * Creates the "Style" group.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 void createStyleGroup() {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 super.createStyleGroup ();
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 /* Create the extra widgets */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 smoothButton = new Button (styleGroup, DWT.CHECK);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 smoothButton.setText("DWT.SMOOTH");
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 void disposeExampleWidgets () {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 sashComp.dispose();
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 sashComp = null;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 /**
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 * Gets the "Example" widget children.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 Widget [] getExampleWidgets () {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 return [ cast(Widget) hSash, vSash ];
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 /**
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 * Returns a list of set/get API method names (without the set/get prefix)
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 * that can be used to set/get values in the example control(s).
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 char[][] getMethodNames() {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 return ["ToolTipText"];
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 /**
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 * Gets the text for the tab folder item.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 char[] getTabText () {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 return "Sash";
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 /**
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 * Layout the list and text widgets according to the new
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 * positions of the sashes..events.SelectionEvent
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200 void layout () {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 Rectangle clientArea = sashComp.getClientArea ();
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 Rectangle hSashBounds = hSash.getBounds ();
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204 Rectangle vSashBounds = vSash.getBounds ();
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 list1.setBounds (0, 0, vSashBounds.x, hSashBounds.y);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 list2.setBounds (vSashBounds.x + vSashBounds.width, 0, clientArea.width - (vSashBounds.x + vSashBounds.width), hSashBounds.y);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 text.setBounds (0, hSashBounds.y + hSashBounds.height, clientArea.width, clientArea.height - (hSashBounds.y + hSashBounds.height));
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210 /**
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 * If the horizontal sash has been moved then the vertical
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 * sash is either too long or too short and its size must
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 * be adjusted.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 vSashBounds.height = hSashBounds.y;
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216 vSash.setBounds (vSashBounds);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 /**
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219 * Sets the size of the "Example" widgets.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 void setExampleWidgetSize () {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 sashGroup.layout (true);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225 /**
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226 * Sets the state of the "Example" widgets.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 void setExampleWidgetState () {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229 super.setExampleWidgetState ();
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230 smoothButton.setSelection ((hSash.getStyle () & DWT.SMOOTH) !is 0);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233 /**
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234 * Handle the shell resized event.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236 void resized () {
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 /* Get the client area for the shell */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239 Rectangle clientArea = sashComp.getClientArea ();
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241 /*
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242 * Make list 1 half the width and half the height of the tab leaving room for the sash.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 * Place list 1 in the top left quadrant of the tab.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245 Rectangle list1Bounds = new Rectangle (0, 0, (clientArea.width - SASH_WIDTH) / 2, (clientArea.height - SASH_WIDTH) / 2);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 list1.setBounds (list1Bounds);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248 /*
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249 * Make list 2 half the width and half the height of the tab leaving room for the sash.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
250 * Place list 2 in the top right quadrant of the tab.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
251 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
252 list2.setBounds (list1Bounds.width + SASH_WIDTH, 0, clientArea.width - (list1Bounds.width + SASH_WIDTH), list1Bounds.height);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 /*
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
255 * Make the text area the full width and half the height of the tab leaving room for the sash.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
256 * Place the text area in the bottom half of the tab.
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
257 */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258 text.setBounds (0, list1Bounds.height + SASH_WIDTH, clientArea.width, clientArea.height - (list1Bounds.height + SASH_WIDTH));
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
259
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260 /* Position the sashes */
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 vSash.setBounds (list1Bounds.width, 0, SASH_WIDTH, list1Bounds.height);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262 hSash.setBounds (0, list1Bounds.height, clientArea.width, SASH_WIDTH);
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
263 }
052c3aebd1d3 initial import
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 }