Mercurial > projects > dwt-linux
annotate dwt/widgets/TableItem.d @ 309:e0d7f76515af
Allow null args
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sun, 24 Aug 2008 20:57:41 +0200 |
parents | c0d810de7093 |
children |
rev | line source |
---|---|
123 | 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.TableItem; |
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.graphics.Color; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
22 import dwt.graphics.Font; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
23 import dwt.graphics.Image; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
24 import dwt.graphics.Rectangle; |
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.ImageList; |
90
9ba02d7fb226
Tree, TreeItem and TreeColumn
Frank Benoit <benoit@tionex.de>
parents:
89
diff
changeset
|
29 import dwt.widgets.TreeItem; |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
30 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
31 import Math = tango.math.Math; |
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 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
34 * Instances of this class represent a selectable user interface object |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
35 * that represents an item in a table. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
36 * <dl> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
37 * <dt><b>Styles:</b></dt> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
38 * <dd>(none)</dd> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
39 * <dt><b>Events:</b></dt> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
40 * <dd>(none)</dd> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
41 * </dl> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
42 * <p> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
43 * IMPORTANT: This class is <em>not</em> intended to be subclassed. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
44 * </p> |
259 | 45 * |
46 * @see <a href="http://www.eclipse.org/swt/snippets/#table">Table, TableItem, TableColumn snippets</a> | |
47 * @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
|
48 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
49 public class TableItem : Item { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
50 Table parent; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
51 Font font; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
52 Font[] cellFont; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
53 bool cached, grayed; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
54 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
55 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
56 * Constructs a new instance of this class given its parent |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
57 * (which must be a <code>Table</code>), a style value |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
58 * describing its behavior and appearance, and the index |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
59 * 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
|
60 * <p> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
61 * 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
|
62 * class <code>DWT</code> which is applicable to instances of this |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
63 * 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
|
64 * (that is, using the <code>int</code> "|" operator) two or more |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
65 * of those <code>DWT</code> style constants. The class description |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
66 * lists the style constants that are applicable to the class. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
67 * Style bits are also inherited from superclasses. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
68 * </p> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
69 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
70 * @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
|
71 * @param style the style of control to construct |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
72 * @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
|
73 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
74 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
75 * <li>ERROR_NULL_ARGUMENT - if the parent is null</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
76 * <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
|
77 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
78 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
79 * <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
|
80 * <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
|
81 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
82 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
83 * @see DWT |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
84 * @see Widget#checkSubclass |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
85 * @see Widget#getStyle |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
86 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
87 public this (Table parent, int style, int index) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
88 this (parent, style, index, true); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
89 } |
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 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
92 * Constructs a new instance of this class given its parent |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
93 * (which must be a <code>Table</code>) and a style value |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
94 * describing its behavior and appearance. The item is added |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
95 * to the end of the items maintained by its parent. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
96 * <p> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
97 * 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
|
98 * class <code>DWT</code> which is applicable to instances of this |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
99 * 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
|
100 * (that is, using the <code>int</code> "|" operator) two or more |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
101 * of those <code>DWT</code> style constants. The class description |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
102 * lists the style constants that are applicable to the class. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
103 * Style bits are also inherited from superclasses. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
104 * </p> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
105 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
106 * @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
|
107 * @param style the style of control to construct |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
108 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
109 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
110 * <li>ERROR_NULL_ARGUMENT - if the parent is null</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
111 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
112 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
113 * <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
|
114 * <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
|
115 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
116 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
117 * @see DWT |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
118 * @see Widget#checkSubclass |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
119 * @see Widget#getStyle |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
120 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
121 public this (Table parent, int style) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
122 this (parent, style, checkNull (parent).getItemCount (), true); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
123 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
124 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
125 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
126 this (Table parent, int style, int index, bool create) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
127 super (parent, style); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
128 this.parent = parent; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
129 if (create) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
130 parent.createItem (this, index); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
131 } else { |
123 | 132 handle = cast(GtkWidget*)OS.g_malloc (GtkTreeIter.sizeof); |
133 OS.gtk_tree_model_iter_nth_child (parent.modelHandle, handle, null, index); | |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
134 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
135 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
136 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
137 static Table checkNull (Table control) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
138 if (control is null) DWT.error (DWT.ERROR_NULL_ARGUMENT); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
139 return control; |
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 |
240 | 142 Color _getBackground () { |
143 void* ptr; | |
144 OS.gtk_tree_model_get1 (parent.modelHandle, handle, Table.BACKGROUND_COLUMN, &ptr); | |
145 if (ptr is null) return parent.getBackground (); | |
146 GdkColor* gdkColor = new GdkColor (); | |
147 *gdkColor = *cast(GdkColor*) ptr; | |
148 return Color.gtk_new (display, gdkColor); | |
149 } | |
150 | |
151 Color _getBackground (int index) { | |
152 int count = Math.max (1, parent.columnCount); | |
153 if (0 > index || index > count - 1) return _getBackground (); | |
154 void* ptr; | |
155 int modelIndex = parent.columnCount is 0 ? Table.FIRST_COLUMN : parent.columns [index].modelIndex; | |
156 OS.gtk_tree_model_get1 (parent.modelHandle, handle, modelIndex + Table.CELL_BACKGROUND, &ptr); | |
157 if (ptr is null) return _getBackground (); | |
158 GdkColor* gdkColor = new GdkColor (); | |
159 *gdkColor = *cast(GdkColor*) ptr; | |
160 return Color.gtk_new (display, gdkColor); | |
161 } | |
162 | |
163 bool _getChecked () { | |
164 void* ptr; | |
165 OS.gtk_tree_model_get1 (parent.modelHandle, handle, Table.CHECKED_COLUMN, &ptr); | |
166 return ptr !is null; | |
167 } | |
168 | |
169 Color _getForeground () { | |
170 void* ptr; | |
171 OS.gtk_tree_model_get1 (parent.modelHandle, handle, Table.FOREGROUND_COLUMN, &ptr); | |
172 if (ptr is null) return parent.getForeground (); | |
173 GdkColor* gdkColor = new GdkColor (); | |
174 *gdkColor = *cast(GdkColor*) ptr; | |
175 return Color.gtk_new (display, gdkColor); | |
176 } | |
177 | |
178 Color _getForeground (int index) { | |
179 int count = Math.max (1, parent.columnCount); | |
180 if (0 > index || index > count - 1) return _getForeground (); | |
181 void* ptr; | |
182 int modelIndex = parent.columnCount is 0 ? Table.FIRST_COLUMN : parent.columns [index].modelIndex; | |
183 OS.gtk_tree_model_get1 (parent.modelHandle, handle, modelIndex + Table.CELL_FOREGROUND, &ptr); | |
184 if (ptr is null) return _getForeground (); | |
185 GdkColor* gdkColor = new GdkColor (); | |
186 *gdkColor = *cast(GdkColor*) ptr; | |
187 return Color.gtk_new (display, gdkColor); | |
188 } | |
189 | |
190 Image _getImage (int index) { | |
191 int count = Math.max (1, parent.getColumnCount ()); | |
192 if (0 > index || index > count - 1) return null; | |
193 void* ptr; | |
194 int modelIndex = parent.columnCount is 0 ? Table.FIRST_COLUMN : parent.columns [index].modelIndex; | |
195 OS.gtk_tree_model_get1 (parent.modelHandle, handle, modelIndex + Table.CELL_PIXBUF, &ptr); | |
196 if (ptr is null) return null; | |
197 ImageList imageList = parent.imageList; | |
198 int imageIndex = imageList.indexOf (ptr); | |
199 if (imageIndex is -1) return null; | |
200 return imageList.get (imageIndex); | |
201 } | |
202 | |
203 String _getText (int index) { | |
204 int count = Math.max (1, parent.getColumnCount ()); | |
205 if (0 > index || index > count - 1) return ""; | |
206 void* ptr; | |
207 int modelIndex = parent.columnCount is 0 ? Table.FIRST_COLUMN : parent.columns [index].modelIndex; | |
208 OS.gtk_tree_model_get1 (parent.modelHandle, handle, modelIndex + Table.CELL_TEXT, &ptr); | |
209 if (ptr is null) return ""; | |
255
5a30aa9820f3
removed tango.stdc.stringz imports and allow null for arrays and string arguments.
Frank Benoit <benoit@tionex.de>
parents:
240
diff
changeset
|
210 char[] buffer = fromStringz( cast(char*)ptr).dup; |
240 | 211 OS.g_free (ptr); |
212 return buffer; | |
213 } | |
214 | |
152
17f8449522fd
overloads second walkthrough
Frank Benoit <benoit@tionex.de>
parents:
150
diff
changeset
|
215 protected override void checkSubclass () { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
216 if (!isValidSubclass ()) error (DWT.ERROR_INVALID_SUBCLASS); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
217 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
218 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
219 void clear () { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
220 if (parent.currentItem is this) return; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
221 if (cached || (parent.style & DWT.VIRTUAL) is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
222 int columnCount = OS.gtk_tree_model_get_n_columns (parent.modelHandle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
223 for (int i=0; i<columnCount; i++) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
224 OS.gtk_list_store_set1 (parent.modelHandle, handle, i, null); |
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 * Bug in GTK. When using fixed-height-mode, |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
228 * row changes do not cause the row to be repainted. The fix is to |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
229 * invalidate the row when it is cleared. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
230 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
231 if ((parent.style & DWT.VIRTUAL) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
232 if (OS.GTK_VERSION >= OS.buildVERSION (2, 3, 2) && OS.GTK_VERSION < OS.buildVERSION (2, 6, 3)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
233 redraw (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
234 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
235 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
236 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
237 cached = false; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
238 font = null; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
239 cellFont = null; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
240 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
241 |
152
17f8449522fd
overloads second walkthrough
Frank Benoit <benoit@tionex.de>
parents:
150
diff
changeset
|
242 override void destroyWidget () { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
243 parent.destroyItem (this); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
244 releaseHandle (); |
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 * Returns the receiver's background color. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
249 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
250 * @return the background color |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
251 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
252 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
253 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
254 * <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
|
255 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
256 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
257 * @since 2.0 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
258 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
259 public Color getBackground () { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
260 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
261 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
240 | 262 return _getBackground (); |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
263 } |
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 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
266 * Returns a rectangle describing the receiver's size and location |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
267 * relative to its parent. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
268 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
269 * @return the receiver's bounding rectangle |
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 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
272 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
273 * <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
|
274 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
275 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
276 * @since 3.2 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
277 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
278 public Rectangle getBounds () { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
279 // TODO fully test on early and later versions of GTK |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
280 // shifted a bit too far right on later versions of GTK - however, old Tree also had this problem |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
281 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
282 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
283 auto parentHandle = parent.handle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
284 auto column = OS.gtk_tree_view_get_column (parentHandle, 0); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
285 if (column is null) return new Rectangle (0, 0, 0, 0); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
286 auto textRenderer = parent.getTextRenderer (column); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
287 auto pixbufRenderer = parent.getPixbufRenderer (column); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
288 if (textRenderer is null || pixbufRenderer is null) return new Rectangle (0, 0, 0, 0); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
289 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
290 auto path = OS.gtk_tree_model_get_path (parent.modelHandle, handle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
291 OS.gtk_widget_realize (parentHandle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
292 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
293 bool isExpander = OS.gtk_tree_model_iter_n_children (parent.modelHandle, handle) > 0; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
294 bool isExpanded = cast(bool)OS.gtk_tree_view_row_expanded (parentHandle, path); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
295 OS.gtk_tree_view_column_cell_set_cell_data (column, parent.modelHandle, handle, isExpander, isExpanded); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
296 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
297 GdkRectangle rect; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
298 OS.gtk_tree_view_get_cell_area (parentHandle, path, column, &rect); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
299 OS.gtk_tree_path_free (path); |
240 | 300 if ((parent.getStyle () & DWT.MIRRORED) !is 0) rect.x = parent.getClientWidth () - rect.width - rect.x; |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
301 int right = rect.x + rect.width; |
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 int x, w; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
304 parent.ignoreSize = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
305 OS.gtk_cell_renderer_get_size (textRenderer, parentHandle, null, null, null, &w, null); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
306 parent.ignoreSize = false; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
307 rect.width = w; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
308 int buffer; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
309 if (OS.gtk_tree_view_get_expander_column (parentHandle) is column) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
310 OS.gtk_widget_style_get1 (parentHandle, OS.expander_size.ptr, &buffer); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
311 rect.x += buffer + TreeItem.EXPANDER_EXTRA_PADDING; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
312 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
313 OS.gtk_widget_style_get1 (parentHandle, OS.horizontal_separator.ptr, &buffer); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
314 int horizontalSeparator = buffer; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
315 rect.x += horizontalSeparator; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
316 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
317 if (OS.GTK_VERSION >= OS.buildVERSION (2, 1, 3)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
318 OS.gtk_tree_view_column_cell_get_position (column, textRenderer, &x, null); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
319 rect.x += x; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
320 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
321 if ((parent.style & DWT.CHECK) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
322 OS.gtk_cell_renderer_get_size (parent.checkRenderer, parentHandle, null, null, null, &w, null); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
323 rect.x += w + horizontalSeparator; |
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 OS.gtk_cell_renderer_get_size (pixbufRenderer, parentHandle, null, null, null, &w, null); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
326 rect.x += w + horizontalSeparator; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
327 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
328 if (parent.columnCount > 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
329 if (rect.x + rect.width > right) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
330 rect.width = Math.max (0, right - rect.x); |
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 } |
240 | 333 int width = OS.gtk_tree_view_column_get_visible (column) ? rect.width + 1 : 0; |
334 return new Rectangle (rect.x, rect.y, width, rect.height + 1); | |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
335 } |
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 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
338 * Returns the background color at the given column index in the receiver. |
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 * @param index the column index |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
341 * @return the background color |
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 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
344 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
345 * <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
|
346 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
347 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
348 * @since 3.0 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
349 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
350 public Color getBackground (int index) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
351 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
352 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
240 | 353 return _getBackground (index); |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
354 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
355 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
356 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
357 * Returns a rectangle describing the receiver's size and location |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
358 * relative to its parent at a column in the table. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
359 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
360 * @param index the index that specifies the column |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
361 * @return the receiver's bounding column rectangle |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
362 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
363 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
364 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
365 * <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
|
366 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
367 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
368 public Rectangle getBounds (int index) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
369 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
370 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
371 auto parentHandle = parent.handle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
372 GtkTreeViewColumn* column; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
373 if (index >= 0 && index < parent.columnCount) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
374 column = cast(GtkTreeViewColumn*)parent.columns [index].handle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
375 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
376 column = OS.gtk_tree_view_get_column (parentHandle, index); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
377 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
378 if (column is null) return new Rectangle (0, 0, 0, 0); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
379 auto path = OS.gtk_tree_model_get_path (parent.modelHandle, handle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
380 OS.gtk_widget_realize (parentHandle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
381 GdkRectangle rect; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
382 OS.gtk_tree_view_get_cell_area (parentHandle, path, column, &rect); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
383 OS.gtk_tree_path_free (path); |
240 | 384 if ((parent.getStyle () & DWT.MIRRORED) !is 0) rect.x = parent.getClientWidth () - rect.width - rect.x; |
89
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 if (index is 0 && (parent.style & DWT.CHECK) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
387 if (OS.GTK_VERSION >= OS.buildVERSION (2, 1, 3)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
388 int x, w; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
389 OS.gtk_tree_view_column_cell_get_position (column, parent.checkRenderer, &x, &w); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
390 rect.x += x + w; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
391 rect.width -= x + w; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
392 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
393 int w; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
394 OS.gtk_cell_renderer_get_size (parent.checkRenderer, parentHandle, null, null, null, &w, null); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
395 int buffer; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
396 OS.gtk_widget_style_get1 (parentHandle, OS.horizontal_separator.ptr, &buffer); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
397 rect.x += w + buffer; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
398 rect.width -= w + buffer; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
399 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
400 } |
240 | 401 int width = OS.gtk_tree_view_column_get_visible (column) ? rect.width + 1 : 0; |
402 return new Rectangle (rect.x, rect.y, width, rect.height + 1); | |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
403 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
404 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
405 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
406 * Returns <code>true</code> if the receiver is checked, |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
407 * and false otherwise. When the parent does not have |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
408 * the <code>CHECK</code> style, return false. |
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 * @return the checked state of the checkbox |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
411 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
412 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
413 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
414 * <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
|
415 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
416 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
417 public bool getChecked () { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
418 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
419 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
420 if ((parent.style & DWT.CHECK) is 0) return false; |
240 | 421 return _getChecked (); |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
422 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
423 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
424 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
425 * Returns the font that the receiver will use to paint textual information for this item. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
426 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
427 * @return the receiver's font |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
428 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
429 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
430 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
431 * <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
|
432 * </ul> |
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 * @since 3.0 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
435 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
436 public Font getFont () { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
437 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
438 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
439 return font !is null ? font : parent.getFont (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
440 } |
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 * Returns the font that the receiver will use to paint textual information |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
444 * for the specified cell in this item. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
445 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
446 * @param index the column index |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
447 * @return the receiver's font |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
448 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
449 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
450 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
451 * <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
|
452 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
453 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
454 * @since 3.0 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
455 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
456 public Font getFont (int index) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
457 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
458 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
459 int count = Math.max (1, parent.columnCount); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
460 if (0 > index || index > count - 1) return getFont (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
461 if (cellFont is null || cellFont [index] is null) return getFont (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
462 return cellFont [index]; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
463 } |
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 * Returns the foreground color that the receiver will use to draw. |
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 * @return the receiver's foreground color |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
469 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
470 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
471 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
472 * <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
|
473 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
474 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
475 * @since 2.0 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
476 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
477 public Color getForeground () { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
478 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
479 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
240 | 480 return _getForeground (); |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
481 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
482 |
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 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
485 * Returns the foreground color at the given column index in the receiver. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
486 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
487 * @param index the column index |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
488 * @return the foreground color |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
489 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
490 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
491 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
492 * <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
|
493 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
494 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
495 * @since 3.0 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
496 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
497 public Color getForeground (int index) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
498 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
499 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
240 | 500 return _getForeground (index); |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
501 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
502 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
503 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
504 * Returns <code>true</code> if the receiver is grayed, |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
505 * and false otherwise. When the parent does not have |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
506 * the <code>CHECK</code> style, return false. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
507 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
508 * @return the grayed state of the checkbox |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
509 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
510 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
511 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
512 * <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
|
513 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
514 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
515 public bool getGrayed () { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
516 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
517 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
518 if ((parent.style & DWT.CHECK) is 0) return false; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
519 return grayed; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
520 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
521 |
150
f2e04420fd6c
reworked overrides and superclass aliases
Frank Benoit <benoit@tionex.de>
parents:
123
diff
changeset
|
522 public override Image getImage () { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
523 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
524 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
525 return getImage (0); |
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 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
528 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
529 * Returns the image stored at the given column index in the receiver, |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
530 * or null if the image has not been set or if the column does not exist. |
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 * @param index the column index |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
533 * @return the image stored at the given column index in the receiver |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
534 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
535 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
536 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
537 * <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
|
538 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
539 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
540 public Image getImage (int index) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
541 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
542 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
240 | 543 return _getImage (index); |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
544 } |
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 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
547 * Returns a rectangle describing the size and location |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
548 * relative to its parent of an image at a column in the |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
549 * table. An empty rectangle is returned if index exceeds |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
550 * the index of the table's last column. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
551 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
552 * @param index the index that specifies the column |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
553 * @return the receiver's bounding image rectangle |
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 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
556 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
557 * <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
|
558 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
559 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
560 public Rectangle getImageBounds (int index) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
561 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
562 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
563 auto parentHandle = parent.handle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
564 GtkTreeViewColumn* column; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
565 if (index >= 0 && index < parent.columnCount) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
566 column = cast(GtkTreeViewColumn*)parent.columns [index].handle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
567 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
568 column = OS.gtk_tree_view_get_column (parentHandle, index); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
569 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
570 if (column is null) return new Rectangle (0, 0, 0, 0); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
571 auto pixbufRenderer = parent.getPixbufRenderer (column); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
572 if (pixbufRenderer is null) return new Rectangle (0, 0, 0, 0); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
573 GdkRectangle rect; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
574 auto path = OS.gtk_tree_model_get_path (parent.modelHandle, handle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
575 OS.gtk_widget_realize (parentHandle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
576 OS.gtk_tree_view_get_cell_area (parentHandle, path, column, &rect); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
577 OS.gtk_tree_path_free (path); |
240 | 578 if ((parent.getStyle () & DWT.MIRRORED) !is 0) rect.x = parent.getClientWidth () - rect.width - rect.x; |
89
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 * The OS call gtk_cell_renderer_get_size() provides the width of image to be drawn |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
581 * by the cell renderer. If there is no image in the cell, the width is zero. If the table contains |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
582 * images of varying widths, gtk_cell_renderer_get_size() will return the width of the image, |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
583 * not the width of the area in which the image is drawn. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
584 * New API was added in GTK 2.1.3 for determining the full width of the renderer area. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
585 * For earlier versions of GTK, the result is only correct if all rows have images of the same |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
586 * width. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
587 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
588 if (OS.GTK_VERSION >= OS.buildVERSION (2, 1, 3)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
589 int x, w; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
590 OS.gtk_tree_view_column_cell_get_position (column, pixbufRenderer, &x, &w); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
591 rect.x += x; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
592 rect.width = w; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
593 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
594 int w; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
595 OS.gtk_tree_view_column_cell_set_cell_data (column, parent.modelHandle, handle, false, false); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
596 OS.gtk_cell_renderer_get_size (pixbufRenderer, parentHandle, null, null, null, &w, null); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
597 rect.width = w; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
598 } |
240 | 599 int width = OS.gtk_tree_view_column_get_visible (column) ? rect.width : 0; |
600 return new Rectangle (rect.x, rect.y, width, rect.height + 1); | |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
601 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
602 |
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 * Gets the image indent. |
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 * @return the indent |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
607 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
608 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
609 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
610 * <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
|
611 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
612 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
613 public int getImageIndent () { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
614 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
615 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
616 /* Image indent is not supported on GTK */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
617 return 0; |
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 override String getNameText () { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
621 if ((parent.style & DWT.VIRTUAL) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
622 if (!cached) return "*virtual*"; //$NON-NLS-1$ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
623 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
624 return super.getNameText (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
625 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
626 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
627 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
628 * 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
|
629 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
630 * @return the receiver's parent |
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 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
633 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
634 * <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
|
635 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
636 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
637 public Table getParent () { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
638 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
639 return parent; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
640 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
641 |
238 | 642 public override String getText () { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
643 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
644 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
645 return getText (0); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
646 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
647 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
648 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
649 * Returns the text stored at the given column index in the receiver, |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
650 * or empty string if the text has not been set. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
651 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
652 * @param index the column index |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
653 * @return the text stored at the given column index in the receiver |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
654 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
655 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
656 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
657 * <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
|
658 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
659 */ |
238 | 660 public String getText (int index) { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
661 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
662 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
240 | 663 return _getText (index); |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
664 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
665 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
666 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
667 * Returns a rectangle describing the size and location |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
668 * relative to its parent of the text at a column in the |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
669 * table. An empty rectangle is returned if index exceeds |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
670 * the index of the table's last column. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
671 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
672 * @param index the index that specifies the column |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
673 * @return the receiver's bounding text rectangle |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
674 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
675 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
676 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
677 * <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
|
678 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
679 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
680 * @since 3.3 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
681 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
682 public Rectangle getTextBounds (int index) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
683 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
684 if (!parent.checkData (this)) error (DWT.ERROR_WIDGET_DISPOSED); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
685 int count = Math.max (1, parent.getColumnCount ()); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
686 if (0 > index || index > count - 1) return new Rectangle (0, 0, 0, 0); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
687 // TODO fully test on early and later versions of GTK |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
688 // shifted a bit too far right on later versions of GTK - however, old Tree also had this problem |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
689 auto parentHandle = parent.handle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
690 GtkTreeViewColumn* column; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
691 if (index >= 0 && index < parent.columnCount) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
692 column = cast(GtkTreeViewColumn*)parent.columns [index].handle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
693 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
694 column = OS.gtk_tree_view_get_column (parentHandle, index); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
695 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
696 if (column is null) return new Rectangle (0, 0, 0, 0); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
697 auto textRenderer = parent.getTextRenderer (column); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
698 auto pixbufRenderer = parent.getPixbufRenderer (column); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
699 if (textRenderer is null || pixbufRenderer is null) return new Rectangle (0, 0, 0, 0); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
700 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
701 auto path = OS.gtk_tree_model_get_path (parent.modelHandle, handle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
702 OS.gtk_widget_realize (parentHandle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
703 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
704 bool isExpander = OS.gtk_tree_model_iter_n_children (parent.modelHandle, handle) > 0; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
705 bool isExpanded = cast(bool)OS.gtk_tree_view_row_expanded (parentHandle, path); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
706 OS.gtk_tree_view_column_cell_set_cell_data (column, parent.modelHandle, handle, isExpander, isExpanded); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
707 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
708 GdkRectangle rect; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
709 OS.gtk_tree_view_get_cell_area (parentHandle, path, column, &rect); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
710 OS.gtk_tree_path_free (path); |
240 | 711 if ((parent.getStyle () & DWT.MIRRORED) !is 0) rect.x = parent.getClientWidth () - rect.width - rect.x; |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
712 int right = rect.x + rect.width; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
713 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
714 int x, w; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
715 parent.ignoreSize = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
716 OS.gtk_cell_renderer_get_size (textRenderer, parentHandle, null, null, null, &w, null); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
717 parent.ignoreSize = false; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
718 int buffer; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
719 if (OS.gtk_tree_view_get_expander_column (parentHandle) is column) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
720 OS.gtk_widget_style_get1 (parentHandle, OS.expander_size.ptr, &buffer); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
721 rect.x += buffer + TreeItem.EXPANDER_EXTRA_PADDING; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
722 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
723 OS.gtk_widget_style_get1 (parentHandle, OS.horizontal_separator.ptr, &buffer); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
724 int horizontalSeparator = buffer; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
725 rect.x += horizontalSeparator; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
726 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
727 if (OS.GTK_VERSION >= OS.buildVERSION (2, 1, 3)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
728 OS.gtk_tree_view_column_cell_get_position (column, textRenderer, &x, null); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
729 rect.x += x; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
730 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
731 if ((parent.style & DWT.CHECK) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
732 OS.gtk_cell_renderer_get_size (parent.checkRenderer, parentHandle, null, null, null, &w, null); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
733 rect.x += w + horizontalSeparator; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
734 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
735 OS.gtk_cell_renderer_get_size (pixbufRenderer, parentHandle, null, null, null, &w, null); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
736 rect.x += w + horizontalSeparator; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
737 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
738 if (parent.columnCount > 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
739 if (rect.x + rect.width > right) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
740 rect.width = Math.max (0, right - rect.x); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
741 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
742 } |
240 | 743 int width = OS.gtk_tree_view_column_get_visible (column) ? rect.width + 1 : 0; |
744 return new Rectangle (rect.x, rect.y, width, rect.height + 1); | |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
745 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
746 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
747 void redraw () { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
748 if ((OS.GTK_WIDGET_FLAGS (parent.handle) & OS.GTK_REALIZED) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
749 auto parentHandle = parent.handle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
750 auto path = OS.gtk_tree_model_get_path (parent.modelHandle, handle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
751 GdkRectangle rect; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
752 OS.gtk_tree_view_get_cell_area (parentHandle, path, null, &rect); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
753 OS.gtk_tree_path_free (path); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
754 auto window = OS.gtk_tree_view_get_bin_window (parentHandle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
755 rect.x = 0; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
756 int w, h; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
757 OS.gdk_drawable_get_size (window, &w, &h); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
758 rect.width = w; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
759 OS.gdk_window_invalidate_rect (window, &rect, false); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
760 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
761 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
762 |
152
17f8449522fd
overloads second walkthrough
Frank Benoit <benoit@tionex.de>
parents:
150
diff
changeset
|
763 override void releaseHandle () { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
764 if (handle !is null) OS.g_free (handle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
765 handle = null; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
766 super.releaseHandle (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
767 parent = null; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
768 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
769 |
152
17f8449522fd
overloads second walkthrough
Frank Benoit <benoit@tionex.de>
parents:
150
diff
changeset
|
770 override void releaseWidget () { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
771 super.releaseWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
772 font = null; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
773 cellFont = null; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
774 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
775 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
776 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
777 * Sets the receiver's background color to the color specified |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
778 * by the argument, or to the default system color for the item |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
779 * if the argument is null. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
780 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
781 * @param color the new color (or null) |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
782 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
783 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
784 * <li>ERROR_INVALID_ARGUMENT - if the argument has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
785 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
786 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
787 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
788 * <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
|
789 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
790 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
791 * @since 2.0 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
792 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
793 public void setBackground (Color color) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
794 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
795 if (color !is null && color.isDisposed ()) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
796 DWT.error (DWT.ERROR_INVALID_ARGUMENT); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
797 } |
240 | 798 if (_getBackground ().opEquals (color)) return; |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
799 GdkColor* gdkColor = color !is null ? color.handle : null; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
800 OS.gtk_list_store_set1 (parent.modelHandle, handle, Table.BACKGROUND_COLUMN, gdkColor); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
801 /* |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
802 * Bug in GTK. When using fixed-height-mode, |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
803 * row changes do not cause the row to be repainted. The fix is to |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
804 * invalidate the row when it is cleared. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
805 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
806 if ((parent.style & DWT.VIRTUAL) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
807 if (OS.GTK_VERSION >= OS.buildVERSION (2, 3, 2) && OS.GTK_VERSION < OS.buildVERSION (2, 6, 3)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
808 redraw (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
809 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
810 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
811 cached = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
812 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
813 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
814 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
815 * Sets the background color at the given column index in the receiver |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
816 * to the color specified by the argument, or to the default system color for the item |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
817 * if the argument is null. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
818 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
819 * @param index the column index |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
820 * @param color the new color (or null) |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
821 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
822 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
823 * <li>ERROR_INVALID_ARGUMENT - if the argument has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
824 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
825 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
826 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
827 * <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
|
828 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
829 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
830 * @since 3.0 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
831 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
832 public void setBackground (int index, Color color) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
833 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
834 if (color !is null && color.isDisposed ()) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
835 DWT.error (DWT.ERROR_INVALID_ARGUMENT); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
836 } |
240 | 837 if (_getBackground (index).opEquals (color)) return; |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
838 int count = Math.max (1, parent.getColumnCount ()); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
839 if (0 > index || index > count - 1) return; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
840 int modelIndex = parent.columnCount is 0 ? Table.FIRST_COLUMN : parent.columns [index].modelIndex; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
841 GdkColor* gdkColor = color !is null ? color.handle : null; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
842 OS.gtk_list_store_set1 (parent.modelHandle, handle, modelIndex + Table.CELL_BACKGROUND, gdkColor); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
843 /* |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
844 * Bug in GTK. When using fixed-height-mode, |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
845 * row changes do not cause the row to be repainted. The fix is to |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
846 * invalidate the row when it is cleared. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
847 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
848 if ((parent.style & DWT.VIRTUAL) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
849 if (OS.GTK_VERSION >= OS.buildVERSION (2, 3, 2) && OS.GTK_VERSION < OS.buildVERSION (2, 6, 3)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
850 redraw (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
851 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
852 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
853 cached = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
854 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
855 if (color !is null) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
856 bool customDraw = (parent.columnCount is 0) ? parent.firstCustomDraw : parent.columns [index].customDraw; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
857 if (!customDraw) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
858 if ((parent.style & DWT.VIRTUAL) is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
859 auto parentHandle = parent.handle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
860 GtkTreeViewColumn* column; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
861 if (parent.columnCount > 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
862 column = cast(GtkTreeViewColumn*)parent.columns [index].handle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
863 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
864 column = OS.gtk_tree_view_get_column (parentHandle, index); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
865 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
866 if (column is null) return; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
867 auto textRenderer = parent.getTextRenderer (column); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
868 auto imageRenderer = parent.getPixbufRenderer (column); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
869 display.doCellDataProc( parentHandle, column, cast(GtkCellRenderer*)textRenderer ); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
870 display.doCellDataProc( parentHandle, column, cast(GtkCellRenderer*)imageRenderer ); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
871 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
872 if (parent.columnCount is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
873 parent.firstCustomDraw = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
874 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
875 parent.columns [index].customDraw = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
876 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
877 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
878 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
879 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
880 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
881 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
882 * Sets the checked state of the checkbox for this item. This state change |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
883 * only applies if the Table was created with the DWT.CHECK style. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
884 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
885 * @param checked the new checked state of the checkbox |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
886 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
887 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
888 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
889 * <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
|
890 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
891 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
892 public void setChecked (bool checked) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
893 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
894 if ((parent.style & DWT.CHECK) is 0) return; |
240 | 895 if (_getChecked () is checked) return; |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
896 OS.gtk_list_store_set1 (parent.modelHandle, handle, Table.CHECKED_COLUMN, cast(void*)cast(int)checked); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
897 /* |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
898 * GTK+'s "inconsistent" state does not match DWT's concept of grayed. To |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
899 * show checked+grayed differently from unchecked+grayed, we must toggle the |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
900 * grayed state on check and uncheck. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
901 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
902 OS.gtk_list_store_set1 (parent.modelHandle, handle, Table.GRAYED_COLUMN, cast(void*)cast(int)( !checked ? false : grayed)); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
903 cached = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
904 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
905 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
906 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
907 * Sets the font that the receiver will use to paint textual information |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
908 * for this item to the font specified by the argument, or to the default font |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
909 * for that kind of control if the argument is null. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
910 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
911 * @param font the new font (or null) |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
912 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
913 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
914 * <li>ERROR_INVALID_ARGUMENT - if the argument has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
915 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
916 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
917 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
918 * <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
|
919 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
920 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
921 * @since 3.0 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
922 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
923 public void setFont (Font font){ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
924 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
925 if (font !is null && font.isDisposed ()) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
926 DWT.error (DWT.ERROR_INVALID_ARGUMENT); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
927 } |
240 | 928 Font oldFont = this.font; |
929 if (oldFont is font) return; | |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
930 this.font = font; |
240 | 931 if (oldFont !is null && oldFont.opEquals (font)) return; |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
932 auto fontHandle = font !is null ? font.handle : null; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
933 OS.gtk_list_store_set1 (parent.modelHandle, handle, Table.FONT_COLUMN, fontHandle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
934 /* |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
935 * Bug in GTK. When using fixed-height-mode, |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
936 * row changes do not cause the row to be repainted. The fix is to |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
937 * invalidate the row when it is cleared. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
938 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
939 if ((parent.style & DWT.VIRTUAL) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
940 if (OS.GTK_VERSION >= OS.buildVERSION (2, 3, 2) && OS.GTK_VERSION < OS.buildVERSION (2, 6, 3)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
941 redraw (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
942 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
943 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
944 cached = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
945 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
946 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
947 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
948 * Sets the font that the receiver will use to paint textual information |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
949 * for the specified cell in this item to the font specified by the |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
950 * argument, or to the default font for that kind of control if the |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
951 * argument is null. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
952 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
953 * @param index the column index |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
954 * @param font the new font (or null) |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
955 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
956 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
957 * <li>ERROR_INVALID_ARGUMENT - if the argument has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
958 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
959 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
960 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
961 * <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
|
962 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
963 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
964 * @since 3.0 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
965 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
966 public void setFont (int index, Font font) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
967 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
968 if (font !is null && font.isDisposed ()) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
969 DWT.error (DWT.ERROR_INVALID_ARGUMENT); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
970 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
971 int count = Math.max (1, parent.getColumnCount ()); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
972 if (0 > index || index > count - 1) return; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
973 if (cellFont is null) { |
240 | 974 if (font is null) return; |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
975 cellFont = new Font [count]; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
976 } |
240 | 977 Font oldFont = cellFont [index]; |
978 if (oldFont is font) return; | |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
979 cellFont [index] = font; |
240 | 980 if (oldFont !is null && oldFont.opEquals (font)) return; |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
981 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
982 int modelIndex = parent.columnCount is 0 ? Table.FIRST_COLUMN : parent.columns [index].modelIndex; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
983 auto fontHandle = font !is null ? font.handle : null; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
984 OS.gtk_list_store_set1 (parent.modelHandle, handle, modelIndex + Table.CELL_FONT, fontHandle); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
985 /* |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
986 * Bug in GTK. When using fixed-height-mode, |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
987 * row changes do not cause the row to be repainted. The fix is to |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
988 * invalidate the row when it is cleared. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
989 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
990 if ((parent.style & DWT.VIRTUAL) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
991 if (OS.GTK_VERSION >= OS.buildVERSION (2, 3, 2) && OS.GTK_VERSION < OS.buildVERSION (2, 6, 3)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
992 redraw (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
993 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
994 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
995 cached = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
996 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
997 if (font !is null) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
998 bool customDraw = (parent.columnCount is 0) ? parent.firstCustomDraw : parent.columns [index].customDraw; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
999 if (!customDraw) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1000 if ((parent.style & DWT.VIRTUAL) is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1001 auto parentHandle = parent.handle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1002 GtkTreeViewColumn* column; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1003 if (parent.columnCount > 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1004 column = cast(GtkTreeViewColumn*)parent.columns [index].handle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1005 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1006 column = OS.gtk_tree_view_get_column (parentHandle, index); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1007 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1008 if (column is null) return; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1009 auto textRenderer = parent.getTextRenderer (column); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1010 auto imageRenderer = parent.getPixbufRenderer (column); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1011 display.doCellDataProc( parentHandle, column, cast(GtkCellRenderer*)textRenderer ); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1012 display.doCellDataProc( parentHandle, column, cast(GtkCellRenderer*)imageRenderer ); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1013 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1014 if (parent.columnCount is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1015 parent.firstCustomDraw = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1016 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1017 parent.columns [index].customDraw = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1018 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1019 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1020 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1021 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1022 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1023 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1024 * Sets the receiver's foreground color to the color specified |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1025 * by the argument, or to the default system color for the item |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1026 * if the argument is null. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1027 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1028 * @param color the new color (or null) |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1029 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1030 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1031 * <li>ERROR_INVALID_ARGUMENT - if the argument has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1032 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1033 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1034 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1035 * <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
|
1036 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1037 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1038 * @since 2.0 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1039 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1040 public void setForeground (Color color){ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1041 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1042 if (color !is null && color.isDisposed ()) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1043 DWT.error (DWT.ERROR_INVALID_ARGUMENT); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1044 } |
240 | 1045 if (_getForeground ().opEquals (color)) return; |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1046 GdkColor* gdkColor = color !is null ? color.handle : null; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1047 OS.gtk_list_store_set1 (parent.modelHandle, handle, Table.FOREGROUND_COLUMN, gdkColor); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1048 /* |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1049 * Bug in GTK. When using fixed-height-mode, |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1050 * row changes do not cause the row to be repainted. The fix is to |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1051 * invalidate the row when it is cleared. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1052 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1053 if ((parent.style & DWT.VIRTUAL) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1054 if (OS.GTK_VERSION >= OS.buildVERSION (2, 3, 2) && OS.GTK_VERSION < OS.buildVERSION (2, 6, 3)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1055 redraw (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1056 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1057 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1058 cached = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1059 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1060 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1061 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1062 * Sets the foreground color at the given column index in the receiver |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1063 * to the color specified by the argument, or to the default system color for the item |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1064 * if the argument is null. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1065 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1066 * @param index the column index |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1067 * @param color the new color (or null) |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1068 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1069 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1070 * <li>ERROR_INVALID_ARGUMENT - if the argument has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1071 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1072 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1073 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1074 * <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
|
1075 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1076 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1077 * @since 3.0 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1078 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1079 public void setForeground (int index, Color color){ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1080 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1081 if (color !is null && color.isDisposed ()) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1082 DWT.error (DWT.ERROR_INVALID_ARGUMENT); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1083 } |
240 | 1084 if (_getForeground (index).opEquals (color)) return; |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1085 int count = Math.max (1, parent.getColumnCount ()); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1086 if (0 > index || index > count - 1) return; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1087 int modelIndex = parent.columnCount is 0 ? Table.FIRST_COLUMN : parent.columns [index].modelIndex; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1088 GdkColor* gdkColor = color !is null ? color.handle : null; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1089 OS.gtk_list_store_set1 (parent.modelHandle, handle, modelIndex + Table.CELL_FOREGROUND, gdkColor); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1090 /* |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1091 * Bug in GTK. When using fixed-height-mode, |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1092 * row changes do not cause the row to be repainted. The fix is to |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1093 * invalidate the row when it is cleared. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1094 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1095 if ((parent.style & DWT.VIRTUAL) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1096 if (OS.GTK_VERSION >= OS.buildVERSION (2, 3, 2) && OS.GTK_VERSION < OS.buildVERSION (2, 6, 3)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1097 redraw (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1098 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1099 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1100 cached = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1101 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1102 if (color !is null) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1103 bool customDraw = (parent.columnCount is 0) ? parent.firstCustomDraw : parent.columns [index].customDraw; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1104 if (!customDraw) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1105 if ((parent.style & DWT.VIRTUAL) is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1106 auto parentHandle = parent.handle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1107 GtkTreeViewColumn* column; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1108 if (parent.columnCount > 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1109 column = cast(GtkTreeViewColumn*)parent.columns [index].handle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1110 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1111 column = OS.gtk_tree_view_get_column (parentHandle, index); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1112 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1113 if (column is null) return; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1114 auto textRenderer = parent.getTextRenderer (column); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1115 auto imageRenderer = parent.getPixbufRenderer (column); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1116 display.doCellDataProc( parentHandle, column, cast(GtkCellRenderer*)textRenderer ); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1117 display.doCellDataProc( parentHandle, column, cast(GtkCellRenderer*)imageRenderer ); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1118 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1119 if (parent.columnCount is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1120 parent.firstCustomDraw = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1121 } else { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1122 parent.columns [index].customDraw = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1123 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1124 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1125 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1126 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1127 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1128 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1129 * Sets the grayed state of the checkbox for this item. This state change |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1130 * only applies if the Table was created with the DWT.CHECK style. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1131 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1132 * @param grayed the new grayed state of the checkbox; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1133 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1134 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1135 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1136 * <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
|
1137 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1138 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1139 public void setGrayed (bool grayed) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1140 checkWidget(); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1141 if ((parent.style & DWT.CHECK) is 0) return; |
240 | 1142 if (this.grayed is grayed) return; |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1143 this.grayed = grayed; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1144 /* |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1145 * GTK+'s "inconsistent" state does not match DWT's concept of grayed. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1146 * Render checked+grayed as "inconsistent", unchecked+grayed as blank. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1147 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1148 void* ptr; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1149 OS.gtk_tree_model_get1 (parent.modelHandle, handle, Table.CHECKED_COLUMN, &ptr); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1150 OS.gtk_list_store_set1 (parent.modelHandle, handle, Table.GRAYED_COLUMN, cast(void*)cast(int)( ptr is null ? false : grayed)); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1151 cached = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1152 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1153 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1154 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1155 * Sets the receiver's image at a column. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1156 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1157 * @param index the column index |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1158 * @param image the new image |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1159 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1160 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1161 * <li>ERROR_INVALID_ARGUMENT - if the image has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1162 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1163 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1164 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1165 * <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
|
1166 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1167 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1168 public void setImage (int index, Image image) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1169 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1170 if (image !is null && image.isDisposed ()) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1171 error(DWT.ERROR_INVALID_ARGUMENT); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1172 } |
240 | 1173 if (image !is null && image.type is DWT.ICON) { |
1174 if (image.opEquals (_getImage (index))) return; | |
1175 } | |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1176 int count = Math.max (1, parent.getColumnCount ()); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1177 if (0 > index || index > count - 1) return; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1178 void* pixbuf; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1179 if (image !is null) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1180 ImageList imageList = parent.imageList; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1181 if (imageList is null) imageList = parent.imageList = new ImageList (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1182 int imageIndex = imageList.indexOf (image); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1183 if (imageIndex is -1) imageIndex = imageList.add (image); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1184 pixbuf = imageList.getPixbuf (imageIndex); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1185 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1186 int modelIndex = parent.columnCount is 0 ? Table.FIRST_COLUMN : parent.columns [index].modelIndex; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1187 OS.gtk_list_store_set1 (parent.modelHandle, handle, modelIndex + Table.CELL_PIXBUF, pixbuf); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1188 /* |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1189 * Bug in GTK. When using fixed-height-mode, |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1190 * row changes do not cause the row to be repainted. The fix is to |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1191 * invalidate the row when it is cleared. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1192 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1193 if ((parent.style & DWT.VIRTUAL) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1194 if (OS.GTK_VERSION >= OS.buildVERSION (2, 3, 2) && OS.GTK_VERSION < OS.buildVERSION (2, 6, 3)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1195 redraw (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1196 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1197 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1198 /* |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1199 * Bug in GTK. When in fixed height mode, GTK does not recalculate the cell renderer width |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1200 * when the image is changed in the model. The fix is to force it to recalculate the width if |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1201 * more space is required. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1202 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1203 if ((parent.style & DWT.VIRTUAL) !is 0 && parent.currentItem is null) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1204 if (OS.GTK_VERSION >= OS.buildVERSION (2, 3, 2)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1205 if (image !is null) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1206 auto parentHandle = parent.handle; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1207 auto column = OS.gtk_tree_view_get_column (parentHandle, index); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1208 int w; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1209 auto pixbufRenderer = parent.getPixbufRenderer(column); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1210 OS.gtk_tree_view_column_cell_get_position (column, pixbufRenderer, null, &w); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1211 if (w < image.getBounds().width) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1212 /* |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1213 * There is no direct way to clear the cell renderer width so we |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1214 * are relying on the fact that it is done as part of modifying |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1215 * the style. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1216 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1217 auto style = OS.gtk_widget_get_modifier_style (parentHandle); |
240 | 1218 parent.modifyStyle (parentHandle, style); |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1219 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1220 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1221 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1222 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1223 cached = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1224 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1225 |
150
f2e04420fd6c
reworked overrides and superclass aliases
Frank Benoit <benoit@tionex.de>
parents:
123
diff
changeset
|
1226 public override void setImage (Image image) { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1227 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1228 setImage (0, image); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1229 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1230 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1231 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1232 * Sets the image for multiple columns in the table. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1233 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1234 * @param images the array of new images |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1235 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1236 * @exception IllegalArgumentException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1237 * <li>ERROR_INVALID_ARGUMENT - if one of the images has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1238 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1239 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1240 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1241 * <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
|
1242 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1243 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1244 public void setImage (Image [] images) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1245 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1246 for (int i=0; i<images.length; i++) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1247 setImage (i, images [i]); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1248 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1249 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1250 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1251 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1252 * Sets the indent of the first column's image, expressed in terms of the image's width. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1253 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1254 * @param indent the new indent |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1255 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1256 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1257 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1258 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1259 * <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
|
1260 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1261 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1262 * @deprecated this functionality is not supported on most platforms |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1263 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1264 public void setImageIndent (int indent) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1265 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1266 if (indent < 0) return; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1267 /* Image indent is not supported on GTK */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1268 cached = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1269 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1270 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1271 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1272 * Sets the receiver's text at a column |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1273 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1274 * @param index the column index |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1275 * @param string the new text |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1276 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1277 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1278 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1279 * <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
|
1280 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1281 */ |
238 | 1282 public void setText (int index, String string) { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1283 checkWidget (); |
240 | 1284 if (_getText (index).equals (string)) return; |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1285 int count = Math.max (1, parent.getColumnCount ()); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1286 if (0 > index || index > count - 1) return; |
255
5a30aa9820f3
removed tango.stdc.stringz imports and allow null for arrays and string arguments.
Frank Benoit <benoit@tionex.de>
parents:
240
diff
changeset
|
1287 char* buffer = toStringz( string ); |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1288 int modelIndex = parent.columnCount is 0 ? Table.FIRST_COLUMN : parent.columns [index].modelIndex; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1289 OS.gtk_list_store_set1 (parent.modelHandle, handle, modelIndex + Table.CELL_TEXT, buffer); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1290 /* |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1291 * Bug in GTK. When using fixed-height-mode, |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1292 * row changes do not cause the row to be repainted. The fix is to |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1293 * invalidate the row when it is cleared. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1294 */ |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1295 if ((parent.style & DWT.VIRTUAL) !is 0) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1296 if (OS.GTK_VERSION >= OS.buildVERSION (2, 3, 2) && OS.GTK_VERSION < OS.buildVERSION (2, 6, 3)) { |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1297 redraw (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1298 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1299 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1300 cached = true; |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1301 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1302 |
238 | 1303 public override void setText (String string) { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1304 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1305 setText (0, string); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1306 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1307 |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1308 /** |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1309 * Sets the text for multiple columns in the table. |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1310 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1311 * @param strings the array of new strings |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1312 * |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1313 * @exception DWTException <ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1314 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1315 * <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
|
1316 * </ul> |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1317 */ |
238 | 1318 public void setText (String [] strings) { |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1319 checkWidget (); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1320 for (int i=0; i<strings.length; i++) { |
238 | 1321 String string = strings [i]; |
89
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1322 if (string !is null) setText (i, string); |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1323 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1324 } |
9f6c2c92be2b
Table, TableColumn and TableItem
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1325 } |