Mercurial > projects > dwt-linux
annotate dwt/widgets/TableColumn.d @ 259:c0d810de7093
Update SWT 3.4M7 to 3.4
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sun, 29 Jun 2008 14:33:38 +0200 |
parents | 5a30aa9820f3 |
children |
rev | line source |
---|---|
115
52b32f5cb1e0
many file checked for switch default
Frank Benoit <benoit@tionex.de>
parents:
108
diff
changeset
|
1 /******************************************************************************* |
259 | 2 * Copyright (c) 2000, 2008 IBM Corporation and others. |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3 * All rights reserved. This program and the accompanying materials |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4 * are made available under the terms of the Eclipse Public License v1.0 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5 * which accompanies this distribution, and is available at |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6 * http://www.eclipse.org/legal/epl-v10.html |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
8 * Contributors: |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
9 * IBM Corporation - initial API and implementation |
108 | 10 * Port to the D programming language: |
11 * Frank Benoit <benoit@tionex.de> | |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
12 *******************************************************************************/ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
13 module dwt.widgets.TableColumn; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
14 |
238 | 15 import dwt.dwthelper.utils; |
16 | |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
17 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
18 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
19 import dwt.DWT; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
20 import dwt.DWTException; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
21 import dwt.events.ControlListener; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
22 import dwt.events.SelectionEvent; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
23 import dwt.events.SelectionListener; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
24 import dwt.graphics.Image; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
25 import dwt.internal.gtk.OS; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
26 import dwt.widgets.Item; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
27 import dwt.widgets.Table; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
28 import dwt.widgets.Shell; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
29 import dwt.widgets.TypedListener; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
30 import dwt.widgets.TableItem; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
31 import dwt.widgets.ImageList; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
32 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
33 import Math = tango.math.Math; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
34 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
35 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
36 * Instances of this class represent a column in a table widget. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
37 * <p><dl> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
38 * <dt><b>Styles:</b></dt> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
39 * <dd>LEFT, RIGHT, CENTER</dd> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
40 * <dt><b>Events:</b></dt> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
41 * <dd> Move, Resize, Selection</dd> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
42 * </dl> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
43 * </p><p> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
44 * Note: Only one of the styles LEFT, RIGHT and CENTER may be specified. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
45 * </p><p> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
46 * IMPORTANT: This class is <em>not</em> intended to be subclassed. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
47 * </p> |
259 | 48 * |
49 * @see <a href="http://www.eclipse.org/swt/snippets/#table">Table, TableItem, TableColumn snippets</a> | |
50 * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a> | |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
51 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
52 public class TableColumn : Item { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
53 GtkWidget* labelHandle, imageHandle, buttonHandle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
54 Table parent; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
55 int modelIndex, lastButton, lastTime, lastX, lastWidth; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
56 bool customDraw, useFixedWidth; |
238 | 57 String toolTipText; |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
58 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
59 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
60 * Constructs a new instance of this class given its parent |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
61 * (which must be a <code>Table</code>) and a style value |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
62 * describing its behavior and appearance. The item is added |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
63 * to the end of the items maintained by its parent. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
64 * <p> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
65 * The style value is either one of the style constants defined in |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
66 * class <code>DWT</code> which is applicable to instances of this |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
67 * class, or must be built by <em>bitwise OR</em>'ing together |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
68 * (that is, using the <code>int</code> "|" operator) two or more |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
69 * of those <code>DWT</code> style constants. The class description |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
70 * lists the style constants that are applicable to the class. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
71 * Style bits are also inherited from superclasses. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
72 * </p> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
73 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
74 * @param parent a composite control which will be the parent of the new instance (cannot be null) |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
75 * @param style the style of control to construct |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
76 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
77 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
78 * <li>ERROR_NULL_ARGUMENT - if the parent is null</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
79 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
80 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
81 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
82 * <li>ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
83 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
84 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
85 * @see DWT#LEFT |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
86 * @see DWT#RIGHT |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
87 * @see DWT#CENTER |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
88 * @see Widget#checkSubclass |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
89 * @see Widget#getStyle |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
90 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
91 public this (Table parent, int style) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
92 super (parent, checkStyle (style)); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
93 this.parent = parent; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
94 createWidget (parent.getColumnCount ()); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
95 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
96 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
97 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
98 * Constructs a new instance of this class given its parent |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
99 * (which must be a <code>Table</code>), a style value |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
100 * describing its behavior and appearance, and the index |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
101 * at which to place it in the items maintained by its parent. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
102 * <p> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
103 * The style value is either one of the style constants defined in |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
104 * class <code>DWT</code> which is applicable to instances of this |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
105 * class, or must be built by <em>bitwise OR</em>'ing together |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
106 * (that is, using the <code>int</code> "|" operator) two or more |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
107 * of those <code>DWT</code> style constants. The class description |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
108 * lists the style constants that are applicable to the class. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
109 * Style bits are also inherited from superclasses. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
110 * </p> |
259 | 111 * <p> |
112 * Note that due to a restriction on some platforms, the first column | |
113 * is always left aligned. | |
114 * </p> | |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
115 * @param parent a composite control which will be the parent of the new instance (cannot be null) |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
116 * @param style the style of control to construct |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
117 * @param index the zero-relative index to store the receiver in its parent |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
118 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
119 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
120 * <li>ERROR_NULL_ARGUMENT - if the parent is null</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
121 * <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the parent (inclusive)</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
122 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
123 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
124 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
125 * <li>ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
126 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
127 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
128 * @see DWT#LEFT |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
129 * @see DWT#RIGHT |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
130 * @see DWT#CENTER |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
131 * @see Widget#checkSubclass |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
132 * @see Widget#getStyle |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
133 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
134 public this (Table parent, int style, int index) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
135 super (parent, checkStyle (style)); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
136 this.parent = parent; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
137 createWidget (index); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
138 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
139 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
140 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
141 * Adds the listener to the collection of listeners who will |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
142 * be notified when the control is moved or resized, by sending |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
143 * it one of the messages defined in the <code>ControlListener</code> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
144 * interface. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
145 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
146 * @param listener the listener which should be notified |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
147 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
148 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
149 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
150 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
151 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
152 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
153 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
154 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
155 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
156 * @see ControlListener |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
157 * @see #removeControlListener |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
158 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
159 public void addControlListener(ControlListener listener) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
160 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
161 if (listener is null) error (DWT.ERROR_NULL_ARGUMENT); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
162 TypedListener typedListener = new TypedListener (listener); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
163 addListener (DWT.Resize,typedListener); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
164 addListener (DWT.Move,typedListener); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
165 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
166 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
167 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
168 * Adds the listener to the collection of listeners who will |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
169 * be notified when the control is selected by the user, by sending |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
170 * it one of the messages defined in the <code>SelectionListener</code> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
171 * interface. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
172 * <p> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
173 * <code>widgetSelected</code> is called when the column header is selected. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
174 * <code>widgetDefaultSelected</code> is not called. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
175 * </p> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
176 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
177 * @param listener the listener which should be notified when the control is selected by the user |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
178 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
179 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
180 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
181 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
182 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
183 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
184 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
185 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
186 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
187 * @see SelectionListener |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
188 * @see #removeSelectionListener |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
189 * @see SelectionEvent |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
190 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
191 public void addSelectionListener (SelectionListener listener) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
192 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
193 if (listener is null) error (DWT.ERROR_NULL_ARGUMENT); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
194 TypedListener typedListener = new TypedListener (listener); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
195 addListener (DWT.Selection,typedListener); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
196 addListener (DWT.DefaultSelection,typedListener); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
197 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
198 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
199 static int checkStyle (int style) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
200 return checkBits (style, DWT.LEFT, DWT.CENTER, DWT.RIGHT, 0, 0, 0); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
201 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
202 |
152
17f8449522fd
overloads second walkthrough
Frank Benoit <benoit@tionex.de>
parents:
150
diff
changeset
|
203 protected override void checkSubclass () { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
204 if (!isValidSubclass ()) error (DWT.ERROR_INVALID_SUBCLASS); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
205 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
206 |
152
17f8449522fd
overloads second walkthrough
Frank Benoit <benoit@tionex.de>
parents:
150
diff
changeset
|
207 override void createWidget (int index) { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
208 parent.createItem (this, index); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
209 setOrientation (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
210 hookEvents (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
211 register (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
212 text = ""; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
213 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
214 |
152
17f8449522fd
overloads second walkthrough
Frank Benoit <benoit@tionex.de>
parents:
150
diff
changeset
|
215 override void deregister() { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
216 super.deregister (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
217 display.removeWidget (handle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
218 if (buttonHandle !is null) display.removeWidget (buttonHandle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
219 if (labelHandle !is null) display.removeWidget (labelHandle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
220 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
221 |
152
17f8449522fd
overloads second walkthrough
Frank Benoit <benoit@tionex.de>
parents:
150
diff
changeset
|
222 override void destroyWidget () { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
223 parent.destroyItem (this); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
224 releaseHandle (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
225 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
226 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
227 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
228 * Returns a value which describes the position of the |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
229 * text or image in the receiver. The value will be one of |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
230 * <code>LEFT</code>, <code>RIGHT</code> or <code>CENTER</code>. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
231 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
232 * @return the alignment |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
233 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
234 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
235 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
236 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
237 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
238 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
239 public int getAlignment () { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
240 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
241 if ((style & DWT.LEFT) !is 0) return DWT.LEFT; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
242 if ((style & DWT.CENTER) !is 0) return DWT.CENTER; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
243 if ((style & DWT.RIGHT) !is 0) return DWT.RIGHT; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
244 return DWT.LEFT; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
245 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
246 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
247 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
248 * Gets the moveable attribute. A column that is |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
249 * not moveable cannot be reordered by the user |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
250 * by dragging the header but may be reordered |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
251 * by the programmer. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
252 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
253 * @return the moveable attribute |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
254 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
255 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
256 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
257 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
258 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
259 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
260 * @see Table#getColumnOrder() |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
261 * @see Table#setColumnOrder(int[]) |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
262 * @see TableColumn#setMoveable(bool) |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
263 * @see DWT#Move |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
264 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
265 * @since 3.1 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
266 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
267 public bool getMoveable() { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
268 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
269 return cast(bool)OS.gtk_tree_view_column_get_reorderable (handle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
270 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
271 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
272 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
273 * Returns the receiver's parent, which must be a <code>Table</code>. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
274 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
275 * @return the receiver's parent |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
276 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
277 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
278 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
279 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
280 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
281 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
282 public Table getParent () { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
283 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
284 return parent; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
285 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
286 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
287 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
288 * Gets the resizable attribute. A column that is |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
289 * not resizable cannot be dragged by the user but |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
290 * may be resized by the programmer. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
291 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
292 * @return the resizable attribute |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
293 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
294 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
295 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
296 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
297 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
298 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
299 public bool getResizable () { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
300 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
301 return cast(bool)OS.gtk_tree_view_column_get_resizable (handle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
302 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
303 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
304 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
305 * Returns the receiver's tool tip text, or null if it has |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
306 * not been set. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
307 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
308 * @return the receiver's tool tip text |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
309 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
310 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
311 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
312 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
313 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
314 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
315 * @since 3.2 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
316 */ |
238 | 317 public String getToolTipText () { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
318 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
319 return toolTipText; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
320 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
321 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
322 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
323 * Gets the width of the receiver. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
324 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
325 * @return the width |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
326 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
327 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
328 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
329 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
330 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
331 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
332 public int getWidth () { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
333 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
334 if (!OS.gtk_tree_view_column_get_visible (handle)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
335 return 0; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
336 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
337 if (useFixedWidth) return OS.gtk_tree_view_column_get_fixed_width (handle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
338 return OS.gtk_tree_view_column_get_width (handle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
339 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
340 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
341 override int gtk_clicked (GtkWidget* widget) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
342 /* |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
343 * There is no API to get a double click on a table column. Normally, when |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
344 * the mouse is double clicked, this is indicated by GDK_2BUTTON_PRESS |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
345 * but the table column sends the click signal on button release. The fix is to |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
346 * test for double click by remembering the last click time and mouse button |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
347 * and testing for the double click interval. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
348 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
349 bool doubleClick = false; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
350 bool postEvent_ = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
351 auto eventPtr = OS.gtk_get_current_event (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
352 if (eventPtr !is null) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
353 GdkEventButton* gdkEvent = cast(GdkEventButton*)eventPtr; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
354 switch (gdkEvent.type) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
355 case OS.GDK_BUTTON_RELEASE: { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
356 int clickTime = display.getDoubleClickTime (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
357 int eventTime = gdkEvent.time, eventButton = gdkEvent.button; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
358 if (lastButton is eventButton && lastTime !is 0 && Math.abs (lastTime - eventTime) <= clickTime) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
359 doubleClick = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
360 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
361 lastTime = eventTime is 0 ? 1: eventTime; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
362 lastButton = eventButton; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
363 break; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
364 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
365 case OS.GDK_MOTION_NOTIFY: { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
366 /* |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
367 * Bug in GTK. Dragging a column in a GtkTreeView causes a clicked |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
368 * signal to be emitted even though the mouse button was never released. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
369 * The fix to ignore the signal if the current GDK event is a motion notify. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
370 * The GTK bug was fixed in version 2.6 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
371 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
372 if (OS.GTK_VERSION < OS.buildVERSION (2, 6, 0)) postEvent_ = false; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
373 break; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
374 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
375 default: |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
376 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
377 OS.gdk_event_free (eventPtr); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
378 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
379 if (postEvent_) postEvent (doubleClick ? DWT.DefaultSelection : DWT.Selection); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
380 return 0; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
381 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
382 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
383 override int gtk_mnemonic_activate (GtkWidget* widget, int /*long*/ arg1) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
384 return parent.gtk_mnemonic_activate (widget, arg1); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
385 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
386 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
387 override int gtk_size_allocate (GtkWidget* widget, int /*long*/ allocation) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
388 useFixedWidth = false; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
389 int x = OS.GTK_WIDGET_X (widget); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
390 int width = OS.GTK_WIDGET_WIDTH (widget); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
391 if (x !is lastX) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
392 lastX = x; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
393 sendEvent (DWT.Move); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
394 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
395 if (width !is lastWidth) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
396 lastWidth = width; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
397 sendEvent (DWT.Resize); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
398 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
399 return 0; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
400 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
401 |
152
17f8449522fd
overloads second walkthrough
Frank Benoit <benoit@tionex.de>
parents:
150
diff
changeset
|
402 override void hookEvents () { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
403 super.hookEvents (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
404 OS.g_signal_connect_closure (handle, OS.clicked.ptr, display.closures [CLICKED], false); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
405 if (buttonHandle !is null) OS.g_signal_connect_closure_by_id (buttonHandle, display.signalIds [SIZE_ALLOCATE], 0, display.closures [SIZE_ALLOCATE], false); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
406 if (labelHandle !is null) OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, display.closures [MNEMONIC_ACTIVATE], false); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
407 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
408 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
409 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
410 * Causes the receiver to be resized to its preferred size. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
411 * For a composite, this involves computing the preferred size |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
412 * from its layout, if there is one. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
413 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
414 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
415 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
416 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
417 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
418 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
419 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
420 public void pack () { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
421 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
422 int width = 0; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
423 if (buttonHandle !is null) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
424 GtkRequisition requisition; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
425 OS.gtk_widget_size_request (buttonHandle, &requisition); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
426 width = requisition.width; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
427 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
428 if ((parent.style & DWT.VIRTUAL) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
429 for (int i=0; i<parent.items.length; i++) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
430 TableItem item = parent.items [i]; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
431 if (item !is null && item.cached) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
432 width = Math.max (width, parent.calculateWidth ( cast(GtkTreeViewColumn*)handle, cast(GtkTreeIter*)item.handle)); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
433 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
434 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
435 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
436 GtkTreeIter iter; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
437 if (OS.gtk_tree_model_get_iter_first (parent.modelHandle, &iter)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
438 do { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
439 width = Math.max (width, parent.calculateWidth (cast(GtkTreeViewColumn*)handle, &iter)); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
440 } while (OS.gtk_tree_model_iter_next(parent.modelHandle, &iter)); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
441 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
442 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
443 setWidth(width); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
444 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
445 |
152
17f8449522fd
overloads second walkthrough
Frank Benoit <benoit@tionex.de>
parents:
150
diff
changeset
|
446 override void register () { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
447 super.register (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
448 display.addWidget (handle, this); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
449 if (buttonHandle !is null) display.addWidget (buttonHandle, this); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
450 if (labelHandle !is null) display.addWidget (labelHandle, this); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
451 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
452 |
152
17f8449522fd
overloads second walkthrough
Frank Benoit <benoit@tionex.de>
parents:
150
diff
changeset
|
453 override void releaseHandle () { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
454 super.releaseHandle (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
455 handle = buttonHandle = labelHandle = imageHandle = null; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
456 modelIndex = -1; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
457 parent = null; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
458 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
459 |
152
17f8449522fd
overloads second walkthrough
Frank Benoit <benoit@tionex.de>
parents:
150
diff
changeset
|
460 override void releaseParent () { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
461 super.releaseParent (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
462 if (parent.sortColumn is this) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
463 parent.sortColumn = null; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
464 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
465 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
466 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
467 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
468 * Removes the listener from the collection of listeners who will |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
469 * be notified when the control is moved or resized. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
470 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
471 * @param listener the listener which should no longer be notified |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
472 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
473 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
474 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
475 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
476 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
477 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
478 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
479 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
480 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
481 * @see ControlListener |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
482 * @see #addControlListener |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
483 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
484 public void removeControlListener (ControlListener listener) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
485 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
486 if (listener is null) error (DWT.ERROR_NULL_ARGUMENT); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
487 if (eventTable is null) return; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
488 eventTable.unhook (DWT.Move, listener); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
489 eventTable.unhook (DWT.Resize, listener); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
490 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
491 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
492 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
493 * Removes the listener from the collection of listeners who will |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
494 * be notified when the control is selected by the user. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
495 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
496 * @param listener the listener which should no longer be notified |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
497 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
498 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
499 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
500 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
501 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
502 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
503 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
504 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
505 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
506 * @see SelectionListener |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
507 * @see #addSelectionListener |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
508 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
509 public void removeSelectionListener(SelectionListener listener) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
510 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
511 if (listener is null) error (DWT.ERROR_NULL_ARGUMENT); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
512 if (eventTable is null) return; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
513 eventTable.unhook (DWT.Selection, listener); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
514 eventTable.unhook (DWT.DefaultSelection,listener); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
515 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
516 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
517 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
518 * Controls how text and images will be displayed in the receiver. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
519 * The argument should be one of <code>LEFT</code>, <code>RIGHT</code> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
520 * or <code>CENTER</code>. |
259 | 521 * <p> |
522 * Note that due to a restriction on some platforms, the first column | |
523 * is always left aligned. | |
524 * </p> | |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
525 * @param alignment the new alignment |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
526 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
527 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
528 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
529 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
530 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
531 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
532 public void setAlignment (int alignment) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
533 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
534 if ((alignment & (DWT.LEFT | DWT.RIGHT | DWT.CENTER)) is 0) return; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
535 int index = parent.indexOf (this); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
536 if (index is -1 || index is 0) return; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
537 style &= ~(DWT.LEFT | DWT.RIGHT | DWT.CENTER); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
538 style |= alignment & (DWT.LEFT | DWT.RIGHT | DWT.CENTER); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
539 parent.createRenderers ( cast(GtkTreeViewColumn*)handle, modelIndex, index is 0, style); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
540 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
541 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
542 void setFontDescription (PangoFontDescription* font) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
543 OS.gtk_widget_modify_font (labelHandle, font); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
544 OS.gtk_widget_modify_font (imageHandle, font); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
545 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
546 |
150
f2e04420fd6c
reworked overrides and superclass aliases
Frank Benoit <benoit@tionex.de>
parents:
115
diff
changeset
|
547 public override void setImage (Image image) { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
548 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
549 super.setImage (image); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
550 if (image !is null) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
551 ImageList headerImageList = parent.headerImageList; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
552 if (headerImageList is null) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
553 headerImageList = parent.headerImageList = new ImageList (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
554 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
555 int imageIndex = headerImageList.indexOf (image); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
556 if (imageIndex is -1) imageIndex = headerImageList.add (image); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
557 auto pixbuf = headerImageList.getPixbuf (imageIndex); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
558 OS.gtk_image_set_from_pixbuf (imageHandle, pixbuf); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
559 OS.gtk_widget_show (imageHandle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
560 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
561 OS.gtk_image_set_from_pixbuf (imageHandle, null); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
562 OS.gtk_widget_hide (imageHandle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
563 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
564 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
565 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
566 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
567 * Sets the resizable attribute. A column that is |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
568 * resizable can be resized by the user dragging the |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
569 * edge of the header. A column that is not resizable |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
570 * cannot be dragged by the user but may be resized |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
571 * by the programmer. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
572 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
573 * @param resizable the resize attribute |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
574 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
575 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
576 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
577 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
578 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
579 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
580 public void setResizable (bool resizable) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
581 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
582 OS.gtk_tree_view_column_set_resizable (handle, resizable); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
583 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
584 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
585 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
586 * Sets the moveable attribute. A column that is |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
587 * moveable can be reordered by the user by dragging |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
588 * the header. A column that is not moveable cannot be |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
589 * dragged by the user but may be reordered |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
590 * by the programmer. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
591 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
592 * @param moveable the moveable attribute |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
593 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
594 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
595 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
596 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
597 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
598 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
599 * @see Table#setColumnOrder(int[]) |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
600 * @see Table#getColumnOrder() |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
601 * @see TableColumn#getMoveable() |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
602 * @see DWT#Move |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
603 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
604 * @since 3.1 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
605 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
606 public void setMoveable (bool moveable) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
607 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
608 OS.gtk_tree_view_column_set_reorderable (handle, moveable); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
609 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
610 |
152
17f8449522fd
overloads second walkthrough
Frank Benoit <benoit@tionex.de>
parents:
150
diff
changeset
|
611 override void setOrientation() { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
612 if ((parent.style & DWT.RIGHT_TO_LEFT) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
613 if (buttonHandle !is null) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
614 OS.gtk_widget_set_direction (buttonHandle, OS.GTK_TEXT_DIR_RTL); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
615 display.doSetDirectionProc( buttonHandle, OS.GTK_TEXT_DIR_RTL); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
616 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
617 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
618 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
619 |
238 | 620 public override void setText (String string) { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
621 checkWidget(); |
255
5a30aa9820f3
removed tango.stdc.stringz imports and allow null for arrays and string arguments.
Frank Benoit <benoit@tionex.de>
parents:
248
diff
changeset
|
622 // DWT extension: allow null for zero length string |
5a30aa9820f3
removed tango.stdc.stringz imports and allow null for arrays and string arguments.
Frank Benoit <benoit@tionex.de>
parents:
248
diff
changeset
|
623 //if (string is null) error (DWT.ERROR_NULL_ARGUMENT); |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
624 super.setText (string); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
625 char [] chars = fixMnemonic (string); |
248
34409a2fc053
Fix call OS.gtk_label_set_text_with_mnemonic with valid ptr, even for zero length strings.
Frank Benoit <benoit@tionex.de>
parents:
238
diff
changeset
|
626 OS.gtk_label_set_text_with_mnemonic (labelHandle, chars.toStringzValidPtr() ); |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
627 if (string.length !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
628 OS.gtk_widget_show (labelHandle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
629 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
630 OS.gtk_widget_hide (labelHandle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
631 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
632 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
633 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
634 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
635 * Sets the receiver's tool tip text to the argument, which |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
636 * may be null indicating that no tool tip text should be shown. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
637 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
638 * @param string the new tool tip text (or null) |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
639 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
640 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
641 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
642 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
643 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
644 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
645 * @since 3.2 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
646 */ |
238 | 647 public void setToolTipText (String string) { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
648 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
649 Shell shell = parent._getShell (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
650 setToolTipText (shell, string); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
651 toolTipText = string; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
652 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
653 |
238 | 654 void setToolTipText (Shell shell, String newString) { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
655 shell.setToolTipText (buttonHandle, newString); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
656 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
657 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
658 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
659 * Sets the width of the receiver. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
660 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
661 * @param width the new width |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
662 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
663 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
664 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
665 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
666 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
667 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
668 public void setWidth (int width) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
669 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
670 if (width < 0) return; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
671 if (width is lastWidth) return; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
672 if (width > 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
673 useFixedWidth = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
674 OS.gtk_tree_view_column_set_fixed_width (handle, width); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
675 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
676 /* |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
677 * Bug in GTK. For some reason, calling gtk_tree_view_column_set_visible() |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
678 * when the parent is not realized fails to show the column. The fix is to |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
679 * ensure that the table has been realized. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
680 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
681 if (width !is 0) OS.gtk_widget_realize (parent.handle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
682 OS.gtk_tree_view_column_set_visible (handle, width !is 0); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
683 lastWidth = width; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
684 sendEvent (DWT.Resize); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
685 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
686 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
687 } |